后期处理效果
在渲染之前应用于整个渲染场景的效果。
后期处理效果(Post-processing effect)使美术师和设计师能够对影响颜色、色调映射、光照的属性和功能进行组合选择,从而定义场景的整体外观。要访问这些功能,可以将一种称为 后期处理体积(Post Process Volume) 的特殊类型的体积添加到关卡。可以放置多个体积来定义特定区域的外观,也可以将其设置为影响整个场景。
一、使用后期处理体积
可以使用 放置Actor(Place Actors) 面板将一个 后期处理体积 添加到关卡。
放置到关卡中后,可以使用 细节(Details) 面板访问所有可用的属性和功能。你会发现后期处理体积根据它们的功能类型和它们的影响分为多个类目。
后期处理体积设置(Post Process Volume Settings) 是这个已放置的体积的特定设置,以及该体积如何与场景以及可能与之重叠的任何其他后期处理体积进行交互。例如,可以选中 无限范围(Infinite Extent) 属性以使此后期处理体积影响场景中的所有位置,或者不选中该属性以仅影响特定区域。当多个体积发生重叠时,你可以控制这些体积如何相互交互以从一个体积混合到另一个体积,这在它们之间具有完全不同的外观时会很有用。
属性 | 描述 |
---|---|
优先级(Priority) | 指定此体积的优先级。在体积重叠的情况下,具有最高优先级的体积会覆盖较低优先级的体积。如果两个或多个重叠的体积具有相同的优先级,则顺序是不明确的。 |
混合半径(Blend Radius) | 设置用于混合的体积周围半径(采用世界单位)。例如,当步入一个体积时,体积内的外观可能与体积外的不同。混合半径会在体积周围创建一个过渡区域。 |
混合权重(Blend Weight) | 体积属性的影响程度。值为1具有全部效果,而值为0则没有效果。 |
已启用(Enabled) | 此体积是否影响后期处理。如果启用,体积的设置将用于混合。 |
无限范围(无边界)(Infinite Extent (Unbound)) | 是否考虑体积的边界。如果启用,体积会影响整个场景,而不考虑其体积的边界。未启用时,体积仅在其边界范围内有效。 |
二、后期处理功能和属性
通过选择放置在关卡中的一个后期处理体积来访问该体积的属性和设置。细节(Details) 面板将列出可用类目及其可用属性。
即使关卡中没有放置后期处理体积,虚幻引擎也会使用一些默认的后期处理设置。可以在 项目设置(Project Settings) 的 渲染(Rendering)> 默认设置(Default Settings) 分段中找到和配置这些默认的后期处理设置。
在开始定义场景外观之前,配置这些选项有助于进行关卡编辑以稳定自动曝光或泛光。
镜头
镜头(Lens) 类目包含的属性和设置用于模拟摄像机镜头产生的常见真实世界效果。
景深
与真实的摄像机类似,景深(Depth of Field) 根据焦点前后的距离为场景应用模糊效果。该效果用于根据深度将观看者的注意力吸引到镜头中的特定主体上。它还可以增加一种美感,使渲染的图像看起来更像照片或胶片。
有两个可用的景深选项:
- 过场动画景深(Cinematic Depth of Field)用于桌面平台和游戏主机平台。它可以提供一种胶片视觉效果,其属性与真实摄像机上的属性一致。后期处理体积提供了一些设置,但主要应该使用过场动画摄像机Actor上的摄像机属性来控制景深。
- 移动平台景深(Mobile Depth of Field)是经过优化的低成本选项,适用于移动平台。它使用高斯模糊来设置具有远近过渡区的焦点区域。
泛光
泛光(Bloom) 是真实摄像机的光照瑕疵,它还通过再现光源和反射性表面周围的辉光来增加所渲染图像的真实感。泛光是一种与其他效果(例如镜头光晕和脏污遮罩,但这些效果未涵盖在一般的泛光属性中)一起使用的效果。
曝光和局部曝光
虚幻引擎自动控制曝光,但有时将其称为"眼部适应",它会根据当前场景亮度来调整场景当前视图的明暗程度。此效果模拟人眼适应不同光照条件的体验,例如从光线昏暗的室内走到明亮的室外,或相反的情况。
曝光(Exposure) 类目包含的属性用于选择要使用的曝光方法类型,以及指定场景在给定时间内应该变得多亮或多暗。
有一个额外的曝光功能选项称为 局部曝光(Local Exposure),它有自己的类目或属性。这些属性使用边缘感知数据结构对曝光进行局部调整(在美术师控制的参数内),同时保留亮度细节。这使得它在具有挑战性的高对比度场景(例如在室内场景中通过门窗可以看到非常明亮的户外)中特别有用。
色差
色差(Chromatic Aberration) 是一种模拟真实摄像机镜头颜色变化的效果。这是光在不同点进入镜头导致RGB颜色分离的一种现象。
脏污遮罩
脏污遮罩(Dirt Mask) 是一种纹理驱动的效果,可在屏幕定义的区域中照亮泛光。它可用于创建摄像机镜头及其缺陷的特定外观,或者是镜头上的脏污和灰尘之类的东西。
摄像机
一组用于控制摄像机快门和过场动画景深的属性。
摄像机的完整属性和基于物理的属性应在过场动画摄像机Actor上进行设置。
属性 | 描述 |
---|---|
快门速度(1/s)(Shutter Speed (1/s)) | 摄像机快门速度(以秒为单位)。 |
ISO | 摄像机传感器对光的敏感度。 |
孔径(F值)(Aperture (F-stop)) | 定义摄像机镜头的开口大小。孔径为1/F值。典型的镜头会下降到f/1.2(大开口)。小数字意味着更大的光圈开口,会模糊更多的前景和背景。更大的值意味着更小的光圈,会模糊更少的前景和背景。 |
最大孔径(最小F值)(Maximum Aperture (min F-stop)) | 定义摄像机镜头的最大开口以控制光圈叶片的曲率。此值设置为0可获得直叶片。 |
光圈叶片数(Number of diaphragm blades) | 定义镜头中的光圈叶片数量(介于4和16之间)。这可以定义散景的形状。 |
镜头光晕
镜头光晕(Lens Flare) 效果是一种基于图像的技术,可模拟在查看明亮物体时由于摄像机镜头缺陷导致的光散射。
图像效果:暗角效果
暗角效果(Vignette) 是一种基于图像的效果,它创建一个无边框窗口,使图像朝边缘淡出。
颜色分级和色调映射器
颜色分级(Color Grading) 和 胶片(Film) 这两个类目共同定义了项目的大部分外观。"颜色分级(Color Grading)"类目包含用于对渲染的场景进行颜色校正的属性。
颜色分级
颜色分级(Color Grading) 类目包括用于控制对比度、颜色、饱和度等的属性,以全面控制场景外观的艺术风格。
此类目提供以下相关分段:
- 色温控制
- 用于全局、阴影、中间调和高光的色彩平衡属性
- 其他杂项属性,例如扩展色域和查找表(Lut)
有关更多信息,请参阅颜色分级和胶片色调映射器。
胶片
胶片(Film) 类目的一些属性可确保符合学院色彩编码系统(ACES)针对电视和电影设定的行业标准。这些属性将确保在多种格式和显示中保持颜色一致,同时还可以确保源材质的适应性,即不必针对未来出现的每种新媒体调整源材质。
此类目中的属性可用于设置相应的值来模拟不同类型的电影胶片。
属性 | 描述 |
---|---|
斜率(Slope) | 设置用于色调映射器的S曲线的陡度。值越大,斜率越陡,图像越暗,而值越小,斜率越小,图像越亮。 |
末端(Toe) | 设置色调映射器的深色。 |
肩部(Shoulder) | 设置色调映射器的亮色。 |
黑色调(Black Clip) | 设置黑色开始切断其数值的交叉位置。 理想情况下,应该不需要对此进行调整。 |
白色调(White Clip) | 设置白色开始切断其数值的交叉位置。在大多数情况下,对该值的更改不易察觉。 |
有关更多信息,请参阅颜色分级和胶片色调映射器。
全局光照
全局光照 的后期处理体积设置使你可以选择要使用的动态全局光照类型,高级属性使你可以调整某些全局光照方法(例如预计算光照)的强度和颜色。
你可以从 方法(Method) 下拉菜单中选择动态全局光照方法:
- Lumen全局光照和反射(Lumen Global Illumination and Reflections)
- 屏幕空间全局光照(Screen Space Global Illumination)
- 光线追踪全局光照(Ray Tracing Global Illumination)
在 高级(Advanced) 分段下,对于 间接光照颜色(Indirect Lighting Color) 和 间接光照强度(Indirect Lighting Intensity),可以使用取色器调整间接光照颜色和强度,从而增加或减少应用的间接光照量。
有关更多信息,请参阅全局光照。
Lumen全局光照
Lumen全局光照是一个完全动态的全局光照系统,适用于所有光源、自发光材质投射光和天空光照遮挡。它可以在从毫米到公里规格的大型高细节环境中渲染具有无限反弹和间接镜面反射的交互漫反射。
屏幕空间全局光照
屏幕空间全局光照是一种低成本的动态全局光照方法,但仅限于屏幕上可见的信息。它最适合用作一项Additive功能以处理CPU Lightmass或GPU Lightmass的预计算光照数据。
反射
通过后期处理体积设置,你可以选择所需的动态反射类型以便与 方法(Method) 下拉菜单选项搭配使用。
选项包括:
有关更多信息,请参阅反射环境。
Lumen反射
Lumen反射是动态光照系统Lumen全局光照和反射的一部分。它使用绝大多数功能来支持所有光源、自发光材质投射光和天空光照。
Lumen只有一个 质量(Quality) 属性,用于控制反射噪点质量的高低。较大的值会减少反射中的噪点量,但会大幅增加GPU成本。
屏幕空间反射
屏幕空间反射是一种依赖于视图的低成本反射系统,但仅限于当前屏幕视图中存在的信息。
渲染功能
以下是由后期处理体积设置并控制的通用渲染功能。
三、后期处理材质
后期处理材质(Post Process Mateirals) 允许将材质的"域(Domain)"设置为 后期处理(Post Process) 以创建屏幕视觉效果。通过使用此功能,你可以在材质中执行任何允许的操作,并影响游戏或场景的视觉外观。例如,它可用于应用损坏效果、在屏幕上创建风格化效果或视频效果。
介绍如何使用材质编辑器创建和混合自定义后期处理通道。
后期处理材质是能够用于后期处理的材质,旨在创建破坏的视觉屏幕效果、区域类型效果或 只能通过后期处理材质才能实现的游戏整体外观。
以下几个小节将介绍如何设置后期处理材质,你可以使用的一些设置,并提供了一些示例说明如何使用不同的缓冲区来设置你自己的一些后期处理材质, 混合各种后期处理材质,等等。
后期处理材质应该谨慎使用,仅在真正需要时使用。 在可能的情况下,如颜色校正或调整、泛光、景深和各种其他效果,应该使用后期处理体积中固有的设置,这些设置已经过优化,而且更有效。
使用后期处理材质
通过后期处理设置(通常用后期处理体积或摄像机设置进行定义),可以混合(所谓的)可混合资产。 目前,只有 材质(Materials) 和 材质实例(Material Instances) 是可混合资产。 该引擎提供了一些后期处理材质,但使用该功能, 你可以创建自己的 自定义后期处理,无需任何程序员的帮助。
只需将一个或多个后期处理材质指定给 可混合(Blendables) 分段中的后期处理体积。 首先按 + 添加新插槽, 在 内容浏览器(Content Browser) 中选择一个材质,然后按左箭头进行指定。 这里的顺序并不重要,未使用的插槽将被忽略。
后期处理材质的关键设置
后期处理材质需要指定材质域 后期处理:
材质只能使用 自发光颜色(Emissive Color) 来输出新颜色。 此外,还可以定义在后期处理过程中应在何处应用此通道, 如果有多个通道,则应按什么顺序处理(优先级):
可混合位置 | 描述 |
---|---|
色调映射前(Before Tonemapping) | 当使用SceneTexture表达式的PostProcessInput0时,所有光照均采用HDR场景颜色。 此选项可以修复时间抗锯齿(TAA)和GBuffer查找的问题, 如使用深度和法线时可能发生的问题。 |
色调映射后(After Tonemapping) | 此选项表示将在色调映射和颜色分级完成之后进行后期处理。 这是可提高性能的首选位置,因为颜色是LDR,因此需要的精度和带宽较低。 选择此选项后,使用SceneTexture表达式的PostProcessInput2和PostProcessInput3来控制在管线中应用场景颜色的位置。 Input2在色调映射之前应用场景颜色。 Input3在色调映射之后应用场景颜色。 |
半透明前(Before Translucency) | 此位置在管线中甚至比半透明与场景颜色结合之前的"色调映射前(Before Tonemapping)"还要早。 注意SeparateTranslucency的复合比法线半透明要晚。 |
替换色调映射器(Replacing the Tonemapper) | PostProcessInput0提供HDR场景颜色,PostProcessInput1具有SeparateTranslucency(Alpha是遮罩),PostprocessInput2具有低分辨率泛光输入。 |
典型的后期处理输入来自前面的通道。 当使用 PostProcessInput0 时,可以通过SceneTexture材质表达式访问该颜色。 使用SceneColor可能不会得到正确的结果。
混合不同的材质实例
使用后期处理体积,很容易在多个后期处理材质之间设置软过渡。 这里我们使用一个标记为未绑定的体积和一个具有更大混合半径(例如,1000)的体积:
我们为每个体积指定了相同材质的不同材质实例。 颜色被指定为一个材质参数,允许对两个材质实例进行不同的设置。
材质如下:
生成材质实例:
双击材质实例设置参数:
根据摄像机位置,在混合半径范围内使用和混合一个体积的设置:
随着摄像机的移动,可以感知到两个效果设置之间的软线性过渡。