版本:Unity 6 (6000.0)
语言:English
URP 中的屏幕空间环境光遮蔽 (SSAO)
向 URP 渲染器添加屏幕空间环境光遮蔽渲染器功能

URP 中屏幕空间环境光遮蔽简介

屏幕空间环境光遮蔽一种近似模拟环境光(非来自特定方向的光)在表面上某一点的照射程度的方法。
请参阅 术语表
效果会实时地使凹槽、孔洞、交集以及彼此靠近的表面变暗。在现实世界中,此类区域往往会阻挡或遮蔽环境光不来自任何特定方向的光,并向场景中的所有方向提供相等的光照。 更多信息
请参阅 术语表
,因此它们看起来更暗。

URP 将屏幕空间环境光遮蔽 (SSAO) 效果实现为渲染器功能。它适用于通用渲染管线一系列操作,这些操作获取场景的内容并将其显示在屏幕上。Unity 允许您选择预构建的渲染管线,或编写自己的渲染管线。 更多信息
请参阅 术语表
(URP) 提供的每个着色器在 GPU 上运行的程序。 更多信息
请参阅 术语表
以及您创建的任何自定义不透明着色器图。

注意:SSAO 效果是一个渲染器功能,并且独立于 URP 中的后期处理在图像显示在屏幕上之前,通过应用滤镜和效果来提高产品视觉效果的过程。例如,您可以使用后期处理效果来模拟物理相机和胶片属性,例如 Bloom 和景深。 更多信息 post processing, postprocessing, postprocess
请参阅 术语表
效果。此效果不依赖于 Volume 也不与之交互。

以下图像显示了带有环境光遮蔽效果关闭、打开以及仅显示环境光遮蔽纹理的场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是分段设计和构建游戏。 更多信息
请参阅 术语表

Scene with Ambient Occlusion effect turned off.
环境光遮蔽效果关闭的场景。
Scene with Ambient Occlusion effect turned on.
环境光遮蔽效果打开的场景。
Scene with only the Ambient Occlusion texture.
仅显示环境光遮蔽纹理的场景。

实现细节

SSAO 渲染器功能使用法线向量来计算表面上每个点暴露于环境光照的程度。

URP 10.0 实现 DepthNormals Pass 块,该块会为当前帧生成法线纹理 _CameraNormalsTexture。默认情况下,SSAO 渲染器功能使用此纹理来计算环境光遮蔽值。

如果您实现了自定义 SRP,并且不想在着色器中实现 DepthNormals Pass 块,则可以使用 SSAO 渲染器功能并将它的 Source 属性设置为 Depth。在这种情况下,Unity 不会使用 DepthNormals Pass 生成法线向量,而是使用深度纹理重建法线向量。

Source 属性中选择 Depth 选项会启用 Normal Quality 属性。此属性中的选项(低、中和高)决定了 Unity 在从深度纹理重建法线向量时采样深度纹理的次数。每个质量级别的样本数:低:1,中:5,高:9。

URP 中的屏幕空间环境光遮蔽 (SSAO)
向 URP 渲染器添加屏幕空间环境光遮蔽渲染器功能