切換
舊版
前往
大廳
主題

GeDoSaTo 翻譯兼應用

TermSelf | 2015-01-02 19:04:00 | 巴幣 2 | 人氣 2422


最後更新日期:2016/06/13



前言


這是我在玩 FF13 意外接觸到 GeDoSaTo 所發生的變革GeDoSaTo 是一款「侵入式」的畫面修改通用程式,而這軟體最厲害的地方在於它不需要任何的硬體要求。換句話說,你不需要裝任何的驅動程式或是購買支援高解析度的螢幕就可使辦到,你唯一需要做的就是開啟程式和做一些設定

隨著顯示卡效能的不斷提升,單卡可以高幀顯示 4K 的時代已經越來越接近,如果這個程式進展的順利,到時候就可以正式和鋸齒說「永別了」,往後遊戲也許就不再需要用到反鋸齒的功能,這也表示未來「柔化」和「深景」可能會更加地被重用,譬如說巫師3在深景方面就有很不錯的技術展現,而近期來的單機遊戲在反鋸齒方面開始有簡化設定的趨勢,同時也開始內建 4K 解析度的選項

在使用之前,非常可惜的是,這個軟體到目前只能相容於 DirectX 9 以下的遊戲,而且並不是所有的遊戲都支援,其中有一些可以運作得很好,但是有些卻不行。

【補充】
 真4K → 螢幕支援4K顯示,但遊戲不一定支援
 偽4K → 透過軟體/驅動改寫解析度設定強制達到4K

警告

此程式在有反外掛程式的遊戲上是有一定風險的,請自行決定是否使用。

2015/10/26 起 GeDoSaTo 的最新版本 0.19.1947 變更了運作模式。
這讓部分反外掛程式對 GeDoSaTo 會比較和善一點。





GeDoSaTo

