微軟今年推出了DirectX12的升級版API——

DirectX 12 Ultimate,自2015年DirectX 12正式上線以來最爲重大的一次更新,加入了許多新的特性。

DirectX 12 Ultimate 支持光線追蹤、網格着色器、可變速率着色和採樣器反饋,將遊戲真實感提升至更高水平。

本文將詳細介紹DirectX 12 Ultimate的特性。

DirectX Raytracing 1.1

DirectX Raytracing(DXR)是微軟在2018年爲DirectX 12引入的新特性,讓它支持實時光線追蹤處理。

1.0版本的DXR在軟件特性上較爲基礎,且工作效率不高。而1.1版本增強了光線追蹤方面的軟件特性,效率更高。

GPU可直接調用光追

GPU上面的着色器在1.1版本中可以直接調用光線追蹤,而無需使喚CPU來調用。

這項功能對於自適應光線追蹤場景非常有用,尤其是在基於着色器實現的剔除、排序、分類和細化等場景中。

基本上今後的光線追蹤工作可以在GPU上面準備並立即生成。

靈活加載光線追蹤着色器

當在遊戲世界、新的物件變爲可見的過程中,流式引擎可以根據此時的畫面需求來加載新的光線追蹤着色器,提高處理過程的效率。

內聯光線追蹤

內聯光線追蹤(Inline raytracing)是目前基於動態着色器的光線追蹤的一種替代形式,可以將其理解爲一種簡化的光線追蹤。

開發者在內聯光線追蹤過程中將有更大的控制權,並且可以在任意的着色階段調用它,包括計算着色和像素着色階段。

它與傳統基於動態着色器的光線追蹤可以混合使用,對於簡單的場景,內聯光線追蹤將會提供更好的性能表現,而在複雜場景中,基於動態着色器的光線追蹤將會提供更好的運行效果。

可變速率着色

可變速率渲染(Variable Rate Shading)是一項由在NVIDIA Turing GPU上率先引入的加速着色特性。

Variable Rate Shading的原理是通過改變單次像素着色器操作所處理的像素數量,來改變屏幕不同區域的着色質量。可以改變同個畫面中不同部分的渲染精細度,它的作用是提高畫面幀數。

Variable Rate Shading未開啓的情況下,每一幀畫面的所有像素都是獨立着色的;開啓之後,原本獨立的像素被分成了一個個像素塊,它們之間會共享着色結果,此時GPU會根據設定的分級爲所有像素塊分配不同的着色精細度。

簡而言之能夠調整場景不同部分的着色率從而大幅提升性能。

VRS 可實現 NVIDIA 自適應着色,可逐幀測量運動和色彩的變化,智能降低天空、牆壁等不需要高着色率區域的着色率。

VRS 還可用於虛擬現實遊戲的注視點渲染——在雙目注視的區域描繪更多細節,同時減少視線不會注意到的周邊區域的細節描繪。

網格着色器

在過去的二十年中,傳統的幾何圖形處理管線已經增加了好幾個階段了,不過它的核心理念仍然基於傳統的光柵化預着色方法的,放在今天已經過於複雜,並且拖累處理效率。

硬件和軟件開發者都希望改變這一現狀,於是,DirectX 12引入了網格着色器,它爲開發者提供了前所未有的可編程能力。

在原本的管線中,GPU硬件的並行能力被隱藏,硬件會幫助打包操作然後並行的執行它,很高效但不夠靈活。

網格着色器就完全改變了這一過程。在某一階段中,網格着色器的每個線程都是針對一個頂點,而在另外一個階段,每個線程針對着一個圖元。

整個線程組的內存是共享的,訪問靈活度很高,同時開發人員對硬件的控制權也更大,並能節約內存使用量和內存帶寬。

與網格着色器一同出現的還有一個可選的放大着色器(Amplification Shader)階段,它運行在網格着色器之前,計算得到需要多少個網格着色器,然後並啓動他們。

採樣器反饋

採樣器反饋與可變速率着色理念想同:智能運作,降低 GPU 負載,從而提升性能。採樣器反饋可提升紋理和着色器硬件之間的計算。

開發人員和引擎能夠使用採樣器反饋實現精密複雜的紋理流算法,帶來擁有精美高分辨率紋理的大型開放世界,而且不會有阻礙沉浸感的卡頓和紋理突進。

採樣器反饋還能用於實現紋理空間着色,提升渲染效率。

簡單來說它的實際效果就是用更少的顯存渲染更大、更豐富的紋理。

採樣器反饋還包含了一項新技術——紋理空間着色。它可以在不柵格化對象的情況下進行對象着色,其中心目的就是緩存和重用着色結果,以減少GPU的計算量。

相關文章