版本:Unity 6 (6000.0)
语言:英语
在 URP 中创建低代码自定义后期处理效果
URP 的全屏传递渲染器功能参考

在 URP 中创建具有 Volume 支持的自定义后期处理效果

此页面介绍如何创建具有 Volume 支持的自定义后期处理在图像显示在屏幕上之前,通过应用滤镜和效果来改善产品视觉效果的过程。例如,您可以使用后期处理效果来模拟物理相机和胶片属性,例如 Bloom 和景深。 更多信息 post processing, postprocessing, postprocess
参见 术语表
效果。

URP 提供了一个用于自定义后期处理效果的模板。模板中的实现由一个渲染器功能组成,您可以在其中注入自定义效果的代码,以及实现与 Volume 组件交互的代码的脚本。

要使用模板创建效果,请选择以下菜单项

  • 资源 > 创建 > 渲染 > URP 后期处理效果(具有 Volume 的渲染器功能)

Unity 在 Assets 文件夹中创建了两个新的脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性并以任何您喜欢的方式响应用户输入。 更多信息
参见 术语表
:包含渲染器功能模板的脚本和 Volume 组件脚本。

模板包含反转屏幕上颜色的示例效果实现。

在渲染器功能中,在 Create 方法中,您为自定义效果或实现效果逻辑的渲染传递定义自定义材质。

渲染器功能脚本包含 ScriptableRenderPass 实现。

您在渲染传递代码中的以下区域设置自定义效果的着色器在 GPU 上运行的程序。 更多信息
参见 术语表
属性

#region PASS_SHARED_RENDERING_CODE

渲染传递包含以下两个区域。如果项目的兼容模式已禁用,Unity 将选择 PASS_RENDER_GRAPH_PATH 区域并使用渲染图 API,否则将使用 PASS_NON_RENDER_GRAPH_PATH 区域。

#region PASS_NON_RENDER_GRAPH_PATH
#region PASS_RENDER_GRAPH_PATH

要设置 Volume 组件上的效果属性,请修改 AddRenderPasses 方法中的以下行

NewPostProcessEffectVolumeComponent myVolume = VolumeManager.instance.stack?.GetComponent<NewPostProcessEffectVolumeComponent>();
if (myVolume == null || !myVolume.IsActive())
    s_SharedPropertyBlock.SetFloat("_Intensity", myVolume.intensity.value);

其他资源

在 URP 中创建低代码自定义后期处理效果
URP 的全屏传递渲染器功能参考