專為行動裝置打造——硬體級光線追蹤有何不同?

作者 : Kristof Beets,Imagination Technologies技術產品管理資深總監

光線來自於光源,而這些光線在物體表面反射,並且相互作用,最終這些光線會以某種特定顏色為眼睛所見,整個過程產生了我們可以看到的視覺效果...

光線追蹤是什麼?

光線追蹤是建立在現實基礎上的:光線來自於光源,而這些光線在物體表面反射,並且相互作用(吸收、改變顏色、改變方向),最終這些光線會以某種特定顏色為眼睛所見,整個過程產生了我們可以看到的視覺效果。您可以想像成從光源到我們希望的成像,正常情況下這個過程是顛倒過來的:我們的眼睛先看到光線,產生反射。目前較有效的方法是混合渲染,我們渲染大部份的傳統場景,同時使用光線追蹤技術查詢正在處理的3D場景畫素。

開啟光線追蹤,獲得精細的光照效果

基本上對於反射曲面,透過操作著色器,著色器根據視角方向發射光線,並在3D場景中找尋對象發射到該畫素中的內容。從根本說明光線追蹤將空間查詢(spatial query)作為一種新功能加入GPU,這非常適合現實場景中的很多效果。光線是檢查你能否看到(直接或反射)一束光,從而確定該畫素是亮的或陰影,以及前面提到的反射。

如今GPU的關鍵在於使用著色器要非常的彈性,如果與通用處理器單元(GPU)形式的運算結合使用,則更加的彈性。GPU的特點一直都是如此,將半固定功能的硬體與完全可程式設計的著色器混合使用,從而獲得最佳的彈性和效率。

在圖形中光線、陰影和反射一直很普遍,從無陰影到斑駁陰影,再到體積模組以及更複雜的篩檢程式和多解析度查找,我們耗費了很長一段時間。現在,由於我們使用如此強大的運算性能和頻寬,使得成本攀升,而事實上使用真正的光線追蹤以達到良好的光線,其效果會更快、成本更低,且品質一定比著色器更好。

在Imagination的光線追蹤等級(Ray Tracing Levels)白皮書中,針對光線追蹤的使用提供了詳細的介紹。Imagination從一開始就考慮了電池供電設備的效率,所以重點一直是光線追蹤L4和L5高效解決方案。簡單來說,Imagination完全從著色器(L2和L3的解決方案僅能夠實現部份功能)上卸載了光線追蹤,並且在照射物體時使用同調性排序,以提高記憶體存取和執行效率。Imagination追蹤和處理的是成束的光線而非分散的光線,如果所有光線都朝著不同的方向發射,其效率是非常低的。

不光滑表面隱藏同調性示範

偽造的光線追蹤效果

根據一些關於陰影的技巧示範(例如無陰影、一些簡單的斑點、模組、更複雜的陰影貼圖),雖然這些技術變得更複雜,但隨著所需的更高畫面品質,它們的缺點也越來越明顯。

這對於反射也是可行的:從無發射、偽造的模糊紋理查找、預烘焙立方體貼圖、動態立方體貼圖,甚至是部份軟體光線追蹤,例如螢幕空間反射。使用這種方法,你可以在螢幕空間內執行最少量的光線追蹤,使用方向向量和深度資訊來反射附近的物件物體(但並不適用螢幕上的所有物件)。

Imagination推出硬體級光線追蹤IP

2014年,Imagination Technologies成立了Plato Boards,並開始著手光線追蹤技術的開發,目前並積極透過高能效IP的開發,將光線追蹤技術推廣至各市場和平台。2015年,Imagination已將光線追蹤單元整合到GPU中,如Plato硬體平台。這意味著著色器會發出光線,專用的單元會採集許多光線並查找同調性。將沿著相似方向的光線綁定在一起,然後對這些光纖束進行統一處理,即可存取一個Bounding Volume Hierarchy (BVH)單元模組,首先檢查光纖束是否與3D場景相交(基本上是一個非常大的邊界框),如果光線與3D場景相交,就沿著盒體的層次結構向下處理;整個場景就會分割成更小的盒體單元,然後再檢查這個盒體的層次結構。

如果光線束與盒體相交,將深入到盒體的層次結構中,直到最終該光束沒有任何阻礙,若光束已經不會擊中盒體內的任何地方,則可以透過快速排除場景內的大部份空間來節省時間和精力。當在某個點上看到越來越小的盒體時,會切換到實際的三角形幾何體,然後從盒體光線測試轉換到三角形光線測試。當然這是我們要找的光線實際交點,之後便將其返回著色器碼進行處理。

整合至遊戲引擎中是很簡單的,因為基本上發出光線是標準著色器程式碼的一部份,例如UE4引擎已經支援此一特性。我們還需要獲取場景資訊並創造BVH,這同樣是API的一部份,有點類似幾何處理,遊戲引擎透過API將幾何圖形提交給GPU和驅動程式進行處理。

Imagination提供的獨特性功能是同調性,例如光束處理與分塊渲染(Tile Based Rendering)類似,後者也將畫素組合在一起然後在晶片上處理。因此,從概念上看,分塊渲染和具有同調性排序的BVH處理L4光線追蹤解決方案非常相似,但是在頻寬和處理效率上具有很大的差異,遊戲引擎的性能會更高,效果更好。

為行動平台打造

當然,光線追蹤也是有區別的,但關鍵是光線仿造的效果成本更高,以至於使用專用的硬體功率更大、頻寬更高,處理效率也降低,這點對於行動裝置和PC端沒有什麼不同,使用純粹的著色器圖形技術已經不再是正確的選擇,而我們的L4方案其效率已超過了PC端,就像我們20多年前創建的分塊延遲渲染技術(TBDR)所帶來的效果,如今它已經成為渲染的業界標準(IMR也不再適用)。

透過增加同調性聚集處理的效率,可減少運算反射和光線相互作用的時間,這也減少了介面調用的次數,相對的也意味著可以在低功耗的硬體上運行。

對於行動平台,我們總是希望透過更少成本做更多的事,因為行動裝置的功耗和頻寬都是有限的,運用人工智慧和神經網路則可協助處理繪圖技術。很幸運的,我們為此開發了專用的加速器,並且能夠與開發者合作利用這些單元實現最佳的效果,針對其所使用的硬體平台提升圖形和光線追蹤效果。當然,我們還會不斷創新。

與硬體的相容性

我們的硬體會將DirectX和Vulkan所需和期望的標準考慮在內,這意味者硬體開發者不需提供尚未提供給其他廠商的服務。而與其他廠商不同的是,Imagination期望以更低的功耗和頻寬成本來實現,為開發者的其他任務預留更多的著色器時間。

提升的空間

製程技術的演化遇到了瓶頸,例如在實現更高密度以及3nm和5nm的電晶體時,頻寬和功率的成長速率並不相同,因此必須拿出解決方案在最有效的處理邏輯上執行工作負載,比如在CPU和GPU上處理的內容,以及傳遞給AI引擎處理的內容。我們也會看到更多的加速器誕生,比如Imagination的光線追蹤引擎,可以提供更高的處理效率,管理更多異質的處理資源。頻寬和數據流是很寶貴的,與同調性和分塊渲染一樣,我們一直在尋找將關鍵數據保留在晶片上避免使用外部功耗較高的DDR記憶體或HBM記憶體(功耗更高)。

我們持續透過更低的功耗來實現更高的FPS、用更低的處理頻寬和更低的功率實現更高的品質,而這也表示,我們的所有努力,目標都是達到最高的效率。

加入LINE@,最新消息一手掌握!

發表評論