3D 光線追蹤技術 Imagination GPU NVIDIA

遊戲/自駕車/AR/VR受惠 光線追蹤技術顛覆3D繪圖

2019-10-22
對於瞭解3D圖形技術的人來說這個產業正在發生一件真正令人興奮的事情,也就是即時光線追蹤技術的發展。它通常被描述為電腦圖形學的「聖杯」,光線追蹤技術是使用一種模擬真實世界光線行為的技術來生成3D場景,從而為開發人員提供工具來製作的逼真視覺效果。2016年Imagination推出了世界上首款專用的光線追蹤加速器,使該項技術能夠應用到實際場景中,2018年輝達(NVIDIA)為個人電腦推出了硬體平台來支援他自己版本的技術,並命名為「RTX」。
Tesla

為什麼光線追蹤技術如此的重要?光線追蹤為開發人員提供了確定場景結構的工具,提供了一種直觀的方法來確定3D場景中物件之間的關係,其中一個例子就是反射。假如在一款遊戲中有汽車、水坑和地面上熊熊燃燒的火,可是畫面裡卻看不到火光,採用光柵化技術火光不能反射到汽車窗戶和水坑上,但通過光線追蹤技術火焰的反射效果會真實的呈現在螢幕上,這不僅僅是為了創造更加完美的圖像,而且還會對遊戲玩法產生根本性的影響。想像一下一個敵人匍匐在一個有窗戶的地方,玩家躲在角落裡,通過光線追蹤玩家可以看到敵人在窗戶上的倒影,如果採用光柵化技術則需要大量的工作。

光線追蹤技術所能夠帶來的自然效果正是它多年來一直被主要的電影製片廠用於動畫電影和效果創作的原因。皮克斯電影「汽車總動員(Cars)」中閃電麥昆(Lighting McQueen)的閃亮反光、「鋼鐵人(Iron Man)」的反光服以及「變形金剛(Transformers)」中的偽裝機器人都是得益於光線追蹤技術(圖1)。

圖1 Imagination光線追蹤架構發展歷程。

你可能會問,既然光線追蹤技術如此之好,為什麼用它來創建遊戲和其他3D場景還不是一項標準呢?原因是從運算性能的角度來看,它的代價非常的「昂貴」,超出了傳統硬體的能力範圍。言下之意是當追蹤光線時處理器必須追蹤從光源發出的所有光線,並計算每個光線如何與場景中的每個物件和表面交互。

當每一束光線照射到一個物體時,根據物理表面的類型,它可能會被吸收、反射、折射或者被散射,這可能會產生數千條額外的光線,而且都需要進行追蹤運算,這個過程被稱為全域光照。光線追蹤的性能度量單位是每秒數百萬條光線,這是理論上的度量標準,類似於GPU的填充率單位GPixels/sec和GPU的運算性能單位GFLOPS。

在電影製片廠強大的工作站可以配備高階的顯卡,這會非常的耗電,它可以不計時間成本和功耗來在本地構建場景中所需要的光線情況。然而對於可攜式裝置或汽車上的儀表則無法完成這樣的處理過程,需要的效果要達到每秒60幀(fps)或更高,這同時會受到移動電源電量的限制。

光柵化/光線追蹤技術各展所長

由於這些限制3D圖形的標準是一種稱為光柵化的技術,即使用三角形網格來創建3D物件,然後會被映射到一個二維平面上進行紋理和陰影的處理,這種方式相比光線追蹤對於運算性能的要求更低一些,並且由於其高度並行的特性,現在GPU已經被高度的優化從而更加有效的分析和處理陰影三角形。

然而決定每個圖元外觀的著色器只能「偽造」真實世界的燈光,這限制了真實感,雖然採用基於光柵化的技術可以用來模擬光線追蹤,比如高光材質,但是運算負載會增加,處理頻寬會增大,整體能耗成本也大大提高,同時會增加複雜性使得效率明顯降低,因此權衡各方面的情況採用光柵化技術類比光線追蹤效果是不合適的。

