屏幕空间环境光遮蔽 (SSAO) (Screen Space Ambient Occlusion (SSAO))

屏幕空间环境光遮蔽 (SSAO) (Screen Space Ambient Occlusion (SSAO))图像效果实时逼近环境光遮蔽 (Ambient Occlusion)(作为图像后期处理效果)。它使相互接近的起皱、孔和表面变暗。在实际中,这类区域容易封闭或遮蔽 (occlude) 环境光,因而会表现得更暗。

对于实时环境光遮蔽的最新实现方法,请查看较新的屏幕空间环境光遮蔽 (Screenspace Ambient Obscurance) 效果。

与其他图像效果一样,此效果仅适用于 Unity 专业版,并且必须先安装 Pro Standard Assets 才能使用。


应用于场景的 SSAO。

未使用 SSAO 的相同场景(用于比较)。请注意结构或草地符合地面条件的角落处的差异。

属性

属性:功能:
半径 (Radius)将引入环境光遮蔽的间隙的最大“半径”。
采样计数 (Sample Count)环境光遮蔽采样次数。较高计数可提供 较好质量,但是处理开销较高。
遮蔽强度 (Occlusion Intensity)环境光遮蔽添加的黑暗程度。
模糊 (Blur)应用于变暗的模糊量。无模糊 (0) 速度快得多,但是变暗的区域具有噪波。
缩小采样 (Downsampling)执行计算时应采用的分辨率(例如,缩小采样值 2 将以屏幕分辨率的一半工作)。缩小采样可提高渲染速度,不过会牺牲质量。
遮蔽衰减 (Occlusion Attenuation)遮蔽随距离衰减的速度。
最小 Z (Min Z)如果存在假象,请尝试增大此值。

详细信息

SSAO 使用图像处理效果逼近环境光遮蔽。其成本完全取决于屏幕分辨率和 SSAO 参数,而不是如同真实 AO 一样取决于场景复杂性。但是,逼近容易引入假象。例如,处于屏幕外部的对象不会参与遮蔽,遮蔽量取决于视角和相机位置。

请注意,SSAO 在处理时间方面的成本非常高,一般只应在高端显卡上使用。使用 SSAO 会使 Unity 渲染相机的深度+法线纹理,这会增加绘制调用数并产生 CPU 处理开销。但是,深度+法线纹理随后还可以用于其他效果(例如,视野深度 (Depth of Field))。生成纹理之后,便会在显卡上执行 SSAO 效果的其余部分。

硬件支持

该效果需要带像素着色器 (3.0) 或 OpenGL ES 2.0 的显卡。 此外,还需要深度纹理支持。 PC: 自 2004 年后的 NVIDIA 卡 (GeForce 6)、自 2005 年后的 AMD 卡 (Radeon X1300)、自 2006 年后的 Intel 卡 (GMA X3000);移动: 带深度纹理支持的 OpenGL ES 2.0;控制台: Xbox 360、PS3。

将自动禁用所有不被终端用户显卡支持的图像效果。

Page last updated: 2013-06-20