Unity3D:可编程渲染管线简介

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

可编程渲染管线简介

本页说明 Unity 的可编程渲染管线 (SRP) 的工作原理,并介绍一些关键概念和术语。本页面上的信息适用于通用渲染管线 (URP)、高清渲染管线 (HDRP) 和基于 SRP 的自定义渲染管线。

可编程渲染管线是一个瘦 API 层,允许使用 C# 脚本来调度和配置渲染命令。Unity 将这些命令传递给它的低级图形架构,后者随后将指令发送给图形 API。

URP 和 HDRP 建立在 SRP 之上。您还可以在 SRP 之上创建自己的自定义渲染管线。

渲染管线实例和渲染管线资源

每个基于 SRP 的渲染管线都有两个关键的自定义元素:

  • 渲染管线实例。这是定义渲染管线功能的类的实例。它的脚本继承自 RenderPipeline 并覆盖其 Render() 方法。
  • 渲染管线资源。这是 Unity 项目中的一项资源,用于存储有关所使用的渲染管线实例以及如何对其进行配置的数据。它的脚本继承自 RenderPipelineAsset 并覆盖其 CreatePipeline() 方法。

有关这些元素的更多信息,以及如何在自定义渲染管线中进行创建的说明,请参阅创建渲染管线资源和渲染管线实例。

ScriptableRenderContext

ScriptableRenderContext 是一个类,用作渲染管线中的自定义 C# 代码与 Unity 的低级图形代码之间的接口。

使用 ScriptableRenderContext API 可以调度和执行渲染命令。有关信息,请参阅在可编程渲染管线中调度和执行渲染命令。

入口点和回调

使用 SRP 时,使用它们可让 Unity 在特定时间调用您的 C# 代码。

  • RenderPipeline.Render 是 SRP 的主要入口点。Unity 会自动调用此方法。如果要编写自定义渲染管线,这就是开始编写代码的地方。
  • RenderPipelineManager 类有以下事件可供您订阅,以便您可以在渲染循环中的特定点执行自定义代码:
  • beginFrameRendering - Note: This can generate garbage. Use beginContextRendering instead.
  • endFrameRendering - Note: This can generate garbage. Use endContextRendering instead.
  • beginContextRendering
  • endContextRendering
  • beginCameraRendering
  • endCameraRendering

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D:使用高清渲染管线资源 (mvrlink.com)

下一篇:Unity3D:在可编程渲染管线中调度和执行渲染命令 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号