本文將針對Image Effect進行實踐分析,所采用版本為Unity 5.4.0b14 beta。
一、Image Effect插件下載
Unity內置特效已于2015年12月10日免費開源,即CINEMATIC IMAGE EFFECTS (PRE-RELEASE)。
下載方式一:通過Asset Store獲取Cinematic Image Effects pre-release版本,版本號為1.0.5(發布日期:2016年4月6日),文件大小為714.5 kB。
下載方式二:訪問bitbucket開源社區cinematic-image-effects。為了不斷提升Image Effect的功能與性能,官方還設立了論壇板塊:Unity Community Support>Graphics>Image Effects。
二、部分渲染特效實踐
應用渲染特效的操作簡便,只需在相機組件中添加即可。以下為部分特效的實踐分析:

Screen Space Reflection(SSRR):屏幕空間光線追蹤反射,實現倒影效果。

Screen Space Ambient Occlusion(SSAO):屏幕空間環境遮擋特效,模擬全景漫反射。
抗鋸齒(Anti Aliasing | SMAA)。
Bloom泛光:使場景呈現夢幻效果。
色調映射(ToneMapping):在HDR模式下與Bloom混合使用,增強視覺效果。
三、深入學習文檔
Unity自帶的英文文檔質量上乘,安裝Unity時即可下載。遇到問題時,點擊問號圖標即可查閱本地英文文檔,便于快速深入學習。
通過輸入“Image Effect”關鍵字進行搜索,可快速訪問Unity內置提供的特效幫助,圖文并茂,便于學習。
四、后期屏幕渲染原理
屏幕后期渲染采用Graphics的Blit方法。與相機的Render方法不同,Blit在屏幕上創建一個與屏幕大小相同的平面,并使用第三個參數(材質—Shader)進行當前面到新面的替換。Blit方法渲染平面,而Render方法渲染物體。
相關函數:
Graphics.Blit函數:public static void Blit(Texture source, RenderTexture dest, Material mat);
MonoBehaviour.OnRenderImage函數:void OnRenderImage(RenderTexture sourceTexture, RenderTexture destTexture);
Shader文件編寫:編寫頂點片段shader。
#pragma vertex vert_img
#pragma fragment frag
參考資料:《Unity 5.X 從入門到精通》、《Unity Shaders and Effects Cookbook》。
示例Git地址:Shader_ImageEffects。