HBAO+

技术

想要在物体周围打造出逼真的阴影效果,开发商需要使用一种叫做环境光遮蔽 (AO) 的特效。与传统阴影效果不同,AO 可以导致光线遮挡,从而创造出并非千篇一律的阴影,这样的阴影可以增加场景的深度。最常见的是,游戏会采用屏幕空间环境光遮蔽 (SSAO) 来渲染 AO 特效。有许多衍生版本,然而所有这些衍生版本都基于早期的 AO 技术,因而阴影清晰度和画质不高,所以在与不具备 AO 特效的场景相比时,图像质量 (IQ) 的提升并不大。

在 2008 年的 SIGGRAPH 科技大会上,NVIDIA 推出了一种升级的 SSAO 衍生版本,叫做水平基准环境光遮蔽 (HBAO)。与之前的 SSAO 衍生版本不同,HBAO 采用了一种基于物理效果的算法,可模仿一个具有深度缓冲采样的整体。换言之,这一升级让 HBAO 能够生成更高画质的 SSAO 效果,同时提升清晰度、画质以及 AO 阴影的可见性。

然而由于性能原因,HBAO 一般以半数分辨率渲染,因此使 AO 像素数减少了四分之三。「战地: 叛逆连队 2 (Battlefield: Bad Company 2)」和「战地 3 (Battlefield 3)」中的做法就是这样的。不幸的是,以缩减分辨率渲染 HBAO 不可避免地会导致闪烁现象,闪烁现象在各种情况下都很难掩盖 – 「战地 3 (Battlefield 3)」的 HBAO 选择性时间滤波有助于掩盖,但是在某些情况下,闪烁依然持续。

为了解决这些问题,NVIDIA 的 Louis Bavoil 完全重新开发并重新修改了 SSAO,创造出了 HBAO+,它是 SSAO 渲染领域中的一次重大转变。与 HBAO 相比,HBAO+ 使 AO 特效的细节水平翻了一倍,运行速度提升三倍,还采用了最新的 DirectX 11 技术。

HBAO+ provides cutting-edge shadow tech for Splinter Cell Blacklist.
Tom Clancy 的「细胞分裂: 黑名单 (Splinter Cell Blacklist)」世界满是阴影,只有 HBAO+ 才能提供最先进的全新阴影技术。

Louis 工作之初的首要目标是创造出一种 AO 技术,这种技术在 GeForce GTX 660 这样的现代 GPU 上能够以 1920x1200 全分辨率渲染得足够快。HBAO 在全分辨率下提供了很好的清晰度,但是它对性能的严重影响使其在现代游戏上不大可行,而且在以缩减分辨率使用它时,它与 SSAO 相比依然会对帧速率产生很大的影响。

Louis 的第二个目标是通过利用 DirectX 11 在 2009 年问世时所带来的软件进步 (尤其是纹理阵列和 gather4 指令),最大限度提升 AO 实施的效率。最终,全新的 DirectX 11 硬件和软件让 Louis 能够使用快速的交错渲染 技术而非缓慢的全屏通道来渲染 HBAO+。

Louis 的第三个以及最终目标是与 HBAO 相比之下提升 HBAO+ 的视觉保真度,尤其是在草地、树叶以及其它具有精细细节的场景中提升保真度。正如在「孤岛惊魂 3 (Far Cry 3)」中所看到的一样,HBAO 在这种情况下很难创造出实心阴影区域。

HBAO+ helps to create a realistic scene lit by the sun and man-made lights.
HBAO+ 与在外边时一样重要,有助于打造出有太阳和人造光源照射的逼真场景。

Louis 的工作成果是一种更加精确的环境光遮蔽技术,厚重的阴影被定义得更好、更精确,更加清晰可见。下面,大家可以看到一项互动对比,对比中展示了一个所有纹理和游戏元素均已删除的场景,只剩下 AO 阴影,从而可以轻松对比新老技术。

HBAO+ Ambient Occlusion shadowing is far more accurate, sitting correctly on and around objects in a non-uniform fashion
点击载入: 注意 HBAO+ 环境光遮蔽阴影远比从前更加精确,投射到物体和周围的阴影物理效果得当,并非千篇一律的样式。还要注意图像后方类似栅栏的区域。反观 HBAO,该技术较差的采样画质会导致该区域的阴影效果千篇一律,与「孤岛惊魂 3 (Far Cry 3)」中的草地情形类似。在这段演示当中,在 GTX 680 上以 1920x1200 分辨率运行时,HBAO+ 比 HBAO 快三倍以上,大大提升了帧速率。

可以看到,HBAO+ 各方面都胜过 HBAO,后者在上述例子中是以全分辨率进行渲染的。当以半分辨率渲染时,HBAO 的画质和精度会进一步降低,特效的画质就更低了。

为了测量 AO 技术的速度,我们记录了出现一帧 AO 所花费的运算和渲染时间,从游戏到 GPU 再到显示器。利用开发工具,在时钟频率锁定为 1058 MHz 的 GeForce GTX 680 上以 1920x1080 分辨率运行时,我们在「细胞分裂: 黑名单 (Splinter Cell Blacklist)」中记录了固定场景中每个 AO 选项的速度,如下灰度等级所示。

Greyscale capture of Splinter Cell Blacklist AO option in a fixed scene.

AO 技术

分辨率

每个 AO 像素的
遮蔽采样数

GPU 代价
(每帧毫秒数)

SSAO

16

1.3

SSAO+

16

4.6

HBAO

4

1.0

HBAO+

36

2.4

 

在「细胞分裂: 黑名单 (Splinter Cell Blacklist)」中,与半分辨率「SSAO」相比,Ubisoft 的全分辨率「SSAO+」技术可以提供更优秀的画质,但是在该过程中会严重影响帧速率,每帧的速度慢 3.3 毫秒。同时,HBAO 方案以全分辨率运行,但是每像素仅有 4 个遮蔽采样,远比 SSAO 和 SSAO+ 的 16 个少得多。换来的结果是性能的提升以及有一堆问题的 AO 图像。

相比之下,全分辨率 NVIDIA HBAO+ 的速度比位居第二的 AO 技术 SSAO+ 快了将近一倍。另外,遮蔽采样数也翻了一番以上。结果便造就了一个更快的方案,可提供远比其它技术更丰富、更细腻的图像。

For maximum image quality, select “Field AO & HBAO+” in the Splinter Cell Blacklist options menu to add extra AO shadowing to characters, vehicles and a few unique objects.
想要最大限度提升画质,敬请在「细胞分裂: 黑名单 (Splinter Cell Blacklist)」的选项菜单中选择「Field AO & HBAO+」,以便为人物角色、车辆以及一些独特的物体添加额外的 AO 阴影效果。

HBAO+ 是首选的环境光遮蔽选项。其图像质量超越了任何其它技术,它是最高效的全分辨率 AO 选项,率先运用了节省缓存的交错渲染技术,率先几乎消除了闪烁和采样不足的伪影。最值得称道的是,当以出色的精细度渲染所有绝佳的 AO 阴影效果时,HBAO+ 不会对帧速率有明显影响。

331.40 Beta 驱动程序开始,HBAO+ 便直接内置于 NVIDIA Control Panel 当中,以便为数以百计的游戏提供增强特效。如需了解进一步的细节,敬请点此链接