通用渲染管道(URP)包括一个后处理效果的集成实现。如果使用URP,则不需要为后期处理效果安装额外的包。URP与Post Processing Stack v2包不兼容。
下面的图片显示了一个URP场景有没有后期处理的区别。
没有后期处理特效:
有后期处理特效:
注意:URP在OpenGL ES 2.0上不支持后期处理特效。
How to configure post-processing effects in URP
本节描述如何在URP中配置后期处理特效。
Using post-processing in the URP Template Scene
后期处理特效是在URP模板的样本场景中预先配置的。
要查看预配置的效果,在场景中选择后期处理体积。
若要添加额外效果,请向体积添加体积覆盖。
若要配置基于位置的后处理效果,请参阅如何使用本地体积。
Configuring post-processing in a new URP Scene
在新场景中配置后期处理特效:
- 选择一个相机,然后选择后期处理复选框。
- 在场景中添加一个带有Volume组件的GameObject。此指令添加一个全局Volume。选择GameObject > Volume > Global Volume。
- 选择全局Volume游戏对象。在Volume组件中,单击Profile属性右侧的new按钮来创建一个新的Profile。
- 通过向Volume组件添加Volume Overrides向相机添加后处理效果。
现在,您可以在Volume组件的覆盖中调整后期处理效果设置。
若要配置局部的后期处理效果,请参阅如何使用本地体积。
Post-processing in URP for mobile devices
后处理效果会占用很多帧时间。如果你使用URP的移动设备,这些效果是最“移动友好”的默认:
- Bloom (with High Quality Filtering disabled) Bloom(禁用高质量过滤)
- Chromatic Aberration 色差
- Color Grading 颜色分级
- Lens Distortion 透镜变形
- Vignette 晕映
注意:对于场的深度,Unity建议你对低端设备使用高斯场的深度。对于控制台和桌面平台,使用散景景深。
注意:对于移动平台上的反锯齿,Unity建议你使用FXAA。
Post-processing in URP for VR
在VR应用程序和游戏中,某些后处理效果可能会导致恶心和迷失方向。为了减少快节奏或高速应用中的晕动病,在VR中使用Vignette效果,避免在VR中出现镜头失真、色差和运动模糊等效果。
Volumes
通用渲染管道(URP)使用了体积框架。根据相机相对于每个体积的位置,体积可以覆盖或扩展场景属性。
URP使用体积框架进行后期处理效果。
URP为体积块实现了专门的游戏对象:Global Volume, Box Volume, Sphere Volume, Convex Mesh Volume.。
体积组件包含模式属性,该属性定义体积是全局的还是局部的。
当模式设置为全局时,体积会影响场景中相机的所有位置。当模式设置为局部时,如果相机在碰撞器的范围内,则体积会影响相机。有关更多信息,请参见如何使用局部体积。
你可以添加一个体积组件到任何游戏对象。一个场景可以包含多个游戏物体与体积组件。你可以在GameObject中添加多个体积组件。
体积组件引用一个体积配置文件,其中包含场景属性。体积配置文件包含每个属性的默认值,并在默认情况下隐藏它们。体积覆盖允许您更改或扩展体积配置文件中的默认属性。
在运行时,URP会经过场景中附加到游戏对象上的所有激活的体积组件,并决定每个体积对最终场景设置的贡献。URP使用摄像机位置和体积组件属性来计算贡献。URP从所有具有非零贡献的卷中插入值来计算最终的属性值。
Volume component properties
体积组件包含控制它们如何影响摄像机以及它们如何与其他体积交互的属性。
Property | Description |
---|---|
Mode | Use the drop-down to select the method that URP uses to calculate whether this Volume can affect a Camera: 使用下拉菜单选择URP计算此体积是否会影响相机的方法: •全局:使体积没有边界,并允许它影响场景中的每个摄像机。 •Local:允许您指定体积边界,以便体积只影响边界内的相机。在Volume的GameObject中添加一个碰撞器,并使用它来设置边界。 |
Blend Distance | The furthest distance from the Volume’s Collider that URP starts blending from. A value of 0 means URP applies this Volume’s overrides immediately upon entry. URP开始混合时离体碰撞器最远的距离。值0表示URP在进入时立即应用此卷的覆盖。 |
Weight | The amount of influence the Volume has on the Scene. URP applies this multiplier to the value it calculates using the Camera position and Blend Distance. 体积对场景的影响程度。URP将这个倍增器应用到它使用摄像机位置和混合距离计算的值上。 |
Priority | URP uses this value to determine which Volume it uses when Volumes have an equal amount of influence on the Scene. URP uses Volumes with higher priorities first. URP使用这个值来确定当体积对场景有相同的影响时使用哪个体积。URP首先使用具有较高优先级的体积。 |
Profile | A Volume Profile Asset that contains the Volume Components that store the properties URP uses to handle this Volume. 一个体积配置文件资产,其中包含存储URP用于处理此体积的属性的体积组件。 |
Volume Profiles
Profile字段存储一个体积配置文件,它是一个包含URP用于渲染场景的属性的资产。您可以编辑此体积配置文件,或者为Profile字段分配不同的体积配置文件。您还可以分别单击New和clone按钮来创建体积配置文件或克隆当前体积配置文件。
How to use Local Volumes
本节介绍如何使用局部体积实现基于位置的后期处理效果。
在这个例子中,当相机在一个特定的Box Collider中,URP应用了一个后期处理效果。
1.在场景中,创建一个新的Box Volume (GameObject > Volume > Box Volume)。
2.在Inspector中选择Box Volume。在Volume组件中,在Profile字段中,单击New。
Unity创建新的体积配置文件,并在体积组件中添加添加覆盖按钮。
3.如果场景中有其他体积,请更改Priority属性的值,以确保该体积的重写具有比其他体积更高的优先级。
4.单击Add Override。在“体积覆盖”对话框中,选择后期处理效果。
5.在Collider组件中,调整大小和中心属性,使Collider占据您希望本地后处理效果所在的体积。
确保选中Is Trigger复选框。
现在,当相机在体积盒碰撞器的范围内时,URP使用体积盒体的覆盖。
Volume Profile
体积配置文件是一个可编写脚本的对象,它包含体积用于确定如何渲染它们所影响的摄像机的场景环境的属性。体积在其概要字段中引用体积概要文件,并使用它引用的体积概要文件中的值。
体积配置文件将其属性组织为控制不同环境设置的结构。这些结构都有您可以使用的默认值,但是您可以使用体积覆盖来覆盖这些值并定制环境设置。
Create and custom a Volume Profile
创建体积配置文件有多种方法。当你创建一个场景设置游戏对象时,Unity会自动创建一个体积配置文件(菜单:Rendering > Scene Settings)。您还可以手动创建体积配置文件。导航到菜单:Assets > Create > Volume Profile。
在检查器中打开体积配置文件以编辑其属性。要做到这一点,你可以:
- 在Assets文件夹中选择体积配置文件。
- 选择一个具有体积组件的游戏对象,它的体积配置文件在配置文件字段中设置。
当您在检查器中查看体积配置文件时,您只能看到体积配置文件包含的体积覆盖值;体积配置文件隐藏了所有其他值。您必须添加体积覆盖组件,以便编辑体积配置文件的默认属性。
若要添加体积覆盖组件,请单击“Add Override”按钮,并选择要添加到体积配置文件中的体积覆盖。
例如,点击Add Override 按钮并选择Motion Blur(运动模糊)体积覆盖。这暴露了与URP中运动模糊效果相关的属性。
Volume Overrides
体积覆盖允许您更改或扩展体积配置文件中的默认属性。
URP在体积覆盖时实现后期处理效果。例如,下面的图像显示了在URP模板样本中的Vignette后处理效果。
在体积覆盖中,每个属性左侧的复选框允许启用或禁用特定属性。如果禁用某个属性,则URP将为该属性使用卷的默认值。要打开或关闭所有属性,请使用属性列表上方的all或None快捷键。
How to add a Volume Override to a Volume component
要将体积覆盖添加到体积组件:
- 选择一个带有体积组件的游戏对象。
- 在检查器窗口中,单击添加覆盖。