如何透過簡單的幾個調整步驟,徹底呈現《狂怒煉獄》(Rage)的高畫質畫面

Gaming News

2011年10月5日

作者:Andrew Burnes

前言

id Software 昨日推出《狂怒煉獄》(Rage)這套大獲好評的遊戲,但部分遊戲玩家卻因為遊戲本身缺少設定選項而急得跳腳。 由於 id Software 公司在遊戲細節方面進行大幅調整,企圖在效能和畫面逼真度達到雙贏局面。 在本文裡我們會一直提到高畫質貼圖,而我們認為這些貼圖內容會在首次寫入的時候就載入遊戲,但我們卻發現 id Tech 5 的複雜度 大於此。 然而就是因為 id Tech 5 極為複雜,我們覺得使用「貼圖解析度」會讓讀者們比較容易瞭解。 不過我們得先聲明,id Software 不是在開發 PC 版的《狂怒煉獄》時遇到瓶頸,或是不想使用高畫質貼圖。 而是需要重新調整開發技術,更善加利用高達 12GB 的高畫質貼圖內容,這點我們將稍後說明。

追求更逼真的畫面

在今年的 E3 展裡,id Software 公司的創辦人,也是在技術方面的精神導師 John Carmack,透露PC Gamer PC 版的 《狂怒煉獄》(Rage) 可以支援高畫質貼圖。 「遊戲機的記憶體太小,沒辦法顯示高畫質貼圖內容,在 PS3 上也不能顯示 4096 X 4096 的高解析度貼圖內容。 有許多場景的確需要使用高畫質貼圖內容才能顯示,所以它們都快要達到遊戲機的顯示能力上限,而在電腦上則能顯示 8K X 8K 的高畫質貼圖內容,讓畫面更為寫實逼真。 即使用 720p 的解析度,也能更清晰地呈現 PC 版的遊戲畫面,如果對繪圖卡進行超頻的話,還能將解析度拉高到 1080p 以上,超過遊戲機顯示極限的兩倍或三倍。」

有些玩家在論壇上表示,他們使用的高階繪圖卡並未真正達到 8k 的高解析度,或許是因為 Auto-Balancer 出現錯誤,有些玩家們就開始使用他們的設定檔和調整遊戲機進行測試,看看是否能達到 Carmack 所說的水準。

Rageconfig.cfg

不久後,NeoGAF 論壇上的「angular graphics」發現在 C:\Program Files (x86)\Steam\steamapps\common\rage\base 裡新建一個 .cfg 設定檔,就能解決問題。 但要注意的是,這個動作需要先擁有一張 Video RAM 高達 1.5GB 的繪圖卡,這樣才能顯示 8K 的高畫質貼圖內容,如果將解析度調低的話,只有 1GB VRAM 的其他繪圖卡搭配 GPU Transcoding 技術,或許也能顯示高畫質貼圖內容。 點擊 NVIDIA Control Panel 左下角的「System Information」,向下捲動到「Dedicated video memory」,就能知道你的繪圖卡使用了多少的VRAM。 在顯示 VRAM 使用量時單位為 Megabytes,1.5GB 代表使用了 1536MB。

將檔案命名為 rageconfig.cfg,使用所有程式 > 附屬應用程式裡的筆記本這一類文字編輯應用程式,加入以下文字:

vt_pageimagesizeuniquediffuseonly2 8192
vt_pageimagesizeuniquediffuseonly 8192
vt_pageimagesizeunique 8192
vt_pageimagesizevmtr 8192
vt_restart
vt_maxaniso 4
image_anisotropy 4

如果你的繪圖卡擁有 3GB 的 Video RAM,就能修改設定檔前四行結尾的數字是 16384(而非 8192),這樣就能使用 《狂怒煉獄》的 16K 高畫質貼圖內容,不過我們目前沒這塊繪圖卡,不保證這樣修改的話遊戲能穩定顯示或顯示出來的逼真程度。 更新: 我們已在 3GB GeForce GTX 580 上測試過 16384 的設定值,發現這樣沒有比較好。 按照我們對 id Tech 5 新的認識,或許 使用 16384 這個設定值能在多數極要求顯示能力的場合裡,以極高的解析度來呈現高畫質貼圖內容。

如果你不確定要如何建立設定檔,請按照以下步驟:

  1. 在 C:\Program Files (x86)\Steam\steamapps\common\rage\base 的空白處按下滑鼠右鍵(如果你是使用 Windows XP 或 2000,則路徑是 C:\Program Files\Steam\steamapps\common\rage\base)
  2. 按下「新增項目」
  3. 按下「文字文件」