與光柵化相比,光線追蹤渲染演算法可以用來創建不依賴陰影映射(Soft Shadow)或其他光照(Lighting)等工具的光照陰影效果。舉個例子,在柵格化中動態立方體(Cube Map)映射經常被用來模擬反射,然而這些不僅耗費運算性能和頻寬,而且由於解析度的限制,當更新和進行圖元化時還會有延遲問題。類似地級聯陰影映射(Cascaded Shadow Map)它使用百分比的過濾方式來確定軟陰影效果,這就需要額外的幾何處理、運算、圖元著色等大量的工作,並且消耗額外的頻寬。那麼這些問題在光線追蹤看來,都是開銷極小的微不足道的問題。

這並不是說光線追蹤就不複雜,需要專業的知識有效的利用它,一旦這項技術被理解並被內置到工作流程中就會讓開發人員更加有效率的工作,讓他們更加專注於應用程式方面的開發。為了將圖形技術提升到一個新的水準,轉向光線追蹤技術是很有意義的(圖1)。

兩大光線追蹤類型

從另一個角度來看,光線追蹤技術分成兩種類型,首先是「混合渲染」的概念,傳統的光柵化技術用於大部分場景,而光線追蹤技術用於最重要的部分,即反射和陰影,從而大大降低了所需的運算性能和頻寬。

第二種方法是使用一種叫做「反向光線追蹤」的技術,這推翻了光線的概念,從光源發出的光線經過周圍場景的發射最終到達眼睛,相反,光線從觀察者或「相機(Camera)」投射到場景中,當光線到達表面時就可以被追蹤到光源,如果不能追蹤到光源那麼就不需要運算了,這樣就大大降低了運算的複雜度(圖2)。

圖2 反向光線追蹤運作示意圖

NVIDIA在其新的基於圖靈架構的顯卡上採用了類似的方法,傳統的光柵化硬體和專用的晶片相結合,專門設計用於加速一些光線追蹤的運算。當然不提供相應的API和軟體的硬體是沒有用的,NVIDIA已經與微軟合作使得DirectX12 API開始支援光線追蹤,而採用PowerVR光線追蹤的開發人員可以通過開放標準使用OpenGLES和Vulkan擴展庫(圖3)。

圖3 PowerVR光線追蹤架構

隨著遊戲「戰地5」的更新補丁提供對RTX的支援,開發者DICE首次將光線追蹤導入主流市場,需要注意的是由於性能的原因,光線追蹤只在遊戲中應用於發射面,如汽車面板和水坑,陰影仍然需要採用光柵化處理。儘管如此在遊戲中啟用光線追蹤功能所帶來的巨大性能衝擊還是招致了一些產品評論者的批評,尤其是考慮到這款顯卡的購買成本超過了1,200英鎊,為消費級顯卡有史以來最高的價格。

值得注意的是戰地5是第一款支援RTX的上市遊戲,Epic還承諾提供更多的技術支援,同時還宣布支援其廣泛使用的虛幻引擎,看著這些發展如何影響市場將是一件非常有趣的事情。儘管圍繞著NVIDIA RTX顯卡的發行和遊戲中的性能存在諸多問題,但讓即時光線追蹤成為現實是一項值得關注的進步,應該受到每一個關心圖形技術發展的人的讚賞。

比較不同3D圖型架構

Imagination最初推出的「Wizard」光線追蹤GPU結合了PowerVR Series6 GPU和光線追蹤單元(RTU),專用於加速光線追蹤,而且在智慧手機功率範圍之內(採用28nm製程,相比現在的7nm製程(提供更高的密度,功耗更低)落後很多)。該公司的硬體比傳統的GPU能夠快100多倍,這使得光線追蹤第一次成為現實,事實上,該公司2016年已經生產出整合到PCIe評估板卡的元件,用於展示和開發的目的。

將Imagination的架構與NVIDIA的解決方案進行比較是非常有趣的,PowerVR光線追蹤在硬體上提供了一個場景層次生成器(SHG),SHG生成一個邊界體積層次資料結構,該結構的設計可以大大提高了檢測哪些三角形與哪些光線相交的效率。使用傳統蠻力的方式需要測試每個三角形和每一條光線,這在運算上代價太大而且無法做到即時執行(圖4)。

圖4 NVIDIA RTX架構

PowerVR場景層次結構生成器將場景分割為一個由包圍框組成的層次結構,本質上是一個包含所有場景的框架,然後按層次將其分割為更小的模組,直到最小的模組包含數個三角形模型。這種分層方法通過檢查光線的交叉,然後反向追蹤直到找到正確的三角形,從而可以減少測試的數量。

