注意:如果您使用一个包含后期处理(Post-processing)的模板创建项目,那么您不需要完成这些步骤中的大部分,尽管我们建议您阅读它们,以理解所有的工作原理。
Post-process Layer
你需要启用相机的post-processing的第一件事是通过Component -> Rendering -> Post-process Layer添加组件。
第一部分描述了相机的体积混合(Volume blending)设置:
- Trigger(触发器):默认情况下摄像机本身将被分配给它。这是将驱动体积混合功能的位置。在某些情况下,你可能想要使用位置而不是摄像机,例如在自上而下的游戏中,你将希望玩家角色驱动混合而不是实际的摄像机坐标。将此字段设置为None将禁用该层的本地卷(全局卷仍然可以工作)。
- Layer(层):考虑体积混合的层遮罩。它允许您执行卷过滤,并且对优化卷遍历特别有用。你应该总是把你的卷放在专门的层中,而不是默认的层中,以获得最佳的性能。默认情况下,它被设置为空,所以不要忘记更改它,否则卷将不会有任何影响。要了解更多关于图层和它们在Unity中的使用,请参考手册页面 。
下一个是Anti-aliasing(反锯齿),每个相机都必须设置。这样不在项目中做一个全局设置的的好处是,你可以优化你的相机,只在需要使用时开启抗锯齿。例如,你的主相机可以使用Temporal Anti-aliasing(时域抗锯齿),但用于渲染安全相机的辅助相机只需要使用FXAA。有关反锯齿的更多信息在专用效果页面。
Stop NaN Propagation切换将杀死任何无效/ NaN像素,并在后处理应用之前将其替换为黑色。通常一个好主意是保持启用这个功能,以避免场景中破碎数据导致的后期处理。
Toolkit (工具包)部分提供了一些实用工具。您可以导出当前帧的EXR使用以下模式之一:
- Full Frame (as displayed)(全帧(如所示)):按原样导出相机(如果它在游戏视图中显示的相机上,导出将与游戏视图中显示的完全一样)。
- Disable post-processing(禁用后期处理):与前一个模式相同,但不应用任何类型的后处理。
- Break before Color Grading (linear)(在颜色分级前中断(线性)):与第一种模式相同,但将在应用颜色分级前停止渲染。如果您想在外部软件中编写lut评分,这是很有用的。
- Break before Color Grading (log)(颜色分级前中断(日志)):与之前的模式相同,但输出将是日志编码的。这是用来在一个外部软件中编写全精度HDR分级LUTs。
其他设施包括:
- Select all layer volumes(选择所有层卷):选择可能影响该后处理层的所有后处理卷组件。
- Select all active volumes(选择所有活动卷):选择当前影响此后期处理层的所有后期处理卷组件。
最后,最后一部分允许您更改自定义效果的渲染顺序。更多的信息关于编写自定义效果。
Post-process Volumes
在这个框架中,后处理工作的方式是使用本地和全局卷。它允许你给每个卷一个优先级和一套效果覆盖,在你的场景自动混合后期处理设置。例如,你可以在全局范围内设置一个灯光装饰效果,但当玩家进入一个洞穴时,你只会继承图案的强度设置,使其更强,同时保持其他设置的完整性。
后期的卷组件可以添加到任何游戏对象中,包括相机本身。但通常为每个卷创建一个专用对象是一个更好的主意。让我们从创建global Post-process Volume(全局后期处理卷)开始。创建一个空的游戏对象,并将组件添加到它Component -> Rendering -> Pöst-process Volume或使用GameObject -> 3D Object -> Post-process Volume。不要忘记将它添加到 你添加到相机的后期处理组件设置中所使用的蒙版图层中。
·默认情况下,它是完全空的。卷有两种模式:
- Global(全局卷):全局卷没有任何边界,将应用于整个场景。当然,您可以在您的场景中有几个这样的全局卷。
- Local(本地):本地卷需要附加一个碰撞器或触发器组件来定义它的边界。任何类型的3D碰撞器都可以工作,从立方体到复杂的凸面网格,但我们建议你尽可能地使用简单的碰撞器,因为网格可能是相当昂贵的遍历。局部卷也可以有一个混合距离,表示从开始混合的卷表面到该卷表面的外部距离。
在这个例子中,我们想要一个全局卷,启用是Is Global。
Weight (权重)可用于减少卷及其所有继承的全局贡献,0表示完全没有贡献,1表示完全贡献。
Priority字段定义了堆栈中的卷顺序。这个数字越高,卷的优先级就越高。
我们还需要来创建此卷的概要文件(或重用现有的一个)。让我们通过点击New 新建按钮来创建一个(你也可以在项目窗口使用Create -> Post-processing Profile)。它将作为项目中的资产文件创建。要编辑配置文件内容,您可以选择该资产或转到卷检查器,在那里它将被复制,以便更容易地访问。一旦配置文件被分配,你会看到一个新的按钮出现,Clone克隆。这个文件将复制当前分配的概要文件,并自动将其设置在卷上。当您想要快速创建相同概要文件的变化时,这很方便(尽管如果可能的话,您实际上应该使用覆盖系统)。
现在我们可以开始向堆栈中添加效果覆盖。
一个效果的解剖如下:
每个字段的左侧都有一个覆盖复选框,在编辑它们之前,您需要切换您想要覆盖的设置。您可以使用左上角的小的All和None快捷键来快速切换它们的开关。
右上的On/Off开/关开关用于覆盖堆栈中的效应本身的活动状态(例如,如果你想force-disable效果在一个更高的优先级卷)而在标题栏的切换是禁用的集合覆盖用于这种效应在这个特定的体积。
最后,您可以右键单击并影响标题,以显示一个快速动作菜单,以复制/粘贴/删除/重置设置。