如果新檔案的名稱為 New Text Document.txt:

  1. 在對話方塊裡輸入 rageconfig.cfg,並按下「關閉」以接受變更
  2. 雙擊根資料夾裡的 rageconfig.cfg
  3. 要是系統提示你要選擇開啟檔案所使用的應用程式,請選擇自訂應用程式,再選擇筆記本來開啟檔案
  4. 將上述內容貼到設定檔裡,按下鍵盤的 Ctrl+S 鍵進行存檔並關閉檔案
  5. 載入 《狂怒煉獄》

如果新檔案的名稱為 New Text Document:

  1. 按下「關閉」以接受變更名稱
  2. 雙擊並開啟 New Text Document
  3. 將上述內容貼到設定檔裡
  4. 按下「檔案」- 「另存新檔」
  5. 在「檔案名稱」的方塊裡輸入 rageconfig.cfg,並按下「儲存」
  6. 關閉檔案
  7. 載入 《狂怒煉獄》

「8192」會參考前四行的設定值,也就是 John Carmack 前面所說的 8k 高畫質貼圖內容,強迫 《狂怒煉獄》 一直以 8k 的高畫質貼圖內容來顯示畫面,覆寫 Auto-Balancer 的設定內容, 「angular graphics」也取得一張 id Software 《狂怒煉獄》所使用的 id Tech 5 引擎技術簡報投影片。 id Software 在投影片裡表示除了在《狂怒煉獄》遊戲視訊選單裡指定的抗鋸齒(Antialiasing)數量,這具引擎另支援 4x 非等方性過濾(Anisotropic Filtering),所以設定檔也透過前兩行一併啟用畫質強化技術。

遊戲執行結果

我們使用設定檔重新執行幾個之前儲存過的 《狂怒煉獄》 遊戲內容,觀查使用前後在逼真度方面的差異。 為了進一步確認結果的正確性,我們手動調整了設定檔的前四行,使用 4096 4k 貼圖內容,並重新載入相同的存檔內容,接著整個刪除檔案,再次使用 Auto-Balancer。


在使用 8k 高畫質貼圖內容的情況下,呈現出極為清晰的遊戲畫面,幾乎每個物件都看得一清二楚。


出乎意料的是,4k 畫質貼圖內容的畫質居然很低,我們查看了其他戶外區域確認了這一點。


在移除設定檔後,又換成 Auto-Balancer 控制著畫質。 測試結果是相較於強迫呈現的 4K 畫質貼圖內容,Auto-Balancer 會以更高的解析度來顯示貼圖內容,但仍低於強迫呈現的 8K 貼圖內容解析度。 因此,預估解析度大概落在 5 到 6k 之間。


使用三種設定值來播放動畫進行比較。

我們觀察到使用 Auto-Balancer 時的確會出現錯誤,雖然為了截圖而關閉此功能,但在使用 8k 高畫質貼圖內容的情況下,影格率卻未低於 《狂怒煉獄》 的 60 fps 限制,所以為什麼 Auto-Balancer 需要使用低畫質貼圖內容呢? 可能此技術採取過度保守的限制,讓影格率不會上下變動嗎? 無論是什麼原因,右邊的速限牌跟倒塌建物上方「Loft Finder」廣告牌等物體顯著缺欠細節,是不爭的事實。

如同前述,我們也查看了遊戲的其他部分,主要是為了判斷結果和觀察到的內容。 在擁有豐富細節的戶外區域裡,結果也是一樣,但在 Wellspring 的市長辦公室等封閉區域裡,這三種細節水準間就沒有什麼差別了。 在大型封閉區域裡,逼真度就有差別,只不過差別不大就是。

《狂怒煉獄》的 GPU Transcoding 技術

由於本文是首次曝光,我們一直跟工程師們在討論,現在可以將 GPU Transcoding 變數的新資料分享給各位,以提升各位所使用繪圖卡的影格率、遊戲的逼真度,並且降低貼圖串流讀取的問題。

GPU Transcoding 技術的運作方式

CUDA 為 NVIDIA 的平行運算架構。 此架構可控制繪圖卡的效能,大幅提高運算表現,執行過去在 CPU 上要花費大量運算時間的工作。 id Software 公司在《狂怒煉獄》上使用壓縮貼圖格式,在 12GB 的遊戲貼圖庫檔案裡存有數十 GB 的貼圖內容。 遊戲需要進行貼圖時,就會透過原本由 S3 Graphics 公司開發出的貼圖壓縮演算法 DXT 來解壓縮(S3 Graphics 公司在九十年代以 Savage GPU 而聞名)。