雖然Imagination和NVIDIA的核心在硬體上都包含光線/模型盒的交集,並且都使用了包圍體層次結構(BVH)資料結構,但是在硬體上只有Imagination擁有場景層次生成器(SGH),這意味著能夠更有效的支援動態幾何模型場景(比如遊戲中的動畫角色)。

PowerVR的另一個關鍵區別點是可選擇模組,稱為光線相關引擎(Ray Coherency Engine)。當光線照射到三維場景中的天然材料時,它們往往會隨機散射,因此不太可能是相關的。這種隨機光線的行為意味著當光線被處理時它們會在不同的方向碰撞和發散,並與不同的盒子/三角形模型相交,這大大降低了記憶體訪問效率,從而降低了性能。相關引擎發現光線之間的共性,然後將它們組合在一起,從而提高晶片的運行效率。

AMD目前還沒有推出專門用於光線追蹤的硬體,而且使用著色器來執行所有光線追蹤運算,這樣就導致性能大大的降低了。

由於可以放入場景的光線數量有限,為了在可接受的幀率下產生高品質的結果,需要對圖形進行去噪處理,NVIDIA使用Tensor核心來實現這一功能,而Imagination則使用PowerVR神經網路加速器(NNA)來執行這一重要的後處理操作。

經過驗證Wizard SoC僅需要2W的功率就可以正常運行,而使用較老的28nm製程技術構建的演示板卡則需要10W左右的功率,以600MHz處理峰值速率為300MRay/sec。

NVIDIA聲稱圖形晶片在1.5GH/z時處理速率可達到8GRay/sec,是時鐘頻率的2.5倍,功率效率為225W。在2.5倍時鐘條件下PowerVR光線追蹤性能可達到750MRay/sec,甚至還可以達到8GRay/sec的性能,因此可以合理的得出結論,在現代SoC實現的解決方案將比NVIDIA的方案更加的高效節能。

AMD光線追蹤

想像一下其中的可能性!現在光線追蹤的第一次嘗試已經進入到主流消費者的視野,他們可能想要看到更多的進展。一旦玩家開始意識到光線追蹤所帶來的好處,他們就會希望自己的行動裝置、遊戲機甚至汽車也能夠有同樣的體驗,光線追蹤還可以為許多視覺體驗帶來巨大的價值。廚房零售商可以進行3D渲染,使客戶可以看到他們新買的產品,光線追蹤可以把展示效果提升到新的水準(圖5)。

圖5 AMD光線追蹤架構

光線追蹤可以用於增強數位儀表和3D汽車模型的真實感,它可以從相機上獲取資料,準確的將環境光反射到3D汽車模型上,這樣司機就可以更準確的判斷距離。

雖然AR和VR應用還沒有進入到主流市場,但仍然有很多人相信它們最終會成為主流。當涉及到VR時為了確保一切正常還需要可變取樣速率(Variable Sample Rates)和注視點渲染技術(Foveated Rendering),結合我們的混合光線追蹤技術實現起來更加的容易。

在本地處理還是雲服務端處理

NVIDIA的解決方案專為功耗不敏感的遊戲PC機而設計,光線追蹤技術設計理念則是以「行動優先」,是一種理想的選擇,可以從電池供電的設備(如智慧手機)擴展到可攜式或永久供電的遊戲機平台。

基於雲端運算的遊戲也被廣泛預測將作為本地硬體的補充,並最終取代使用互聯網的高性能遊戲架構,為使用低配置的玩家提供高品質的遊戲體驗。然而功耗成本和散熱管理是伺服器集群面臨的關鍵挑戰。光線追蹤在這種情況下是非常有效的,事實上可以說明更多基於雲服務的遊戲提升體驗效果。遊戲中每個玩家的狀態資訊可以進行即時更新然後發送給伺服器上的其他玩家,光線追蹤技術用於生成每個玩家獨特的場景視角,而不是採用光柵化來處理每個視角中的幾何模型。這可以大大降低服務端的系統功耗,同時帶來驚人的視覺效果。光線追蹤是一項顛覆性的技術,有望徹底改變3D圖形技術的發展。Imagination推出的PowerVR光線追蹤是一種可廣泛使用的可授權的架構,能夠支持獨立的光線追蹤處理器或者混合光線追蹤/光柵化平台。

(本文作者為Imagination光線追蹤產品管理資深總監,Benny.Har-Even@imgtec.com)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!