屏幕空间环境光遮蔽效果会实时地使折痕、孔洞、交叉点和彼此靠近的表面变暗。在现实世界中,这些区域往往会阻挡或遮挡周围的光线,因此它们会显得更暗。
URP 将屏幕空间环境光遮蔽 (SSAO) 效果实现为渲染器功能。它适用于通用渲染管线 (URP) 提供的每个着色器以及您创建的任何自定义不透明 Shader Graph。
注意:SSAO 效果是一种渲染器功能,独立于 URP 中的后期处理效果。此效果不依赖于体积 (Volume),也不与体积相互作用。
以下各图显示的场景分别将环境光遮蔽效果关闭、打开以及只有环境光遮蔽纹理。
SSAO 渲染器功能使用法线矢量来计算表面上每个点在环境光照下的暴露程度。
URP 10.0 采用 DepthNormals Pass 代码块为当前帧生成法线纹理 _CameraNormalsTexture。默认情况下,SSAO 渲染器功能使用此纹理来计算环境光遮蔽值。
如果采用自定义 SRP,并且不想在着色器中实现 DepthNormals Pass 代码块,则可以使用 SSAO 渲染器功能并将其来源 (Source) 属性设置为深度 (Depth)。在这种情况下,Unity 不使用 DepthNormals Pass 来生成法线矢量,而是使用深度纹理来重建法线矢量。
在 Source 属性中选择 Depth 选项将启用法线质量 (Normal Quality) 属性。此属性中的选项(Low、Medium 和 High)决定了 Unity 在从深度纹理重建法线矢量时采用的深度纹理样本数。每个质量级别的样本数为:低 (Low):1;中 (Medium):5;高 (High):9。