Version: Unity 6.0 (6000.0)
语言 : 中文
在 URP 中创建低代码自定义后期处理效果
URP 的全屏通道渲染器功能 (Full Screen Pass Renderer Feature) 参考

在 URP 中使用体积支持创建自定义后期处理效果

本页面介绍了如何使用体积支持来创建自定义后期处理效果。

URP 提供了自定义后期处理效果模板。模板中的实现包括渲染器功能 (Renderer Feature)(可在其中注入自定义效果的代码)和实现与体积 (Volume) 组件交互的代码的脚本。

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

  • 资源 (Assets) > 创建 (Create) > 渲染 (Rendering) > URP 后处理效果(结合体积的渲染器功能)(URP Post-processing Effect (Renderer Feature with Volume))

Unity 在 Assets 文件夹中创建了两个新脚本:包含渲染器功能模板的脚本和体积组件脚本。

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

在渲染器功能中,可以在 Create 方法中定义自定义效果的自定义材质或实现效果逻辑的渲染通道。

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

您可以在渲染通道代码中为以下区域的自定义效果设置着色器属性:

#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

要在体积组件上设置效果属性,请在 AddRenderPasses 方法中修改以下行:

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

其他资源

在 URP 中创建低代码自定义后期处理效果
URP 的全屏通道渲染器功能 (Full Screen Pass Renderer Feature) 参考
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961