圖片來源: 

SEED的PICA PICA專案

繪圖軟體API DirectX 12將開始原生支援光線追蹤(Raytracing )技術,填補使用光柵化(Rasterization)渲染與真實3D場景畫面間的差距。微軟表示,支援光線追蹤技術並沒有加入新的GPU運算引擎,光線追蹤技術並不複雜,只是運算負擔很重。

DirectX新增了加速結構(Acceleration Structure)以支援DirectX光線追蹤功能(DXR),為GPU走訪(Traversal)全3D場景提供最佳化的格式,這個二階架構能最佳光線走訪,並且有效率的管理動態物件。

加速結構的下層結構紀錄了場景的幾何資訊,包括頂點以及索引等緩衝區,上層則儲存特定物體的副本列表以及變換矩陣等資訊,上層資訊會隨著每一幀動態更新。微軟表示,這樣的結構能幫助DXR有效的走訪複雜的幾何。

而在光柵化渲染工作管線(Pipeline)中,多數的遊戲會將相同材質的物體做批次渲染,以求加速畫面繪製速度,但是在光線追蹤工作管線中,難以有效的預測光線會碰撞到什麼材質的物體。因此光線追蹤工作管線狀態允許多組著色器與貼圖,當光線碰到物體A,能使用著色器P與貼圖X,當光線碰到物體B便能選用著色器Q與貼圖Y,如此便能保證光線在與物體碰撞時,能對該材料使用這確的著色器與貼圖。

另外,為支援DXR,DirectX還新增一系列HLSL著色器類型,包括Ray-generation、Closest-hit、Any-hit與Miss shaders,來描述光線在場景中與物體交互作用的實際計算方式。透過呼叫DispatchRays來調用光線產生著色器,以光線走訪加速結構,根據計算光線與物體碰撞情形,使用不同的著色器類型。

微軟Windows版遊戲開發調效與除錯工具PIX也支援了DXR API,因此支援捕捉以及分析以DXR技術所產生的畫面,幫助遊戲開發人員了解DXR與硬體的互動。開發者可以使用監控API,查看DXR工作管線中的資源狀態,並視覺化加速結構,微軟表示,這都是幫助開發者使用DXR的有利工具。

光線追蹤技術是一種3D電腦繪圖學計算畫面顏色的演算法,透過模擬光線與虛擬世界物體的交互作用,追蹤光線路徑以計算畫素顏色。雖然此方法計算畫面顏色的效果自然真實,但是其最大的缺點是效能極低,對於遊戲這類需要即時互動的應用,根本無用武之地。

受限於硬體計算能力,微軟表示,在過去30年幾乎所有的遊戲的畫面,都是使用光柵化渲染,雖然遊戲場景是3D建模,但是最終畫面的運算,皆是透過轉換矩陣投影至2D的螢幕畫面上,過程損失不少資訊,再加上採用深度剔除以及遮蔽剃除等技術減少計算,這些動作加速了畫面渲染,但同時也造成色彩失真。

微軟表示,DirectX並沒有為DXR增加新的GPU引擎,因為DXR的瓶頸在於運算負擔,而並非複雜的計算邏輯。隨著硬體計算能力越來越強大,光線追蹤技術應用的層面會逐漸增加。微軟認為,DXR最初會被用來補強當前的渲染技術,彌補光柵化渲染造成的失真。

隨著硬體的計算能力提升,接下來幾年DXR的使用率會增加,能夠用來達成真正的全域照明,而最終將會全面取代光柵化渲染。

 

 


Advertisement

更多 iThome相關內容