返回介绍

屏幕空间环境光遮蔽(SSAO)(ScreenSpaceAmbientOcclusion(SSAO))

发布于 2021-06-20 00:15:03 字数 2019 浏览 1733 评论 0 收藏 0

屏幕空间环境光遮蔽 (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。

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文