HDRP 中的可扩展性
高清渲染管线 (High Definition Render Pipeline, HDRP) 在应用程序初始化时分配资源,以便更好地管理内存。HDRP 允许您指定要为哪些效果分配内存以及使用哪个算法处理这些效果。
这些设置定义了 HDRP 项目中可用的效果,并影响 GPU 性能以及应用程序使用的图形内存量。如果启用较少的效果,则 HDRP 使用较少的内存。如果对效果使用不太精确的算法,则 HDRP 会更快地处理效果。
要指定 HDRP 要为哪些效果分配内存,以及用于处理这些效果的算法的资源消耗量,请参阅 HDRP 资源。
在 GPU 性能和可用图形内存方面,不同的平台和计算机具有不同的能力。考虑到这一点,HDRP 允许您为项目定义多个 HDRP 资源。每个 HDRP 资源都可以针对特定的平台或质量层,以便在性能和渲染质量之间保持平衡。例如,可以为以下平台定义不同的 HDRP 资源:
- Xbox One。
- Xbox One X。
- PlayStation 4。
- PlayStation 4 Pro。
- PC - 低端。
- PC - 中端。
- PC - 高端。
在 Unity 中使用 HDRP 资源和质量设置
默认 HDRP 资源
要使用 HDRP,必须创建 HDRP 资源并将其分配为项目的可编程渲染管线 (Scriptable Render Pipeline)。要进行此操作,请参阅创建 HDRP 资源。将某个 HDRP 资源分配为可编程渲染管线,该资源将用作项目的默认 HDRP 资源,并包含所有的默认 HDRP 设置。
覆盖质量级别的设置
要针对不同的硬件和计算机处理能力覆盖 HDRP 设置,必须创建一个额外的 HDRP 资源以包含被覆盖的值。
为了保证可扩展性,应该为每个游戏主机定义一个单独的 HDRP 资源,并为低端、普通和高端计算机定义一个 HDRP 资源。
质量设置面板 (Quality Settings Panel),其中具有多个质量级别以及关联的 HDRP 资源
创建 HDRP 资源后,请为该资源创建一个质量级别。要执行此操作,请选择 Project Settings > Quality,然后单击 Add Quality Level。现在,选择新的质量级别,并将 HDRP 资源分配给其 Render Pipeline Asset 属性。
分配给质量级别的 HDRP 资源是该质量级别的当前 HDRP 资源。
注意:您可以将同一 HDRP 资源用于多个质量级别。如果未向某个质量级别分配 HDRP 资源,则该质量级别会将默认 HDRP 资源用作其当前 HDRP 资源。
编辑质量级别
要编辑质量级别的 HDRP 资源,可以使用 Project Settings 窗口中的 HDRP 面板。
在顶部有一个 HDRP 资源列表,其中包含默认 HDRP 资源以及您分配给质量级别的每个 HDRP 资源。 要编辑 HDRP 资源,请从列表中选择该资源,然后使用下面显示的 Inspector。
HDRP 质量设置面板允许您编辑特定 HDRP 资源的值
使用当前质量设置参数
在渲染过程中会使用默认 HDRP 资源和质量设置中定义的设置。
不同质量级别的预定义值
在单个帧中,某些元素可能需要不同的资源。例如,距离摄像机较近的聚光灯可能比距离较远的聚光灯具有更高的阴影分辨率。
对于这种设置,您可以:
- 使用要始终使用的自定义值。
- 使用当前 HDRP 资源中定义的值。
对于上面的示例,光源的阴影分辨率可以是:
- 在光源的 Inspector 中设置的自定义值。
- 当前质量级别的 HDRP 资源中的预定义值之一(Low、Medium、High 或 Ultra)。
方向光的阴影分辨率使用质量级别 HDRP 资源中的 Medium 预定义值。
Shader Graph 中的材质质量节点
您可以使用 Shader Graph 中的材质质量节点来确定要针对特定质量执行的代码。当前质量级别位于 HDRP 资源的 Material 部分。
对于给定的质量级别,所有材质都必须应用相同的材质质量级别,这一点很重要。如果需要在单次渲染中具有不同的着色器质量(就像着色器 LOD 系统),则应编写专用的着色器,并为此渲染使用具有适当复杂性的其他着色器。
Shader Graph 中的光线追踪质量关键字
对于使用光线追踪的 Shader Graph,可以使用光线质量关键字 (Raytracing Quality Keyword) 来提供快速的实现方案。
HDRP 使用快速实现方案来提高光线追踪渲染功能的性能,此时的准确性不太重要。