Unity3D for VR 学习(11): 后期屏幕渲染特效(Image Effect)

Unite ShangHai 2016 Keynote中,《Adam》的图形技术介绍,令人印象深刻:可以与电影效果相媲美、近乎次时代大作、好莱坞大片效果的3分钟实时渲染的短片,淋漓尽致的展现了 unity 5.4的奋发图强,和对VR开发者的潜台词–“相信Unity 5.4,VR没错的。”
本文就Image Effect进行实践,所用版本是Unity 5.4.0b14 beta版本。

 

下载Image Effect插件

Unity内置的特效,已经于2015.12.10免费开源了:CINEMATIC IMAGE EFFECTS (PRE-RELEASE)
  • 下载方式1:Asset Store   Cinematic Image Effects pre-release          版本: 1.0.5 (Apr 06, 2016)文件大小: 714.5 kB

  • 下载方式2:bitbucket 开源社区   cinematic-image-effects          为了持续增强Image Effect的功能和提高性能,官方还设立一个论坛版块:
          Forums>Unity Community Support>Graphics>Image Effects

部分渲染特效实践
使用渲染特效,非常简单,直接在Camera添加组件即可—下载完Image Effect插件后,导入Unity即可使用。

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》
  • demo Git地址:Shader_ImageEffects

转载请注明转自《unity3d for VR 学习(11): 后期屏幕渲染特效(Image Effect)

你可能感兴趣的:(Unity3D for VR 学习(11): 后期屏幕渲染特效(Image Effect))