08-16-2024 08:39 AM
今天來跟各位提一個你可能不會太在意,而你的Android手機可能具備的功能:Variable Rate Shading(簡稱VRS),這個名詞翻譯成中文可以稱呼它為「可變著色率」。
這項技術是做什麼的呢?
如果你想看最完整的解釋,可以參考Qualcomme官方網站的資料。
OK,如果你可以吃得下上面那篇文章,估計你對遊戲運算的技術是有相當程度的了解的。
事實上,這並不是一個非常新穎的技術,類似的效果已經存在於遊戲業界很多年。
這個技術的目的主要是為了提高遊戲運作的效率、並且降低硬體負擔。
簡單來說,如果運用得當,硬體就可以在有限的效能裡、不用花這麼多運算資源、占用更小的硬體容量就呈現出優秀、而且穩定的遊戲畫面。
類似技術的應用有一個很經典的例子,那就是數十年前N64主機的「BIOHAZARD 2」,當年的開發人員把兩張CD(一張CD大概是700MB的容量)的遊戲內容,塞進一塊容量只有64MB的卡帶裡面。為了達成這個目標,開發團隊用上了大量的技術進行優化,其中也包括類似VRS的運算。
這個技術到底是怎麼運作的?
如果你覺得Qualcomme官方網站的資料太複雜、實在看不太懂,那筆者準備了一個簡化很多的版本。
最簡單來說,就是用「複製&貼上」的方式填補遊戲畫面上重複的區域來節省效能(這解釋夠簡單了吧?)。
這個技術主要是應用在遊戲畫面的運算,主要目的是在不改變畫面的前提下,降低硬體運算效能的負擔。
我們看到的遊戲畫面其實是經過一系列複雜運算之後的結果。
為了讓我們看到流暢的遊戲畫面,我們的硬體要做到以下這樣的事:
它需要快速的計算畫面上的每一個像素點需要填上什麼顏色,然後快速的組合出一個完整的圖片。
接著,再用很快的速度,持續不斷的把連續的圖片投放到螢幕上,讓我們看到完整、連續而且可以互動的畫面。
光看就知道這個工作有多複雜。
那麼,既然已經有畫面了,如何才能節省運算資源呢?
有個簡單的作法,就是畫面上一樣的顏色或物體不要重複計算,直接複製貼上已經算好的結果就搞定了。
如果畫面上的某個區塊在一段時間裡面都是一樣的結果,我們甚至可以直接讓那個範圍保留前一個畫面已經算好的結果。
Variable Rate Shading的技術大概就包含以上的功能。
透過減少反覆計算同樣的結果,來節省硬體的運算資源。
這個幫助硬體「偷吃步」的技術可以怎麼運用?
如果我們有運算效能超強的硬體,其實我們也不用想要怎麼幫硬體減低工作壓力了。
但現實的情況,硬體的效能是有限的。
所以要怎麼在有限的運算能力之下盡可能的計算出更流暢、更精緻的畫面,這是不得不去思考的問題。
舉例來說,如果有一款遊戲對硬體效能的負擔極大,理想的狀況是工程師可以用這些技術節省一些效能,接著把節省出來的效能再投入畫面的運算、提高遊戲畫面的更新率,讓遊戲畫面更順暢。
這樣「偷吃步」的運算有缺點嗎?
首先,它有可能會稍微影響畫質表現。
此外,如果遊戲畫面越複雜、畫面的動態越大,這項技術就會越難發揮。
可以這樣理解:如果畫面上重複顯示的物件和顏色越少,可以靠「複製貼上」填補的區域也相對變少,能靠這個技術節省的效能也就變少了。
要怎麼在Android系統開啟這個功能呢?
好問題。
目前就我所知,這種可以用來節能的運算通常會直接被包含在遊戲裡面,很少會獨立做出一個選項出來給我們切換。
但也有特例,比方說ROG Phone 8針對某些特定的遊戲可以獨立啟動一個叫做「AutoVRS」的功能。
啟動方式如下:開啟Armoury Crate,依序點選「遊戲設定檔」=>「進階模式」=>「編輯」=>「顯示」。
↪︎開啟Armoury Crate,進入「遊戲設定檔」,切換到「進階模式」之後再按「編輯」的按鈕。
↪︎如果遊戲可以支援這個功能,我們可以在選單列表的最下方看到「AutoVRS」的選項。預設狀態通常為關閉。
目前筆者確定存在這個選項的遊戲是王者榮耀(CN)、傳說對決、PUBG MOBILE。
有興趣的話不妨把這個選項打開,嘗試看看它帶來的實際的效果。