如何Unity中为使用渲染特效

如果你喜欢我们的教程,欢迎加入泰然网Unity交流群201505161

在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, vr

?>