PostFX v2后期处理特效包:升级更惊艳的视觉效果
Post-Processing Stack后期处理特效包能够轻松创建和调整高质量视觉效果,实现更为惊艳而逼真的特效。在Unity 2018.1 beta版本推出后,我们根据用户的反馈为Post-Processing Stack后期处理特效包添加了一些功能,并修复了大量bug;我们还添加了针对移动端的支持、体积混合以及一整套为自定义用户效果提供的框架。
Post-Processing Stack后期处理特效包的第二个版本,在本文中我们将简称为:PostFX v2。它将带给用户Asset Store资源商店工具包一样的插件灵活性,同时又带有Unity核心功能的更新能力。你也可以通过Unity Hub中的Templates模板功能进行获取。
在Unity 2018.1中,PostFX v2拥有更高质量的特效、自带强大重写栈的自动体积混合功能,以及一个灵活的框架,用于编写和发布自定义效果。Post-Processing Stack后期处理特效包能够与LWRP、HDRP和内置渲染管线兼容使用。
左边没有使用后期处理功能,右边使用了全栈的后期处理功能
PostFX的发展过程
PostFX v1 已经在Asset Store资源商店推出了一段时间,旨在收集用户反馈、了解用户工作流并提升质量和效率。这个过程给予了我们宝贵的信息,让我们知道如何改进这个功能并将它进入下一阶段。
PostFX v2改进了PostFX v1 的多个效果,我们将工作流更改为体积方法,以便能够更轻松地在效果之间进行切换,而不需要多个带有各自栈的摄像机。
PostFX v2在其开发过程中托管在GitHub,我们这样做是为了使它能尽可能开放和透明,让用户提供反馈和贡献。在这个过程中,我们得到了一些很不错的反馈:超过2000个星数和330个fork。我们开放了450个身份票据和30个合并请求,其中包括从小型修复到大型PR等内容,我们的用户自定义了栈并将他们的变更集发给了我们。感谢所有尝试使用PostFX的用户,感谢你们提供的反馈。
如何获取PostFX
现在你可以从编辑器中的资源包管理器获取PostFX,这样得到的工具包是经过测试并验证的版本。如果你想要PostFX v2的最新开发分支,那么它仍在GitHub上托管着,你可以访问Github获取。
下载地址:https://github.com/Unity-Technologies/PostProcessing
Unity资源包管理器(Package Manager)是Unity 2017.2新增的功能,它是一个模块化系统和API,能够在项目中动态载入和更新Unity开发的新功能。Unity 2018.1以此为基础更进一步,加入了全新发布的资源包管理器用户界面(Package Manager User Interface)、Hub和项目模板(Project Templates),这些功能都将帮助你更快更高效地开启新项目。
你也可以通过Unity Hub的模板获取这个工具。项目模板能够改变你在Unity中开启新项目的方式。Unity项目模板功能旨在提高大多数用户的“开箱即用”体验。这些模板基于最佳常用实践为不同的项目类型提供了相应的预选择设置,例如移动端、高端PC、3D、2D和VR等。
你可以阅读《Unity资源包管理器-全新项目管理方式》和《使用Unity 2018.1项目模板功能》,了解Unity资源包管理器以及如何充分利用模板功能。
内置工具
默认情况下,我们为你准备了一整套内置效果,用来自定义场景的外观和感觉。这其中的不少效果自从PostFX v1发布后就经过了重写,在这个新版本中还加入了一些新的组件。我们尽可能地将效果合并到了一个渲染pass中,而其它则仍是独立的。我们提供了一些移动端专有选项,用以帮助在低端设备上优化。下面来了解下包含了哪些工具吧。
环境遮蔽(SAO、MSVO)
环境遮蔽(SAO、MSVO)能够使互相接近的皱褶、洞穴、相交部分和平面的色彩变暗。这是因为在现实生活中,这类区域会挡住或遮盖环境光,从而看起来更暗一些。
抗锯齿(FXAA、SMAA、TAA)
抗锯齿效果提供了一组算法,用来防止出现锯齿现象,并为3D图形提供更平滑的外观。锯齿现象是指在画面中的线条呈现锯齿状或是带有“梯形”的外观效果。
在Post Processing Stack中提供的算法有:
快速近似抗锯齿算法(FXAA)
子像素形态抗锯齿算法(SMAA)
短时抗锯齿算法(TAA)
自动曝光
自动曝光效果会根据图像所包含的亮度范围来动态调整图像的曝光。调整过程会在一段时间内逐渐发生。例如:当玩家从黑暗的通道中出来时,会被明亮的户外光短暂地刺眼。相同的,当从明亮的场景移动到黑暗的场景时,“眼睛”会需要一些时间来调整。实际上,这个效果曾在Post Processing Stack v1叫作“眼睛适应”(Eye Adaptation)。
泛光效果
泛光效果效果会产生从图像明亮区域的边界延伸出的光线条纹,从而使摄像机或眼睛产生极其明亮的光亮幻觉。
色差
色差效果是由于摄像机镜头无法将所有颜色汇集到同一点而产生的。它会在边缘部分以色彩“条纹”的样子出现,从而分离图像的黑暗部分和明亮部分。
色差效果便是用来仿制摄像机的这个瑕疵。它也经常用作艺术特效,作为摄像机效果的一部分。
颜色分级(LDR、HDR、CUBES)
颜色分级用于调整或校正最终图像的色彩和亮度。你可以将这个过程看作类似在Instagram中应用滤镜。
颜色分级效果带有三个模式:
低分辨率范围(Low Definition Range):这个模式针对低端平台使用,但它其实可以在任意平台上使用。分级会应用于最终渲染帧上,并将其压缩到0到1之间的强制范围内,然后储存在标准LUT中。
高分辨率范围:这个模式针对支持HDR渲染的平台使用。所有颜色操作过程将应用于HDR,存储在3D编码日志的LUT中,从而确保有足够的覆盖范围和精准度(Alexa LogC El1000)。
外部范围:这个模式能让你提供在外部软件中编写的自定义3D LUT。
景深
景深(Depth of Field)是个常见的后期处理效果,它模拟了摄像机镜头的对焦属性。在现实生活中,摄像机只能以特定距离对焦一个物体对象,在摄像机较近或较远的对象都会略微失焦。
粒度
粒度(Grain)效果是基于相干梯度噪声实现的。它常用于模拟电影画面的明显缺陷,也经常在恐怖题材游戏中用于表现夸张的画面效果。
镜头失真
镜头失真(Lens Distortion)效果通过使最终渲染图像失真或不失真来模拟镜头形状。
动态模糊
动态模糊(Motion Blur)是个常见后期处理效果,它模拟的效果是,当一个对象被摄像机拍摄且摄像机的移动速度比其曝光速度快时产生的图像模糊效果。这个效果可以通过快速移动对象或是增长曝光时间产生。
屏幕空间反射
屏幕空间反射(Screen-space Reflection)是个通过重用屏幕空间数据来计算反射的技术。这个技术常用于制作更为简单的反射效果,例如潮湿地板表面或水坑的反射效果。
晕影
在摄影学上,晕影(vignetting)是个专业术语,指的是使图像边缘相对于中心暗化和/或稀释的效果。
组件
Post Process Layer
Post Process Layer组件位于你的摄像机上。你可以在Component -> Rendering -> Post-process Layer找到它。
Post Process Layer组件能够分解不同的标题;通过设置触发器(通常是摄像机Transform)和应用图层来控制体积混合,也能应用所选的抗锯齿方法并启用雾效果。下方的额外“Toolkit”设置带有一些工具用来将当前帧到处为EXR格式文件。最后的部分能让你修改自定义效果的渲染顺序。
Post Process Volume
在这个框架中,后期处理效果是通过使用本地体积和全局体积完成的。它能让你给各个体积一个优先级和效果重写集合,从而自动在场景中混合后期处理设置。例如:你可以在全局设置一个光照晕影效果,但当玩家进入洞穴时,你只需要在保持其它设置完好的情况下,重写晕影的强度设置并增强其强度即可。
在本示例中,我们勾选了Global Volume上的“Is Global”选项,使得其它体积将从这个体积和Post Process Profile派生出来。然后我们创建了一个“Cave Area Profile”来使摄像机(触发器)进入触发器区域(由方块碰撞体设置)时从“Global Profile”重写效果。“Cave Area Profile”拥有一个混合距离集合和比Global Volume(全局体积)更高的优先度。
我们可以从下面视频中看到,Post Process Volume组件是如何在场景中工作的。当摄像机进入体积时,全局设置被重写,效果很好地混合了起来。
https://v.qq.com/txp/iframe/player.html?vid=i0708c8u8s4&width=500&height=375&auto=0
Post Process Debug
Post-Processing Stack还包含一个显示器集合和调试视图,用来帮助你正确设置效果并在输出结果中调试问题。
创建自定义效果
该框架还能让你编写自定义后期处理效果并将它们插入到栈中,而无需修改代码库。当然所有针对框架编写的效果,都能够与体积混合功能有开箱即用的使用效果,除非你需要依赖循环实现的功能,否则它们都会在可编程脚本渲染管线SRP上自动运行。
下面是Unity工程师Keijiro的一些实验效果:
实现自定义效果
添加风格化特效
与Cinemachine和Timeline结合使用
PostFx v2紧密地与编辑器的其它部分整合了起来。例如:Cinemachine会利用一个Cinemachine Post Processing Component实现整合。这二者都可以添加到Timeline中,从而使艺术家和设计师得到完整的创意控制。
在移动端运行
在移动端运行后期处理效果不是件易事。例如:环境遮蔽这样的一些效果,即使在最高端的移动平台运行,它的资源消耗也过于昂贵。
例如抗锯齿、泛光、色差等这样的效果,我们创建了“快速模式”,它能通过降低质量提高性能。我们还建议为颜色分级使用低分辨率范围,尽可能降低其它效果的使用。我们目前正制作一个更为针对移动端的优化,它将在后续推出。
结语
PostFx v2能够帮助开发者轻松创建并调整高质量视觉效果,实现惊艳和逼真的效果。体积混合功能使之能轻易地在体积间切换、重写和混合不同的内置或自定义效果,欢迎大家使用!更多Unity最新功能介绍尽在Unity官方中文论坛(Unitychina.cn)!
推荐阅读
官方活动
2018年Unity技术路演-上海站报名开启
7月13日,Unity官方技术团队将在上海交通大学给广大开发者带来Unity 2018最权威的新功能讲解。活动免费,名额有限,赶紧报名吧! [了解详情]
活动报名:
https://connect.unity.com/events/jishuluyanshanghaizhan
ChinaJoy 2018 | Made with Unity作品展示招募开启
在历年ChinaJoy Unity展位上,多元化的Made with Unity游戏及应用体验总是吸引人潮的亮点。今年我们将招募精品的Made with Unity作品展示。为优秀的开发团队提供最佳的作品展示机会。[招募详情]
申请时间:截至到7月10日
申请表单:http://unity2018.mikecrm.com/yaX19dK
Unity暑期少年程序开发体验课程报名开启
2018年7月7日下午,Unity将开设暑期少年程序开发启蒙培训体验课程。让小小少年和父母一起学习使用Unity创造属于自己的小小游戏世界! [了解详情]
报名链接:
https://connect.unity.com/events/k12training
点击“阅读原文”访问Unity官方中文论坛