下表显示了延迟渲染路径渲染管道用来渲染图形的技术。选择不同的渲染路径会影响光照和着色的计算方式。某些渲染路径比其他渲染路径更适合不同的平台和硬件。了解更多信息
请参阅 术语表中的渲染通道事件序列。
渲染通道事件 | 延迟渲染路径通道 | SSAO 渲染器功能通道 |
---|---|---|
BeforeRendering | ||
BeforeRenderingShadows | ||
AfterRenderingShadows | ||
BeforeRenderingPrePasses | 深度或深度和法线预通道(仅正向材质) | |
AfterRenderingPrePasses | ||
BeforeRenderingGbuffer | G 缓冲区通道(GBufferPass) | |
复制 G 缓冲区深度纹理 | ||
AfterRenderingGbuffer | SSAO(可选) | |
BeforeRenderingDeferredLights | ||
延迟渲染(模板) | ||
AfterRenderingDeferredLights | ||
BeforeRenderingOpaques | 仅正向的不透明材质 | |
AfterRenderingOpaques | SSAO 和混合(可选) | |
BeforeRenderingSkybox | ||
AfterRenderingSkybox | ||
BeforeRenderingTransparents | ||
AfterRenderingTransparents | ||
BeforeRenderingPostProcessing | ||
AfterRenderingPostProcessing | ||
AfterRendering |
以下部分描述了延迟渲染路径渲染通道。
在延迟渲染路径中,在深度预通道或深度和法线预通道中,Unity 仅渲染不支持延迟渲染模型的材质。例如,使用复杂光照着色器在 GPU 上运行的程序。了解更多信息
请参阅 术语表的材质就是这样的材质。
在延迟渲染路径中,Unity 不使用深度预通道生成深度缓冲区了解更多信息
请参阅 术语表的副本(此行为在正向渲染路径中不同)。
如果通用渲染器有 SSAO 渲染器功能,Unity 将执行深度和法向预通过。SSAO 使用屏幕空间深度和法向缓冲区来计算 环境光遮蔽一种近似计算光线(不是来自特定方向的光线)可以照射到某个表面的某个点有多强的光线的方法。
参见 术语表。
如果通用渲染器有 SSAO 渲染器功能并且已禁用不透明性选项(该选项默认已禁用),则 Unity 会在 AfterRenderingGbuffer 事件中执行 SSAO 通道。SSAO 渲染器功能计算 SSAO 纹理。Unity 会对此纹理采样,该采样在延迟渲染通道以及用于仅渲染前向材质的通道中执行。
使用该通道顺序,Unity 可以将烘培遮蔽和 SSAO 渲染器的实时遮蔽相结合,并避免烘培环境光遮蔽与实时环境光遮蔽的双重变暗。
当启用不透明性选项时,Unity 会在前向材质渲染后在 AfterRenderingOpaques 事件中执行 SSAO 和混合通道。然后,Unity 执行额外全屏通道,以将 SSAO 纹理叠加到自发光/GI/照明缓冲区上。这会导致收到烘培遮蔽和实时遮蔽的区域过度变暗。
某些 Unity 着色器使用的照明模型,Unity 无法在延迟渲染路径中渲染。
此类着色器的示例
复杂灯光:此着色器的照明模型(例如,透明涂层效果)过于复杂,其他材质属性无法塞进 G 缓冲区中。
烘培灯光和未照明:这些着色器不计算实时照明,这就是 Unity 在仅前向通道期间将它们渲染到自发光/GI/照明缓冲区中的原因。这比在延迟渲染(模具)通道中评估着色器更快。
自定义着色器:Unity 将不声明延迟渲染路径所需的通道标签的着色器渲染为仅前向。所需的通道标签有:LightMode
和 UniversalMaterialType
。有关详细信息,请参阅 URP 通道标签。
Unity 使用着色器以 前向渲染根据影响对象的灯光,每对象一轮或多轮渲染的渲染路径。前向渲染还会根据其设置和强度,对灯光本身进行不同的处理。 更多信息
请参阅 词汇表 路径渲染材质。为了使 SSAO 渲染器功能能够以 复杂光照 着色器为材质计算环境光遮蔽,Unity 必须先在深度法线预渲染环节渲染这种材质。这是因为 Unity 不会在 G 缓冲区 (GBufferPass) 渲染环节中渲染此类材质。有关详细信息,请参阅 URP 通道标记。
为实现最大的平台兼容性,URP 延迟渲染路径使用灯光模板体积技术渲染灯光体积以及应用 延迟着色内建渲染管线的一种渲染路径,无限制可影响 GameObject 的灯光数量。每个像素都计算一次所有灯光,意味着它们都与法线贴图等正确交互。此外,所有灯光都可以有 Cookie 和阴影。 更多信息
请参阅 词汇表。