Unity-创建渲染管线资源和渲染管线实例
如果您要创建自己的可编程渲染管线 (SRP),您的项目必须包含:
一个继承自 RenderPipelineAsset 并覆盖其
CreatePipeline()
方法的脚本。此脚本用于定义渲染管线资源。一个继承自 RenderPipeline 并覆盖其
Render()
方法的脚本。此脚本用于定义渲染管线实例。一个从 RenderPipelineAsset 脚本创建的渲染管线资源。此资源充当渲染管线实例的工厂类。
因为这些元素非常紧密相关,所以应该同时创建它们。
创建基本渲染管线资源和渲染管线实例
以下示例显示了如何为实例化渲染管线实例的基本自定义渲染管线资源创建脚本、如何创建可定义渲染管线实例的脚本以及如何创建渲染管线资源本身。
创建一个名为 ExampleRenderPipelineAsset.cs 的 C# 脚本。
将以下代码复制并粘贴到新脚本中:
3.创建一个名为 ExampleRenderPipelineInstance.cs 的 C# 脚本。
4.将以下代码复制并粘贴到新脚本中:
5.在 Project 视图中,单击添加 (+) 按钮,或者打开上下文菜单并导航至 Create,然后选择 Rendering > Example Render Pipeline Asset。Unity 在 Project 视图中创建新的渲染管线资源。
创建可配置的渲染管线资源和渲染管线实例
默认情况下,渲染管线资源存储有关用于渲染的渲染管线实例以及 Editor 中使用的默认材质和着色器的信息。在 RenderPipelineAsset
脚本中,您可以扩展渲染管线资源以存储更多数据,并且可以在项目中拥有多个具有不同配置的不同渲染管线资源。例如,可使用渲染管线资源来保存每个不同硬件层的配置数据。高清渲染管线 (HDRP) 和通用渲染管线 (URP) 包含这方面的示例。
以下示例显示了如何创建 RenderPipelineAsset
脚本(该脚本使用公共数据来定义渲染管线资源,而公共数据则可以通过 Inspector 针对每个实例加以设置)和渲染管线实例(该实例在其构造函数中接收渲染管线资源,并使用此渲染管线资源的数据)。
1.创建一个名为 ExampleRenderPipelineAsset.cs 的 C# 脚本。 2.将以下代码复制并粘贴到新脚本中:
3.创建一个名为 ExampleRenderPipelineInstance.cs 的 C# 脚本。
4.将以下代码复制并粘贴到新脚本中:
5.在 Project 视图中,单击添加 (+) 按钮,或者打开上下文菜单并导航至 Create,然后选择 Rendering > Example Render Pipeline Asset。Unity 在 Project 视图中创建新的渲染管线资源。