本文将针对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。