Post Processing(后期处理教程)2.0版本
unity官方已发布Post-Processing Stack 后处理栈的详细和
使用视频,非常推荐观看。
(下面教程适用于unity 2018-2019或以上版本,下面教程已默认渲染管线为例。
文章内容主要来自于自己研究尝试和网上的资料收集,有可能有不太对的地方,希望各位大佬指证。
写这个教程的初衷是当初用新版本做作品集发现老的bloom插件失效,然后网上找了好久找到了Post Processing,并且稍微研究了下如果开启bloom。
所以第一版本有些错误的地方并且导致有些人进行了错误的研究,如需在项目中使用Post Processing,请自行和程序或者TA商量优化问题。)
参考链接:
主要讲述内容如下:
1、如何安装Post Processing
2、如何开启Post Processing(全局后期)
3、如何指定区域开启Post Processing(如水下效果等)
4、官方给出的Post-Processing Stack V2 常规优化
1:如何安装Post Processing
在unity中的Package Manager中找到Post Processing进行下载安装。
(左上角下拉选择All packages后才能找到Post Processing)
如何还没显示出来,请查看左下角是否出现
Loading Packages..的字样,如果出现就只能耐心等待亦或者开启魔法上网再重开一遍Package Manager。
找到Post Processing后,
选择右下角的Install按钮进行下载。
上述英文分别对应:查看文档/查看更改日志/查看许可证
点击下载后会自动进行安装
最右边出现√符号表示安装完毕。
2、如何开启Post Processing(全局后期)
场景中找到一个摄像机后并选中它,在Inspector界面选择Add Componet。搜寻post-process Layer,然后选择post-process Layer组件
Trigger默认选择的是post-process Layer组件挂载的摄像机。
Layer 选择为 Everything(所有)
下面感叹号的意思为不要选择“所有”或者“默认”它会减慢体积混合过程,将后处理层级放在它们自己的专用层中以获得最佳性能。
(当然你也可以创建一个新的层级[如何创建层级下面有讲],并且把Layer设置为新的层级,但是记得这样设置后你需要把摄像机的层级也改为你设置的层级,这样才会让后期生效。更加推荐设置为专用的层级,因为能获得最佳性能)
这个是post-process提供的抗锯齿。
FXAA最便宜的抗锯齿,质量差,多用于移动平台。
SMAA比FXAA具有更高的抗锯齿效果,但是速度也慢。
TAA是一种更高级的抗锯齿,质量更高,消耗更高,建议用在PC端。
在Hierarchy面板中创建一个空挂点(GameObject),在组件中选择post-process Volume
在post-process Volume组件中勾选Is Global(全局)
Weight(权重)为后期处理所有效果的权重,0为没有后期效果。
后期处理是已文件的形式保存在你的Assets下的,所以无法进行任何K帧,不过你可K Weight(权重)来让后期效果在某些时候弱一点或者强一点。
之后在Profile 中点击NEW创建一个配置文件。
创建好后点击Add effect(添加效果)
这里已Bloom为例,我们选择添加bloom。
然后勾选Intensity,并且给予其数值即可。
同时查看你的game视窗会发现场景的亮度随着你数值的变化而变化。
Fast Mode 为优化开关,降低一部分泛光的质量,来达到的提升性能的效果(移动端的话,强烈推荐打开,其他有些效果也会有Fast Mode的存在,请留意一下)
因为Bloom效果是对全部场景生效的,所以有时候你会感觉人物或者场景物件有辉光很难受。
请把Threshold(阈值)[剔除此亮度水平之下的像素,这个值处于伽马色彩空间]打开,并且数值给1。
简单粗暴的理解的话,就是只要亮度值不要超过1,那么就不会有辉光的产生。(这边指你bloom值不给的很大的情况下,比如你给个60或者100,还是会有辉光,或者说是直接曝光过度。)
以standard材质为例,场景物件和角色的材质球颜色只要是这样的,就不会有辉光。
如果要产生辉光,就调Intensity的数值即可。
其他效果部分:
Ambient Occlusion 环境光遮挡 它依赖于深度和法线缓冲区使彼此靠近的折痕,孔和表面变暗。在现实生活中,这些区域往往会阻挡或遮挡环境光,因此它们显得更暗。
Bloom 辉光是来自亮源(如闪光)的光泄漏到周围物体中的光学效应。这是一个非常独特的效果,可以对场景产生很大的影响,可以建造一个神奇或梦幻般的环境,特别是与HDR渲染结合使用时。另一方面,给定适当的设置,也可以使用这种效果来增强照片写实感。在非常明亮的物体上发光是在电影和摄影中观察到的常见现象,其中亮度值差异很大。
Deth of Field 景深该效果模拟相机镜头的属性。在现实生活中,相机只能以特定的距离对焦,距离相机更近或更远的物体将会偏离焦点。模糊给出了对象距离的视觉提示。
Motion Blur 运动模糊这个效果模拟了大多数摄像机系统的光线随着时间的推移而累积。因此,快速的相机或物体运动将产生模糊的图像
Screen Space Reflection 屏幕空间反射该效果基于表面粗糙度计算屏幕空间中的反射;
3、如何指定区域开启Post Processing(如水下效果等)
场景中找到一个摄像机后并选中它,在Inspector界面选择Add Componet。搜寻post-process Layer,然后选择post-process Layer组件
Trigger默认选择的是post-process Layer组件挂载的摄像机。
Layer 选择自己想要的层级,我这里选择了post层级。
如何添加层级?
选择一个空着的地方输入你想命名的层级即可。
然后在Hierarchy面板下创建Post-process Volume
可以看到场景中出现一个绿框,这个绿框你可以随意的放大缩小。
此时我们修改Post-process Volume的层级为post
然后在Profile 中点击NEW创建一个配置文件。
创建好后点击Add effect(添加效果)
这里已Bloom为例,我们选择添加bloom。
然后勾选Intensity,并且给予其数值即可。
然后此时你把带有post-process Layer组件的摄像机推到绿色的框框内,你就能看到game视图中有辉光效果了。
这样的效果有点相当于硬切
给Blend Distance(融合距离)设置一个数值,代表从Volume外多远开始一点点渐变到当前这个效果(根据Post-process Layer组件Trigger属性赋予的Transform来计算)。
4、官方给出的Post-Processing Stack V2 常规优化