Microsoft 於今年 GDC 開展之際,宣布自家 DirectX 12 加入 Variable Rate Shading 繪製技巧支援性,能夠讓畫面不同區域採用不同的 shading rate 進行繪製,有機會讓中、低階顯示卡在畫面品質損失輕微的情況之下,提升每秒能夠繪製的畫面張數,此舉也讓 DirectX 12 成為首個原生支援 Variable Rate Shading 技術的跨硬體 API。
為了生成畫面當中每個像素,會呼叫著色器進行計算工作,決定像素的顏色,而 shading rate 可視為每個繪製呼叫的解析度,shading rate 較高,運算出來的畫面就更為精緻,相對而言需要更多 GPU 運算資源;shading rate 較低,運算畫面品質變差,但好處是消耗更少資源,提升畫面輸出速率。
在引進 Variable Rate Shading 之前,程式開發者設定好 shading rate 之後,只能套用到整張畫面,看要顧及品質犧牲速度,或是追求速度犧牲品質。Variable Rate Shading 技巧就是用來打破 2 擇 1 的局面,程式開發者可以依據實際需求,設定畫面當中的不同區塊,以不同的 shading rate 進行繪製。譬如玩家比較注意槍戰遊戲的槍枝準心附近畫面,靠近畫面邊緣即可使用較低的 shading rate;另一方面,遊戲當中物件邊緣蘊含的資訊量較多,物件內部即可以較低的 shading rate 繪製,兼顧畫面品質與輸出速率。
▲NVIDIA 已於自家 Turing 顯示繪圖架構,加入自己的 Variable Rate Shading 功能。
Microsoft 將支援 Variable Rate Shading 的 GPU 硬體分為 2 級,第一級支援 per-draw shading rate,每呼叫 1 次著色器進行繪製運算即可設定 1 次 shading rate,第二級則支援 within a draw,每次呼叫著色器進行運算即可以 screenspace image 或是 per primitive 的方式,設定不同區域的 shading rate。
深入解釋第二級硬體 screenspace image 與 per primitive 2 者的不同,screenspace image 設定方式有點類似於 bitmap,直接在畫面指定該區域所採用的 shading rate;per primitive 則是以三角形為設定最小單位,譬如遊戲採用 DoF 深度處理模糊遠方物件時,距離攝影機較遠的物件(攝影機焦點之外)即可採用較低的 shading rate,反正最後都會進行後處理被模糊掉,又何必使用較高 shading rate 浪費效能?
Microsoft 找來 Firaxis Games 的 Civilization VI「文明帝國 VI」進行比較,在導入 Variable Rate Shading 之前,NVIDIA GeForce RTX 2060 可於 4K 解析度達成 53FPS 畫面輸出速率。導入 Variable Rate Shading 第一級,分別於海洋與陸地採用較低的 2x2 shading rate,小型物件採用較高的 1x1 shading rate,此時效能可增加約 20%,但是出現肉眼能夠辨識的畫面品質下降情形。
▲若是不事先揭露畫面左半部、右半部何者採用 Variable Rate Shading Tier 1,何者沒有導入 Variable Rate Shading,你能夠以肉眼分辨嗎?(點圖放大)(答案請反白:右側採用 Variable Rate Shading Tier 1)
進入 Variable Rate Shading 第二級比較,在 Civilization VI 遊戲當中採用邊緣偵測過濾器,決定畫面中哪些區域要以 1x1 進行繪製,哪些區域又以 2x2 進行繪製。有了更聰明的決策機制之後,畫面品質獲得一定程度的改善,肉眼幾乎無法分辨是否採用 Variable Rate Shading,同時 FPS 也有 14% 的提升。
▲透過邊緣偵測過濾器決定哪些區域以較高或是較低的 shading rate 進行繪製。(紅色為 1x1、藍色為 2x2)
▲藉由邊緣偵測輔助判斷,肉眼觀察右側畫面品質相當接近左側,同時 FPS 效能提升約 14%。(點圖放大)
由 DirectX 12 加入 Variable Rate Shading API 支援性,就不怕此技術只能應用在某些 GPU 硬體身上,遊戲開發者更不必替不同廠牌、不同世代的硬體撰寫不同語法。Microsoft 表示 DirectX 12 的 Variable Rate Shading 目前已可在 NVIDIA 硬體運作,Intel 預計今年推出的 Gen11 繪圖顯示架構也如火如荼測試當中。對於玩家來說,中、低階顯示卡可望藉此技術,獲取一定程度效能提升,高階顯示卡則可於部分畫面區域採用較高的 shading rate,獲得畫面品質提升效果。
資料來源
Variable Rate Shading: a scalpel in a world of sledgehammers
延伸閱讀
你知道電腦王也有 Telegram 頻道嗎?
加入電腦王Facebook粉絲團