英文原文:https://resources.unity.com/games/introduction-universal-render-pipeline-for-advanced-unity-creators?ungated=true
应用后期处理效果:左上图没有应用效果,右上图应用了Bloom,左下角应用了Vignette,右下角添加了颜色调整。
内置后处理堆栈 v2 包与 URP 不兼容。 URP 不需要额外的后处理效果包。 相反,它使用 Volume 框架。 将 Volume 添加到场景时,您可以选择将哪些后处理效果应用于 Volume 。 Volume 可以是全局的或本地的。 如果是全局,则 Volume 会影响场景中各处的相机。 将 Mode 设置为 Local 时,如果 Camera 在 Collider 的范围内,则体积会影响它。
使用 URP 后处理框架
- 第一步是确保您的主相机已启用后处理。 在 Hierarchy 窗口中选择 Main Camera,进入 Inspector,然后展开 Rendering 面板。 检查后处理选项。
2. 右键单击 Hierarchy 窗口并选择 Create > Volume > Global Volume 以创建全局卷。
- 在 Hierarchy 窗口中选择 Global Volume 后,在 Inspector 中找到 Volume 面板,然后单击 New 创建一个新的配置文件。
4. 开始添加后期处理效果。 请参阅下面列出可用效果的表格。 单击添加覆盖并选择后处理。 在此示例中,选择了 Bloom 效果。
5. 每个效果都有一个专用的设置面板。 此处的图像显示了 Bloom 的设置。
6. 您可以轻松添加多种效果(例如本例中的 Vignette)并使用它们的设置面板配置每个效果。
添加Local Volume
使用 Volume 框架,您可以配置场景,以便当相机在其周围移动时,触发不同的后处理配置文件。 这是通过添加 Local Volume 来实现的。 让我们完成设置的步骤。
- 在 Hierarchy 窗口中,右键单击并选择 Create > Volume > Box Volume。 或者,如果此形状更适合您的目的,请选择 Sphere Volume,或者选择 Convex Mesh Volume 以更严格地控制定义 Volume 区域的 Collider 的形状
2. 在 Inspector 的 Volume 面板中,创建一个新的 Profile 来存储该 Volume 数据。 该面板还可用于设置:
a. 混合距离:这是与 URP开始混合的体积碰撞器的最远距离,以及此轮廓淡入的碰撞器尺寸中的距离。在碰撞器的边缘,后处理效果将淡出,并且与边缘的混合距离对撞机将完全淡入。
b. 权重:权重定义了后处理效果的最大强度。 如果权重设置为 1,则效果将达到最大强度。 设置为 0 表示没有效果,而 0.5将效果的强度设置为最大 50%。
c. 优先级:当多个 Volume 对场景有同等影响时,使用此值来确定使用哪个 Volume URP。 数字越大,优先级越高。 如果要合并Global 和 Local,则将 Global 保留为默认设置 0,并将 Local Volume(s) 设置为 1 或更多。
- 使用 Box Collider 组件定位 Volume 并控制其尺寸,如下图所示。
后处理会对您的处理器造成很大影响,因此请仔细考虑对低端硬件和移动设备的影响。 如果您的项目必须使用它,请在目标硬件上进行测试。 一些过滤器的处理器密集度低于其他过滤器。 本文档概述了适合移动设备的效果。
这些是 URP 中可用的后处理效果。
特效 | 描述 |
---|---|
Bloom | 在定义的亮度级别以上的像素周围添加光晕。 |
Channel Mixer | 修改每个输入颜色通道对整体混合的影响。 |
Chromatic Aberration | 沿着分隔图像的暗部分和亮部分的边界创建颜色条纹。 |
Color Adjustments | 使用此效果来调整最终渲染图像的整体色调、亮度和对比度。 |
Color Curves | 渐变曲线是调整色调、饱和度或亮度的特定范围的高级方法 |
Depth Of Field | 此效果模拟相机镜头的焦点属性。 |
Film Grain | 这模拟了摄影胶片的随机光学纹理。 |
Lens Distortion | 扭曲最终渲染的图片以模拟真实世界相机镜头的形状。 |
Lift Gamma Gain | 使用不同的轨迹球来影响图像内的不同范围。 调整轨迹球下方的滑块以抵消该范围的颜色亮度。 |
Motion Blur | 这模拟了当真实世界的相机拍摄移动速度超过相机曝光时间的物体时图像中出现的模糊。 |
Panini Projection | 此效果可帮助您在具有非常大视野的场景中渲染透视图。 |
Shadows Midtones Highlights | 此效果分别控制渲染的阴影、中间调和高光。 |
Split Toning | 使用它为场景中的阴影和高光添加不同的色调。 |
Tonemapping | 色调映射是将图像的 HDR 值重新映射到新值范围的过程。 |
Vignette | 这种效果包括与中心相比向图像边缘变暗。 |
White Balance | 消除不切实际的色偏,因此在现实生活中显示为白色的项目在最终图像中呈现为白色。 |
用代码控制后处理
您还可以使用 C# 脚本动态调整后处理配置文件。 以下代码示例显示了如何调整 Bloom 效果的强度。 如果应用了晕影,您可以通过代码控制晕影颜色。 例如,如果玩家角色受到伤害,您可以暂时将其染成红色。
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
public class PPController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Volume volume = GetComponent<Volume>();
Bloom bloom;
if (volume.profile.TryGet<Bloom>(out bloom))
{
bloom.intensity.value = 0;
}
}
}