返回 登录
0

自适应屏幕空间环境光遮蔽

本文将介绍自适应屏幕空间环境光遮蔽 (ASSAO) 效果的最新实施方法,该技术经过精心设计,只需实施外观、设置和质量统一、符合行业标准的方法,就可从低能耗设备和场景扩展至高分辨率的高端台式机。

在实时渲染过程中,屏幕空间环境光遮蔽 (SSAO) 常用于打造小范围环境光效果和接触阴影效果。 许多现代游戏引擎都会用到这项技术,通常使用 5-10% 的帧 GPU 时间。 尽管市场上提供大量实施方法,但其中有许多不具备开源特性,不免费提供,也无法为低能耗移动设备和台式机提供充足的扩展性能。 ASSAO 的出现有效地填补了这一空白。

下面先用一个简短的视频来展示一下ASSAO的使用效果。
本文将重点介绍如何理解和集成或移植示例代码。 另外还将介绍相关的实施细节、可用选项、设置,以及使用过程中需进行的权衡。 即将出版的书籍《GPU Zen (GPU Pro* 8)》刊登了一篇专门介绍这种实施方法的文章。
图片描述
图 1. Unity 4* 测试场景中所使用的自适应 SSAO 示例。

完整 DirectX* 11 实施方法根据易于集成的软件包中的 MIT 许可证提供。
算法概述
ASSAO 是面向可扩展性和灵活性调整后的 SSAO 实施。 环境光遮蔽 (AO) 实施以立体遮蔽模式为基础,类似“水平环境光遮蔽”[Bavoil 等, 2008 年]和创新型渐进取样核心磁盘。 与此相关的性能框架基于 2 x 2 版高速缓存友好型解交织渲染技术,“面向高效缓存交替取样的解交织纹理”[Bavoil,2014 年],以及可选深度 MIP 映射“可扩展环境遮蔽”[McGuire 等, 2012 年]。

通过改变 AO 轻击(渐进取样核心支持)数量和在不同预设级中进行特性切换,可实现与性能相关的扩展质量。

随机取样可用于共享邻近像素间的 AO 值(基于旋转并不断扩展的取样磁盘)以及最后使用的去噪模糊。 去噪模糊能够感知边缘,防止效果渗透到不相关的背景或前景对象中,从而避免产生光晕。 边缘可仅基于深度,也可基于深度和法线。 (后者可以提高质量,但会延长处理时间)。 智能模糊在 2 x 2 解交织域中执行,以实现最高缓存效率,仅最终通道以全高清在交织(重构)通道中完成。

从实际应用角度来说,它是一种基于多通道像素着色器的技术。 在“高”预设情况下,主要步骤包括:

准备深度
4 个四分之一深度缓冲区中的 2 x 2 解交织输入屏幕深度,并将数值转化成视图空间。 另外,如果不提供输入屏幕法线,则需要通过深度重构。
为每个小型深度缓冲区创建 MIP(不在“低”或“中”预设中进行)。
计算每个 2 x 2 解交织部分(共 4 个)的 AO 选项和边缘感知模糊
计算AO 选项和边缘,并将其保存在 R8G8 纹理中。
使用边缘感知智能模糊(1-6 个通道,根据用户设置)。
将 4 个部分合并成最终的全分辨率缓冲区,并使用最终边缘感知模糊通道。
“最高/自适应”质量预设中包含辅助基底 AO 通道,可用于提供重要性启发法,为主 AO 通道的每像素变量示例数提供指导。

表 1 对性能数据进行了总结概括。
这些数据仅供参考…查看原文
了解更多相关内容,请关注CSDN英特尔开发专区

Intel技术双周刊已全面开启:订阅请点击这里

评论