解壓縮作業需要使用大量運算效能,玩家在執行遊戲的每一秒鐘都會用到這項技術,CUDA GPU Transcoding 技術會分擔掉不少 CPU 的工作,讓解壓縮的工作能盡快完成,不會出現貼圖串流讀取和貼圖內容突然出現的問題。 由於 GPU 也需繪製遊戲畫面,CPU 只剩 25-40% 的運算能力,這個稍後可以見到我們會加以調整,大幅提高貼圖串流讀取的效能。

設定檔變數

可在 rageconfig.cfg 的開頭處加入以下多個設定選項,說明運作方式、工作內容及可搭配使用的變數。

vt_useCudaTranscode

此變數與遊戲選單裡的 GPU Transcode 選項有關。 0 代表關,1 代表開,2 代表強迫執行,在遊戲裡不能設定。 設定為 1 時,遊戲會持續監控在 GPU 上繪圖和貼圖轉碼所花費的時間。 如果偵測到遊戲繪圖的時間開始變慢,會切換 GPU 轉碼的數量,避免遊戲的影格率下降。 如果偵測到 GPU 的作業週期出現空檔,就會提高轉碼率,讓兩者達到平衡。 就算四年前推出的 GPU 也能使用 GPU Transcoding 技術,不會影響到影格率或貼圖串流讀取。 這個自行發現的結果並不完美,載入時間會出現極大的變化,遊戲收到數據的時間略有延遲,這也就是說 GPU Transcoding 多少都會影響到影格率。

將設定檔裡的數值設定為 2,就能改寫這個情況,此時 vt_useCudaTranscode 會在 GPU 上處理所有工作而影響到影格率,特別是在低速 GPU 上以高解析度繪製《狂怒煉獄》的畫面時。 不過如果玩家認為逼真度比穩定以 60 fps 呈現畫面更重要,這個結果就可以接受,但是只建議 GeForce 500 系列 GPU 的用戶這麼做。

vt_cudaBudget

CUDA GPU Transcode 技術在毫秒的時間裡就會判斷是否要增減工作量。 預設的門檻值是 14 毫秒,低於維持 60 fps 的 16.6 毫秒。 此舉是刻意採取保守態度,確保在需求最大的情況下也不會影響到影格率。 對於追求最高畫質的玩家來說,可以提高門檻值;追求穩定影格率的用戶則能降低門檻值。

vt_maxPPF

vt_maxPPF 控制著引擎在影格裡轉碼的最大貼圖分頁數量。 預設值是 128,這也是最大值。這 128 個貼圖分頁相當於 2048x1024 的貼圖內容。 難處在於轉碼「工作」就像是各項作業,在單一影格裡送出太多轉碼作業,在完成前會有兩個以上的影格擠在一起。 要是 CPU 的速度太慢,會造成送出和完成的作業間有延遲的情況,造成畫面突然出現的情況更嚴重。

最好的情況就是引擎能安排各影格要送出和完成的作業。 要是 CPU 的速度不夠快,請降低各影格的分頁量 (vt_maxPPF) 或開啟 GPU Transcode 技術,情況會有所改善。 降低各影格的分頁量會減少工作量,避免出現影格漏失的狀況,則開啟 GPU Transcode 技術則會減少各分頁的 CPU 工作量。 兩者合用的話,若未加以排除,也能大幅減少貼圖串流讀取的情況。

Bethesda 與 id Software 建議有貼圖串流讀取問題的用戶在他們的 rageconfig.cfg 裡加入 vt_maxPPF 16,以解決他們的問題;或是如果用戶只使用雙核心 CPU 的話,就加入 vt_maxPPF 8。

要是這些變數未改善貼圖串流讀取的效能,則請在遊戲選單裡降低抗鋸齒(Anti-Aliasing)設定值。 舉例來說,在 2500x1600 高解析度,並設定抗鋸齒為 16X 的情況下,可能會看到貼圖串流讀取的速度變慢。 有時將抗鋸齒的設定值降低為 8X 可以解決問題,不過有時候需要設定為更低的數值。 降低解析度也或許是一個解決問題的方法。

結論

《狂怒煉獄》經過調校後,可以呈現出色精彩的畫面,希望 id Software 能盡快解決 Auto-Balancer 的問題,讓玩家們可以看到《狂怒煉獄》最漂亮的畫面。

更多關於《狂怒煉獄》的資料,請至遊戲專頁,如果你已經入手這套遊戲或打算最近就要買,請下載經調校後最佳的《狂怒煉獄》 驅動程式

回應