HBAO+

技術

為了在物體周圍創建真實的陰影,開發人員使用了一種被稱為環境光遮蔽 (Ambient Occlusion: AO) 的效果。不同於傳統的陰影, 環境光遮蔽可以導致光的遮蔽,進而創建出非一致性的陰影,如此可增加場景的深度。一般最常見的是,會在遊戲中使用螢幕空間環境光遮蔽 (Screen Space Ambient Occlusion: SSAO) 來渲染出環境光遮蔽效果。雖然有許多不同的變種技術,但所有的一切都是基於早期的環境光遮蔽技術而來的,因此也都苦於陰影的清晰度及品質不佳,最終導致在同樣場景時,相較於沒有使用環境光遮蔽,使用光遮蔽的畫質僅有微幅增加。

在 2008 SIGGRAPH 技術大會上,NVIDIA 發表了一項升級的螢幕空間環境光遮蔽變種技術,這項技術被稱為水平環境光遮蔽 (Horizon Based Ambient Occlusion: HBAO)。不同於先前的螢幕空間環境光遮蔽的變種技術,水平環境光遮蔽是使用基於物理原理的演算法,以深度緩衝採樣法來得到近似的積分值。換言之,這樣的升級同時也增加了環境光遮蔽陰影的清晰度、品質、以及可見度,所以可以讓水平環境光遮蔽產生較高品質的螢幕空間環境光遮蔽效果。

然而,出於效能的考量,水平環境光遮蔽一般是以一半的解析度來進行渲染,就如同在「戰地風雲: 惡名昭彰 2 (Battlefield: Bad Company 2)」以及「戰地風雲 3 (Battlefield 3)」這兩款遊戲中那般,因而減少了四分之三的環境光遮蔽像素數量。不幸的是,在減少解析度的情況下來渲染水平環境光遮蔽時,將無可避免的造成閃爍現象,而要在各種情況條件下來隱藏這種現象,可說是極大的挑戰 – 在「戰地風雲 3 (Battlefield 3)」中可選用的時間平均濾波功能或許能有所幫助,但是在某些情況下,這樣的閃爍現象還是會持續存在。

為了克服這些問題,NVIDIA 的 Louis Bavoil 全面重新開發並革新了螢幕空間環境光遮蔽技術,進而創造出進階版水平環境光遮蔽 (HBAO+) 技術,這是螢幕空間環境光遮蔽渲染領域的典範轉移。相較於水平環境光遮蔽,進階版水平環境光遮蔽倍增了光遮蔽效果的細節程度,運行速度快了三倍,並且使用最新的 DirectX 11 技術。

