幾乎每一個玩過電腦遊戲的人,都聽過 DirectX 的大名。做為 Windows 系統自帶的圖形 API(應用程式編程介面),大部分 PC 遊戲都需要它的支援。
目前 DirectX 的最新版本是 DirectX 12,它發表於 6 年前,已經相當長一段時間沒有大更新過了,19 日微軟終於公布了它的升級版──DirectX 12 Ultimate 。從字面意思上來看,它是 DX 12 的終極版,它將會隨著 Windows 10 2004 系統更新一同推送。
DirectX 12 Ultimate 有哪些特性?
從 DX 12 開始,微軟就已經將主機和 PC 之間的圖形介面打通,Windows 10 和 Xbox One 都使用了 DX 12 做為圖形 API 。使用相同 API 帶來的好處也十分明顯,遊戲公司在開發遊戲時,不需要再為 Xbox 和 PC 端的移植而煩惱,所以我們能看到大量 Xbox 遊戲出現在 PC 的應用商店中。
這次微軟發表的 DirectX 12 Ultimate 同樣是跨平台的 API,這也讓下一代 Xbox 理所當然地獲得了 PC 上的某些畫面特性,比如輝達普及的光線追蹤。
DirectX Raytracing Tier 1.1
這次微軟將 2018 年發表的 DXR 1.0 更新到 DXR 1.1 版本,這是一次增量更新,最明顯的變化有:
- 為現有的光線追蹤管線狀態對象(Pipeline State Object)加入了額外的著色器(Shader)。
- 支援 GPU 執行時間軸自動判定需要處理的光線數量。
- 引入新的內聯式光線追蹤。
(Source:wccftech)
這些特性為遊戲開發者提供了一套規避複雜光線追蹤場景的方法,讓開發者可以透過調用新函數,獲得物體遮擋查詢、剔除等功能,讓開發者能更快的構建光線追蹤的場景,給遊戲提供更好的光追效果和性能。
在微軟發表 DirectX 12 Ultimate 後,NVIDIA 表示將 RTX 系列處理器將完全支援 DXR 1.1 特效,AMD 也宣布將在 RDNA 2 架構中支持該特性。
VRS(可變速率著色)
除了光追外,之前 NVIDIA 推出的 VRS 技術也被微軟認可,並將其加入 DirectX 12 Ultimate 中。VRS 全稱是可變速率著色技術,它最明顯的作用就是降低顯示畫面中一些不重要區域色彩紋理,進而提升畫面的流暢度。
在這個技術被應用之前,GPU 需要為畫面上的每一個像素點單獨著色。而 VRS 就是對畫面區域進行劃分,為不同的區域選擇不同的著色解析度,細節要求不高的區域就將多個像素點一起著色,大幅降低了 GPU 著色的次數,大大減輕了顯卡的計算壓力。
(Source:NVIDIA)
比如上面這張圖,畫面邊緣最不顯眼位置的著色解析度就被降到最低,雖然這部分畫面的品質有所下降,但由於它只是背景,玩家不會有明顯的感知。省下來的 GPU 資源,則用於提升幀率,減少感知更明顯的卡頓現象。
可以說,有了 VRS 技術後,平均幀率不高的中低階顯卡將將會獲得不小的體驗提升。
Mesh Shader
除了為最後為像素著色外,圖形渲染在前期還需要完成物體的 3D 模型計算渲染。這個工作之前需要向 CPU 發送一個 Draw Call(繪製調用)。通常情況下, 它會因為 CPU 的性能瓶頸,限制 GPU 的發揮。
(Source:wccftech)
Mesh Shader 的可以解決這個問題,它可以讓開發人員不用考慮單個頂點或者單個圖元,用一組預定的線程更高效的完成渲染流程。
Mesh Shader 可以進一步提幾何圖形的細化程度,例如對硬體進行編程,並用簡單的方式描述樹幹枝杈的位置,最後生成細節更多的樹皮樹葉。
有了 Mesh Shader 後, 遊戲場景中的灌木叢、植被等物體將有詳細的細節,能進一步提高場景的真實性。
Sampler Feedback(取樣器反饋)
這個功能其實和 VRS 類似,都是透過減少某些冗餘訊息,降低 GPU 負載並提高性能。
與影片壓縮採用幀與幀之間的畫面矢量預測不同,遊戲中的渲染大部分都是從「0」開始,也就是不停地重複獲取頂點、視角轉換、投影、照明、剪裁、柵格化的工作,不管前後兩幀畫面有多少相同。
(Source:影片截圖)
事實上,大多數遊戲在的場景變動都十分緩慢,大多數「對象」在畫面中並沒有改變(例如天空、遠景)。取樣器反饋就是透過降低對這些對象著色的速度(比如每 3 幀一次),來降低 GPU 的工作壓力。
這個功能可減少重複對遠景和緩慢變化的陰影著色對性能影響,進一步提升畫面的幀率。
總結:開發者福利,NV 大獲全勝
這次的 DirectX 12 Ultimate 是一次增量更新,加入了之前 NVIDIA 推出的新技術,包括光追和 VRS 。有別於 DX 10 和 DX 11 的技術躍進,DirectX 12 Ultimate 更多是為開發者提供更底層的優化空間。
反映在遊戲上,我們可以會看到:更有經驗和實力的開發者會用 DX 12 Ultimate 的新特性做出非常驚豔的遊戲畫面,同時性能優化也非常出色,但如果是遊戲開發者沒有調用這些工具,它將不會對畫面和畫面效能產生太大提高。
不過 DirectX 12 Ultimate 橫跨主機與 PC,一些首發於主機的遊戲在開放到 PC 平台後或許也能獲得新特性的優化。
最後說一個好消息:NVIDIA 表示 RTX 系列將完全支援 DirectX 12 Ultimate 的所有特性,AMD 即將推出的 Navi 架構顯卡也支援 DirectX 12 Ultimate,AMD 已經發表了第一個運行光追的 DEMO。
未來幾年,光追或將全面普及。