https://mp.weixin.qq.com/s/BMkLLuagbhRSWspzeGhK7g

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组件是如何在场景中工作的。当摄像机进入体积时,全局设置被重写,效果很好地混合了起来。

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)!

PostFX v2后期处理特效包:升级更惊艳的视觉效果的更多相关文章

  1. 超级MINI STLINK V2 官方固件自动升级 ST-Link 【worldsing 笔记】

    简介: 支持所有带SWIM接口的STM8系列单片机 支持所有带SWD接口的STM32系列单片机 完全兼容Keil,STVP,STVD,IAR,COSMIC,STM32 ST-LINK Utility! ...

  2. ( 转 )超级惊艳 10款HTML5动画特效推荐

    今天我们要来推荐10款超级惊艳的HTML5动画特效,有一些是基于CSS3和jQuery的,比较实用,特别是前几个HTML5动画,简直酷毙了,现在将它们分享给大家,也许你能用到这些HTML5动画和jQu ...

  3. 分享10款效果惊艳的HTML5图片特效

    在HTML5的世界里,图片特效都十分绚丽,我们在网站上也分享过很多不错的HTML5图片特效,现在我们精选10款效果惊艳的HTML5图片特效分享给大家. 1.HTML5 3D正方体旋转动画 很酷的3D特 ...

  4. 超级惊艳 10款HTML5动画特效推荐[转]

    ylbtech_html5_demo 今天我们要来推荐 10 款超级惊艳的 HTML5 动画特效,有一些是基于 CSS3 和 jQuery 的,比较实用,特别是前几个 HTML5 动画,简直酷毙了,现 ...

  5. Magic CSS3 一款独特的CSS3动画特效包

    插件描述: Magic CSS3 Animations  动画是一款独特的CSS3动画特效包,你可以自由地使用在您的网页中.只需简单的在页面上引入 CSS 文件:  magic.css  或者压缩版本 ...

  6. 已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容

    已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容 NU1202: 包 System.Run ...

  7. fpm打包神奇rpm包升级python2.7.16

    fpm打包神器参考文档:https://www.cnblogs.com/flintlovesam/p/6594635.html FPM的安装:安装ruby环境和gem命令: yum -y instal ...

  8. 编译制作Linux 3.18内核rpm包(升级centos6.x虚拟机内核)

    介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的opensta ...

  9. uniapp热更新和整包升级

    一. uniapp热更新  (热更新官方文档) 很多人在开发uniapp的时候, 发现热更新失效问题(或者热更新没有更新manifest里的新增模块,SDK,原生插件包括云插件), 其实uniapp官 ...

随机推荐

  1. node cluster模块的使用和测试

    首先安装async包 用到的有http.cluster包 http和cluster都会node自带的包,无需安装 1:创建cluster.js,代码如下,更具cpu创建多个进程 var cluster ...

  2. Java_异常_01_org.apache.commons.lang.exception.NestableRuntimeException

    异常信息: The type org.apache.commons.lang.exception.NestableRuntimeException cannot be resolved. It is ...

  3. SPOJ705 Distinct Substrings (后缀自动机&后缀数组)

    Given a string, we need to find the total number of its distinct substrings. Input T- number of test ...

  4. What is Photon Server?

    http://blog.csdn.net/menuconfig/article/details/8215033 Photon Server是一套套裝的遊戲伺服器,以往開發線上遊戲都必需自行花費大筆的研 ...

  5. 用VBA计算两个日期之间的工作日(去掉周末两天)

    最近公司HR和Finance想算员工的工作天数,想让我帮忙写些VBA,自己从网上找了下代码,自己再改改,以下来自网络. 计算两个日期之间的工作日,用VBA,因量大,最好用数组做 Sub kk() Di ...

  6. 桥接以及Mercury MW54R中继

    家里连个路由器,一个是比较先进的TP-Link的TL-WR842N(100M),另外一个是比较古老的水星(Mercury) MW54R(54M),我们知道新的路由器都有WDS功能,方便作为副路由器(中 ...

  7. 洛谷【P3612】[USACO17JAN]Secret Cow Code秘密奶牛码

    我对分治的理解:https://www.cnblogs.com/AKMer/p/9728574.html 题目传送门:https://www.luogu.org/problemnew/show/P36 ...

  8. poj 2105 IP Address(水题)

    一.Description Suppose you are reading byte streams from any device, representing IP addresses. Your ...

  9. 基于433MHz无线串口,多发一收解决方案

    一.无线发展背景 随着科学技术的飞速发展,智能家居.智慧农业.智慧城市如雨后春笋.而这些行业的发展离不开无线的应用. 传统的有线连接不仅仅是成本高,包括布线安装.维护等也是成本巨大.并且机动性也很差, ...

  10. ES6学习之Async函数

    定义:Async函数是一个异步操作函数,本质上,Async函数是Generator函数的语法糖.async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await ...