DX12的終極版DX12 Ultimate說明:N卡、A卡遊戲效能升級
微軟已出DirectX 12最新升級版DirectX 12 Ultimate,可以說DirectX 12從2015年正式上線以來最為重大的一次更新,它加入許多新特性,實際的部分特性已在去年十月份已預告過,原本它在Direct3D 12 Feature Levels 12_2曾出現,不過這次微軟改名稱再上線,給新版本DirectX 12加了個Ultimate後綴,那以後比DirectX 12 Ultimate更強的新版本會叫什麼呢?
首先DirectX 12 Ultimate新增特性主要有四大塊,分別是DirectX Raytracing 1.1、可變速率渲染、Mesh渲染器和采樣器反饋(Sampler Feedback)。
DirectX Raytracing 1.1
DirectX Raytracing(DXR)是微軟在2018年為DirectX 12引入的新特性,讓它支持實時光線追蹤處理。1.0版本的DXR在軟件特性上比較基礎,可以說它是圍繞着Turing架構的硬件實現而設計的,當時也沒有從軟件開發角度去考慮如何實現光追。而1.1版本擴展了DirectX 12在光線追蹤方面的軟件特性,讓它的效率更高,同時對開發者也更友好。主要有三點:
允許GPU直接調用光追
跑在GPU上面的着色器在1.1版本中可以直接調用光線追蹤,而無需折返CPU來調用。這項功能對於自適應光線追蹤場景非常有用,尤其是在基於着色器實現的剔除、排序、分類和細化等場景中。基本上今後的光線追蹤工作可以在GPU上面准備並立即生成。
按需加載光線追蹤着色器
當玩家在游戲世界中移動、新的物件變為可見的過程中,流式引擎可以根據此時的畫面需求來加載新的光線追蹤着色器,提高處理過程的效率。
內聯光線追蹤
內聯光線追蹤(Inline raytracing)是目前基於動態着色器的光線追蹤的一種替代形式,你可以將其理解為一種簡化的光線追蹤。開發者在內聯光線追蹤過程中將有更大的控制權,並且可以在任意的着色階段調用它,包括計算着色和像素着色階段。它與傳統基於動態着色器的光線追蹤可以混合使用,對於簡單的場景,內聯光線追蹤將會提供更好的性能表現,而在復雜場景中,基於動態着色器的光線追蹤將會提供更好的運行效果。
可變速率着色
可變速率渲染(Variable Rate Shading)是一項由NVIDIA在其Turing GPU上率先引入的加速着色特性,具體介紹可以看《VRS可變速率着色為什麼可以提高幀數?》簡單講它的原理,這裡不再贅述細節。
簡單來說,VRS的原理是通過改變單次像素着色器操作所處理的像素數量,來改變屏幕不同區域的着色質量。簡單來說,它可以改變同個畫面中不同部分的渲染精細度,它的用處是提高畫面幀數。
在不開啟VRS的情況,也就是正常情況下,一幀畫面的所有像素都是獨立着色的;而開啟VRS之後,原本獨立的像素被分成了一個個像素塊,它們會共享着色結果,此時GPU會根據程序員設定的重要性分級為所有像素塊分配不同的着色精細度。拿上面的圖片為例,車輛和遠景部分的像素仍然是獨立着色的,但快速變動的道路和路邊的像素塊就是區塊共同着色的,此時由於顯卡的計算資源得到了節約,所以遊戲幀數會提高。
在NVIDIA以外,英特爾已在Ice Lake處理器中第11代內顯中加入對VRS支援,而AMD方面暫時沒相關支援,不過他們也已經宣布將會在RDNA 2架構中加入相關支援。
Mesh着色器:下一代幾何處理管線的基礎
在過去的二十年中,傳統的幾何圖形處理管線已經增加了好幾個階段了,不過它的核心理念仍然基於傳統的光柵化預着色方法的,放在今天已經過於復雜,並且拖累處理效率。硬件和軟件開發者都希望改變這一現狀,於是,DirectX 12引入了Mesh着色器,它為開發者提供了前所未有的可編程能力。
原本的管線中,GPU硬件的並行能力被隱藏,或者說是被自動化了,硬件會幫助打包操作然後並行執行它,這很高效,但也存在靈活性不夠。
Mesh着色器就完全改變了這一過程,它不再是針對單一頂點或圖元的單一函數,而是工作在整個計算線程組中。在某一階段中,Mesh着色器的每個線程都是針對一個頂點,而在另外一個階段,每個線程針對着一個圖元。整個線程組的記憶體是共享的,訪問靈活度很高,同時開發人員對硬件的控制權也更大,甚至還能啟發新的技術,節約記憶體使用量和記憶體帶寬。
與Mesh着色器一同出現的還有一個可選的放大着色器(Amplification Shader)階段,它運行在Mesh着色器之前,計算得到需要多少個Mesh着色器,並啟動他們。
採樣器反饋
最後一個大特性就是採樣器反饋(Sampler Feedback),先說效果:更好的視覺質量、更短的加載時間和更少的卡頓。它的核心思想實際上就是讓程式只加載必要的紋理,把資源交給更有需要的地方。
採樣器反饋是允許游戲引擎去跟蹤紋理採樣器的使用方式,讓後者向引擎提供反饋,方法是生成「反饋圖(Feedback Map)」,它會記錄不同紋理區域的不同駐留等級,然後程序可以根據這些反饋信息來做決策——包括該如何使用紋理采樣器和要在顯存中保留哪些資源等。這比原先的流程更為精確,可以更好地分配計算資源。簡單來說它的實際效果就是用更少的顯存渲染更大、更詳細的紋理。
另外,採樣器反饋還允許了一項新技術——紋理空間着色。它可以在不柵格化對象的情況下進行對象着色,其中心目的就是緩存和重用着色結果,減少GPU的計算量。
總結,面向新圖形架構和下世代主機
在微軟推出DirectX 12 Ultimate之後,NVIDIA和AMD就迅速地宣布已要支援它,實際上DirectX 12 Ultimate絕大部分新特性可以說是基於Turing架構來的,NVIDIA在設計Turing架構時可能預留了相當部分的新特性是沒有公開的,而AMD方面在目前只能說是一個跟進者,要用上新特性,要等年底的RDNA 2架構。
DirectX 12 Ultimate的這些特性有兩個共同目標:一是提高開發者對硬件的控制力,二是提高總體計算效率。這也是為下世代主機Xbox Series X和傳說中的Xbox Series S所準備,很難說要等多久時間才能看到被應用到實際遊戲中,至少今年是看不到的,需等引擎開發商、遊戲開發者對新世代主機做調配或者做專門的開發,我們才能在PC遊戲中也看到這些運用。
來源
謝謝收看
留言列表