如何使用 VR Performance Kit 提升 VRChat 的性能

這邊文章跟我其他文章不同,這次的主題跟工程無關。這是寫給我的朋友的,示範如何使用特定工具。

VRChat的性能有時非常的糟糕。常常地圖不支援 LoD,是路人開著 > 100萬三角形的avatar等等... 我的自認不算太差電腦,Ryzen 3700X + GTX 970 也只能在我的 home world 跑到36 FPS(Quest 2,中間用AirLink + Wifi 6跟主機連線。地圖:Rainy Attic + 鏡子)。

國外的工程師 fholger 也遇到類似的問題,於是開發了VR Performance Kit。在我的主機上由原先的36FPS:

36 FPS on VRChat with native resolution

提升到約略維持在72左右。相片中只有54是因為用了遊戲內的相機拍照,導致GPU必須多負荷相機的計算。

High FPS even with photo camera on in VRChat!

如果你有安裝過OpenVR FSR[1] 則需要將他移除。 VR Performance Kit 是同一作者的續作,有更多的功能且會繼續更新。

VR Performance Kit

安裝後 VR Performance Kit[2] 會降低 VRChat 本身選染的解析度。然後利用 AMD 的 FSR 圖像放大演算法硬把畫面修補回原來的大小。遊戲由於顯示卡需要繪製的像素變少而變快。當然雖然 FSR 會盡力修補,但依然會造成畫質上的損失。但不嚴重,甚至在簡單的場景看不出來。

Nvidia顯示卡的使用者也不用擔心, AMD FSR 支援 Nvidia 顯示卡

安裝

安裝流程相當簡單,跟安裝 Minecraft mod 很像:

  • 從 VR Performance Kit 的下載頁面[4]下載最新版本
  • 解壓縮並把檔案放到 C:\Program Files (x86)\Steam\steamapps\common\VRChat
  • 修改 vrperfkit.yaml 中的設定
  • 玩遊戲!

首先到 VR Performance Kit 的下載頁面取得最新的版本:

Image: Download VR Performance Kit

然後把下載回來的壓縮檔中 dxgi.dllvrperfkit.yaml 複製到 C:\Program Files (x86)\Steam\steamapps\common\VRChat

Image: Install VR Performance Kit for VRChat

再來,用記事本打開 vrperfkit.yaml (或其他編輯器,我用的是VSCode) ,修改 renderScale. 我一般將它設定成 renderScale: 0.65。GPU比我好的話可以提高這個數字。這個選項會同時改變遊戲的X跟Y解析度。將renderScale設定成0.5的話會讓遊戲只繪製25%的像素

Image: Edit renderScale in vrperfkit.yaml

就這樣安裝完成了,可以打開遊戲享受了!

不幸的我沒辦法分享不同 renderScale 下畫質的差異。VRChat 在 VR 模式下主視窗的畫面因為 VR 頭盔跟螢幕視野不同導致主視窗的畫面相當的模糊。但遊戲內的相機又不會因為 VR Performance Kit 改變解析度,故沒有畫質差異。但我覺得犧牲一點畫質跟清晰度換 FPS 是值得的。

安全/合法性?

安全方面。VRChat 官方不支援 VRPK。但VRPK是一個由國外工程師發起的開放原始碼[5]的專案。任何人都可以去閱讀並理解甚至貢獻程式碼[6]。由於不斷有第三方工程師(包括我)在檢查跟閱讀他的程式,VRPK有問題的話工程師們會最先發現問題,然後警告社群。

合法性方面 (我是個工程師,不是律師。我們看事情的角度很不一樣) 這不違反 VRChat 禁止散布修改後的 VRChat SDK 跟 VRChat Client 的規定。 VR Performance Kit 並不修改 VRChat 的任何內容。他只是在選染流程後端載入了 AMD FSR。況且 VRChat 的性能是官方該解決的問題。VRPK 只是工程師們自己出力解決問題的手段而已。像是 Minecraft 的 Optifine 模組因為 Minecraft 性能低落而生一樣

我可以詳細的解釋為何在工程上這不算是修改,但技術細節上的事情大概一天也講不完...

Author's profile
Martin Chang
Systems software, HPC, GPGPU and AI. I mostly write stupid C++ code. Sometimes does AI research. Chronic VRChat addict
  • marty1885 \at protonmail.com
  • GPG: 76D1 193D 93E9 6444
  • Jami: a72b62ac04a958ca57739247aa1ed4fe0d11d2df