進階版水平環境光遮蔽為「縱橫諜海:黑名單 (Splinter Cell: Blacklist)」這款遊戲提供了尖端的陰影技術。
「湯姆克蘭西 縱橫諜海:黑名單 (Tom Clancy's Splinter Cell: Blacklist)」這款遊戲中的世界充滿了陰影,因此需使用尖端的新陰影技術,而這種技術只有進階版水平環境光遮蔽方能提供。

對 Louis 而言,他一開始的工作首要目標,就是要創造一種可以在 GeForce GTX 660 等現代 GPU 上,以 1920x1200 像素這樣的全解析度來進行渲染的環境光遮蔽技術。水平環境光遮蔽是可以在全解析度下提供良好的清晰度,但是它對於效能的負面影響太大了,因此使用此技術對於現今遊戲而言是不切實際的,而且就算在減少解析度的情況下來使用它,相較於螢幕空間環境光遮蔽而言,它依然會對每秒顯示幀數有著嚴重的影響。

Louis 的第二個目標是利用 DirectX 11 在 2009 年推出後(特別是在紋理陣列以及 gather4 的推出),在軟體上所帶來的進步,進而使得環境光遮蔽的執行效率得以極大化。最終,新的 DirectX 11 的硬體與軟體,讓 Louis 可以用快速的交錯渲染 (Interleaved Rendering) 技術,來進行進階版水平環境光遮蔽 (HBAO+) 的渲染,取代了慢速的全螢幕通行 (Fullscreen Pass) 技術。

Louis 的第三個,同時也最終的目標在於改善進階版水平環境光遮蔽 (HBAO+) 相較於水平環境光遮蔽 (HBAO) 在視覺上的真實性,特別是在那些有著草地、樹葉、以及其他細微細節的場景中。如同在「極地戰嚎 3 (Far Cry 3)」這款遊戲中所見到的,水平環境光遮蔽在這樣的情況下致力做出貢獻,並因而創造出十分厲害、紮實的陰影區域。

進階版水平環境光遮蔽 (HBAO+) 可協助利用太陽以及人造光線創造出逼真的場景。
進階版水平環境光遮蔽 (HBAO+) 在戶外是至關重要的,它可以利用太陽以及人造光線創造出逼真的場景。

Louis 的工作成果創造出一個更為準確的環境光遮蔽技術,使得沈重的陰影得以有著較好的清晰程度、可以更加精確,而且更加明顯。以下,你可以看到互動式比較截圖畫面,它們顯示所有紋理及遊戲元素皆被移除後的場景,僅留下環境光遮蔽處理後的陰影,如此一來可以輕易比較出介於新舊技術間的差異性。

 HBAO+ 處理後的環境光遮蔽陰影,是如何以非一致性的方式,更加精確且正確地落在目標物之上以及其周圍
點擊載入後:請注意到 HBAO+ 處理後的環境光遮蔽陰影,是如何以非一致性的方式,更加精確且正確地落在目標物之上以及其周圍。同時也請注意到影像後方的柵欄般區域。使用 HBAO 時,技術不良的採樣品質導致整個區域有著很一致性的陰影,很類似於在「極地戰嚎 3 (Far Cry 3)」中的草地情況。在使用 GTX 680且解析度為 1920x1200 像素時,在這個示範中,進階版水平環境光遮蔽 (HBAO+) 相較於水平環境光遮蔽 (HBAO) 的速度快上三倍以上,很顯著地改善了每秒顯示幀數。

如你所可以看到的,進階版水平環境光遮蔽 (HBAO+) 相較於水平環境光遮蔽 (HBAO),在每一個方面都比較優秀,上述的範例是在全解析度的情況下來進行渲染。在半解析度的情況下,水平環境光遮蔽的品質與精確性將會進一步降低,而且這個效果的影像品質也會降低。

為了量測環境光遮蔽技術的處理速度,我們記錄了發生環境光遮蔽時,從遊戲到 GPU、再到顯示器所耗費的計算及渲染一個幀幅的時間。使用時脈速度鎖定在 1058 MHz 的 GeForce GTX 680 、螢幕解析度設定在 1920x1080 像素,此時使用開發工具來測量,我們記錄到在固定場景下,每一個「縱橫諜海:黑名單 (Splinter Cell: Blacklist)」遊戲中的環境光遮蔽選項的速度,結果以灰色比例顯示如下。

以灰色比例顯示在「縱橫諜海:黑名單 (Splinter Cell: Blacklist)」遊戲的固定場景下所擷取之環境光遮蔽選項。

環境光遮蔽

解析度

光遮蔽採樣數
每一個環境光遮蔽像素

GPU 成本
(milliseconds per frame)

螢幕空間環境光遮蔽 (SSAO)

一半

16

1.3

進階版螢幕空間環境光遮蔽 (SSAO+)

完全

16

4.6

水平環境光遮蔽 (HBAO)

完全

4

1.0

進階版水平環境光遮蔽 (HBAO+)

完全

36

2.4

 

在「黑名單 (Blacklist)」這款遊戲中,Ubisoft 的全解析度「進階版螢幕空間環境光遮蔽 (SSAO+)」技術,相較於半解析度的「螢幕空間環境光遮蔽 (SSAO)」,前者可以提供較優異的影像品質,但是每秒顯示幀數在過程中會受到很嚴重的影響,每幀幅運行起來慢了 3.3 毫秒。與此同時,水平環境光遮蔽 (HBAO) 的執行,則是運行在全解析度的環境,但是每像素僅有 4 個光遮蔽樣本,遠少於在螢幕空間環境光遮蔽以及進階版螢幕空間環境光遮蔽中、所使用的 16 個光遮蔽樣本。如此一來的折衷結果就是在效能上有所增加,以及有著自己的各種問題的環境光遮蔽影像。。

相比之下,在全解析度的 NVIDIA 進階版水平環境光遮蔽 (HBAO+),會比在「黑名單 (Blacklist)」遊戲中所使用的次佳技術 - 進階版螢幕空間環境光遮蔽 (SSAO+),速度幾乎快了兩倍,而且是以超過兩倍的光遮蔽樣本數量來達到這樣的成績。這樣的結果造就了快速的執行,因此可以比其他技術提供更加豐富、且更多細節的影像。

為了使影像品質極大化,在「縱橫諜海:黑名單 (Splinter Cell: Blacklist)」這款遊戲的選單中,請選擇 [Field AO & HBAO+] 來增加額外的環境光遮蔽陰影到遊戲角色、車輛以及少數獨特的物體上。
為了使影像品質極大化,在「縱橫諜海:黑名單 (Splinter Cell: Blacklist)」這款遊戲的選單中,請選擇 [Field AO & HBAO+] 來增加額外的環境光遮蔽陰影到遊戲角色、車輛以及少數獨特的物體上。

進階版水平環境光遮蔽 (HBAO+) 是環境光遮蔽選擇的選項。它的影像品質超過任何其他技術,它是第一個最具效率的全解析度環境光遮蔽選項、第一個使用具有快取效率的交錯渲染 (Interleaved Rendering) 技術、以及第一個實質上可以消除閃爍與採樣不足所造成偽影的技術。最重要的是,進階版水平環境光遮蔽 (HBAO+) 在一個特殊的細節程度上渲染出它的所有優異環境光遮蔽陰影時,並不會對每秒顯示幀數產生顯著的影響。

截至 331.40 beta 版為止,進階版水平環境光遮蔽 已經直接內建在 NVIDIA 控制面板 (Control Panel) 內,因此可以啟動數百款遊戲的增強功能。預知更多詳情,請前往此處