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