(僅是翻譯,一切內容歸原作者所有 http://blog.metaclassofnil.com

關於

GeDoSaTo是一個修改遊戲畫面渲染的工具。它的主要目的就是不受到任何硬體限制,允許你進行Downsampling(採樣降級)和使用增強畫質的濾鏡,甚至還有可能藉由加入特定的遊戲插件來達到各式各樣的功能,例如:隱藏HuDs(介面)

安裝

首先,除非你已經確定有安裝,否則請下載並安裝 Visual Studio 2015 redistributable package

第二,如果你的作業系統是 Windows 8 或以上的版本,請確定 BIOS 設定中的 Secure Boot 是否開啟,如果它是開啟的請關閉它。因為這個功能會妨礙 GeDoSaTo 在修改遊戲所需導入的 DLL 類型的檔案。

最後,下載這個執行檔,執行它並按照接下來提供的說明操作。

如何使用

按下「Edit Settings」按鈕,就能編輯 GeDoSaTo 的設定檔。

這就是編輯文件:

重要事項

GeDoSaTo的設定檔有4個順序層級,分別是:
  • 預設(default)設定,針對 GeDoSaTo.ini 這個檔案
  • 使用者預設(default user)設定
  • 各別遊戲(per-game)設定
  • 各別遊戲使用者(per-game user)設定
越後者會覆蓋前者,它能讓你在每個遊戲有各自的設定。
舉例來說,如果你想更改 Dark Souls 2 的設定檔,請在左下角的「Profile」選擇框中,點選該遊戲的設定檔就能夠進行編輯。
如果你想了解更多關於順序層級的資訊和如何編輯設定檔,請閱讀這篇

快捷鍵一樣可以被編輯,而且還能設在遊戲手把的按鍵。在遊戲中,你可以使用「showStatus」快捷鍵 (預設:Numpad “+”) 來顯示狀態訊息

進階應用

你可以學到更多使用 GeDoSaTo 的方法 – 包括新增一個新的遊戲到白名單和如何創建一個設定檔 – 在這篇文章(下面有此篇部分的自製中文翻譯)

回報錯誤和功能要求

請用 the Github issues tracker 來回報錯誤和要求新的功能。

贊助 GeDoSaTo

如果你想贊助 GeDoSaTo,可以藉由在 Github 上提供你的原始碼或設定檔(教學),或是透過贊助讓它有更進一步的開發。非常感謝您的貢獻

(因為怕誤導,捐贈連結請自行至作者部落格尋找)


解析度升階

(本篇所講的4K,一律是指 UHD (4K),解析度 3840 x 2160)
此區目前假設所有玩家皆大致了解並會使用此程式

首先你必須知道,GeDoSaTo 不是萬能的,運算需要顯卡輸出效能。如果顯卡不夠強大,4K 是無法順利玩下去的。個人建議要擁有 GTX 960 / GTX 380 以上等級再進行 4K 解析度升階,這等級以下的顯卡請以 2K 或 3K 的解析度為目標。

反鋸齒 vs 4K
就性能消耗來說,反鋸齒相對比較便宜,而 4K 無論如何都必須付出龐大的代價。
但是在結果上,4K 能獲得的畫質是反鋸齒無法觸及的地步。

下面這兩張圖擷取於FF13

2160P→1080P 放大4倍】

【2160P→2160P 放大8倍】

你可以看到這兩張,經過 4K 解析度升階之後,4K 畫面的細節比較多;1080P 畫面的細節比較少,因為 4K 的畫素是 1080P 的 4 倍,所以 4K 能看到的顆粒大小只有 1080P 的 1/4 大,這和手機的照相功能是一樣的道理,畫素越高,解析度就越高,放大時顯示的細節越多。

(這邊的畫質,請用鋸齒的多寡來定義,鋸齒越少越好)

畫質
2160P→2160P > 2160P→1080P > 原生1080P

顯卡效能需求
2160P→2160P 2160P→1080P >> 原生1080P

(原生 1080P → 2160P 顯卡效能需求和顯示卡頻寬和記憶體有關,沒有一定的比率)

# 你會用到的縮放比模式
# bilinear:顯示卡一般的運作方式,便宜的性能消耗。
# bicubic更高畫質,昂貴的性能消耗。
# lanczos更高畫質和銳化,非常昂貴的性能消耗。
# nearest非常便宜的性能消耗。一般來說較醜,但有助於解析度升階

接下來,有3種方式,進行解析度升階

第一種:修遊戲中圖形選項來解析度升階
1. 在預設設定檔中你會看到「renderResolution」,這就是預計升階的解析度

【範例】

 renderResolution 3840x2160@60

2. 自行設定你要的

範例

 (#代表此行參數無效)

 #renderResolution 2560x1440@60
 #renderResolution 2880x1620@60
 renderResolution 3840x2160@60
 #renderResolution 7680x4320@60

你可加入很多個不同的解析度,看你喜歡,最後把遊戲加入白名單中,就可以直接在遊戲的圖形設定進行選擇,如果在遊戲全螢幕模式(不是無邊框模式)下仍然無法選擇時請參考第二種方法

第二種:用 GeDoSaTo 強制解析度升階之一
少部分遊戲有效,用於遊戲本身不支援的解析度,或是第一種方法無效時

【範例】

 (請將參數寫入指定的遊戲設定檔,以確保優先於預設設定檔)

 clearRenderResolutions
 forceRenderRes true
 renderResolution 3840x2160@60

前兩個參數是必要的,要求的解析度大小可以自己決定,請不要添加其他的解析度,以確保可以指定到對的解析度。通常強制解析度升階的結果,會碰到畫面變為 4 倍大,但遊戲畫面卻只有顯示在 1/4 的區塊或是遊戲畫面正常但是 UI 的位置跑掉。

【2160P→1080P】

如果有效,會正常顯示整個版面

第三種:用 GeDoSaTo 強制解析度升階之二

和第二種類似,但實際的運作方式不同。

 forceAlwaysDownsamplingRes true
 renderResolution 3840x2160@60

結果可能和第二種相同,有時候這個設定甚至完全無效。

【補充】

 如果螢幕支援超過60Hz
 例如 120Hz、144Hz等,請自行修改值@60→@120;@144


GeDoSaTo 內建的 SweetFX


1. 首先要開啟設定檔

2. 按下「Edit Settings」,搜尋「## Post」,你會看到下面這兩個參數。

enablePostprocessing false
postProcessingType durante

3. 複製這兩個參數到遊戲設定檔,並啟動它

enablePostprocessing true

【補充】

 稍微解釋一下這個參數的值。

postProcessingType durante

  • durante 對應的是 assets/post.fx
  (post.fx 的內容和 SweetFX 幾乎一樣,算是分支)

  • asmodean 對應的是 assets/post_asmodean.fx
  (post_asmodean.fx 是由 asmodean 這位作者所做的 GSFx Shader)

4. 如果只是在遊戲設定檔加入了參數是不會啟動的,你還必須將這個後處理的檔案(.fx)複製到和遊戲設定檔相同的位置。

【範例】
  
 GeDoSaTo\assets\dx9\post.fx

 複製到 GeDoSaTo\config\遊戲主程式名稱(的資料夾內)

5. 回到GeDoSaTo主頁面,點選「Edit Postprocessing」或是「Edit Alt. Postproc.」,就可以對指定的遊戲設定檔進行參數的修改。


避免覆蓋式渲染影響HUD

內容操作基於此篇,我翻成比較能理解的中文

1. 進入 Edit Keybindings (編輯快捷鍵)

 開啟 dumpFrame (把#去掉),預設按鍵是「數字的加號」
 開啟 showStatus (把#去掉),預設按鍵是「F12」

2. 進入 Edit settings

 (使用參數)
 trackShaders true

3. 關閉 GeDoSaTo 以外的所有的畫質插件,確定遊戲在 GeDoSaTo 的白名單,遊戲設定檔建議不要加入任何畫質有關的參數。

4. 設定遊戲的圖形設定,調整到你要的設定。

5. 打開遊戲,載入到遊戲畫面。

6. 按下 dumpFrame 熱鍵 (這可能需要花點時間),等 dumpFrame 完畢。

7. 關掉遊戲

8. 到 GeDoSaTo\tmp\主程式名稱(的資料夾內)


找出HUD出現前的畫面,畫面的顏色深淺不重要,重點在於出現無HUD
你要抓的是「完全」沒有HUD的畫面,不管出現在前面還是後面
如果你看到全部的圖都是有HUD的圖,請更換一個場景再試試。
建議找到會顯示所有HUD的場景再進行捕捉,減少搜索範圍。
在 0.21 版之後可以使用複數的 Hash,提高了多場景的相容性。

9. 到 GeDoSaTo\logs,開啟你剛剛 dumpFrame 後所產生的 log

範例

 主程式名稱_Mon_Jan_19_16-29-49_2015.log

 開啟 log之後,有兩種方法進行搜尋「SetPixelShader」或SetVertexShader」。

方法 1

 從步驟 8 的圖片中「dump103」是沒有HUD的畫面,而「dump104」就出現了HUD,你要找的就是「dump103~dump104」之間的數據,建議先搜尋dump104之後,再往回搜尋「Shader會比較快。

方法 2

如果你在方法 1 失敗了,請嘗試以下方法,以上圖為例「dump098」是一個不完整的畫面圖,但是「dump099」是完整的,你可以捕捉這個在前面比較早出現變化的關鍵點,建議先搜尋dump099」,再往前找最後一個Shader,這種變化不一定會出現,要看運氣。

一般來說你會看到類似於下方的數據

SetPixelShader 29ED36C0, name: e3e23fb6
SetVertexShader 175828C0, name: d5c84bde

 name: e3e23fb6name: d5c84bde這個小寫字母和數字混和的值就是你要找的。

 (長這樣類似的數據在dump_103和dump_104之間可能會有非常多個,但是重複率也很高)

10. 接著,回到設定檔
Profile:config\遊戲主程式\GeDoSaTo.ini,輸入剛剛的找到的「SetPixelShader」或SetVertexShader」。

  SetPixelShader 植入 injectPSHash
  SetVertexShader 植入 injectVSHash

【範例】

  injectPSHash e3e23fb6 (適用於 瑪奇)
  injectVSHash d5c84bde (適用於 激戰2_32bit)
  injectVSHash 26f39e3e (適用於 瑪奇英雄傳)
  injectPSHash f2a5855c (適用於 救世主之樹)

(只需要留一個,這樣就完成了)

每個遊戲會有不同的 Hash,大部分只有一個可以使用別人找出來的,相對的也可以分享給別人。

在單機遊戲上,有些 HUD 是不會顯示在前面的章節的,到了後面的章節,前面使用的值可能就不再有用,出現新的 HUD 就必須重新捕捉。

11. 如果碰到 SweetFX 連同 HUD 一起被攔截或是加入 Hash 之後 AA 變成沒有效果試著加入這條參數。

injectDelayAfterDraw true


環境遮蔽(Ambient Occlusion)


我最偏好的是 HBAO+,但是這只有 Nvidia 顯卡驅動才可以玩。
SAO 預設的耗能中,效果一般
HBAO 雖然不如+,但還是不錯,耗能較高
VSSAO2 效果不錯,耗能較少。
MSSAO 耗能最低,但效果能匹敵 HBAO 和 VSSAO2,而且既使在 Blur type 設定為 sharp 的情況下還是比另外兩個更省很多資源。

【範例】

## SSAO

# Determine the type of AO used
# "SAO" = Scalable Ambient Obscurance
# "HBAO" = Horizon Based Ambient Occlusion
# "VSSAO2" = Volumetric SSAO
# "MSSAO" = Martinsh SSAO inspired by ArKano22
ssaoType MSSAO

# Enable and set the strength of the SSAO effect
# (all 3 settings have the same performance impact!)
# 0 = off
# 1 = low
# 2 = medium
# 3 = high
ssaoStrength 3

# Set SSAO scale
# 1 = high quality (default)
# 2 = lower quality, lower impact on performance
ssaoScale 1

# Set SSAO Blur type
# gaussian = soft, cheap
# sharp = depth-dependent, more expensive
ssaoBlurType sharp

和 postProcessing 一樣,似乎要先複製設定檔至指定的遊戲資料夾。

【範例】
  
 GeDoSaTo\assets\dx9\martinsh_ssao.fx

 複製到 GeDoSaTo\config\遊戲主程式名稱(的資料夾內)


雖然 AO 很強大,但很可惜的是,大部分遊戲是不支援的,只有少數幾個作者有特別去玩的。
並且在 0.21 版之後,也有複數的 AOHash 可以玩了。

送禮物贊助創作者 !
0
留言

創作回應

xYegax
你好可不可以像pd2 mod这样降低画质 减少笔电过热
2015-01-20 01:16:45
TermSelf
理論上一部分是可行的,強制使用低解析度的貼圖再升回去
但是UI大小一直都是問題,必須要先解決這部分
如果解決了UI的問題,確實能非常有效的降低畫質
2015-01-20 01:30:22

更多創作