PCVR 設定指南隨意使用 OpenXR、OpenVR、SteamVR 和 runtime,好像每個人都已經知道它們的意思。它們彼此相關,但不能互換使用。
簡短說明:
- OpenXR 是適用於 XR 應用程式的現代跨平台標準/API。
- OpenVR 是 Valve 的舊版 VR API,通常與 SteamVR 相關聯。
- SteamVR 是 Valve 的 VR 平台/runtime 和軟體環境。
- OpenXR runtime 是將 OpenXR 應用程式連接到你實際頭戴裝置堆疊的軟體實作。
對於 VR mods,正確的選擇通常是 mod 或遊戲特定設定檔所建議的。
什麼是 OpenXR?
OpenXR 是 Khronos Group 的開放標準,旨在讓 XR 應用程式針對共同的 API 開發,而不是為每個頭戴裝置生態系統撰寫單獨的支援。
遊戲或 mod 可以使用 OpenXR,而作用中的 runtime 則負責與頭戴裝置通訊。
該 runtime 可能來自:
- 頭戴裝置供應商。
- SteamVR。
- PCVR 串流解決方案。
- 另一個相容的平台實作。
這就是為什麼只說「我使用 OpenXR」無法完整描述 PCVR 設定的原因。作用中的 OpenXR runtime 也很重要。
什麼是 OpenVR?
OpenVR 是 Valve 的舊版 VR 軟體開發 API。在一般的 PC 遊戲討論中,使用 OpenVR 通常表示應用程式是透過 SteamVR 運作。
許多舊的原生 VR 遊戲和 mods 都是以 OpenVR 為基礎建置,而且它仍然具有相關性,因為相容性可能非常好。
UEVR 目前同時支援 OpenVR 和 OpenXR。
什麼是 SteamVR?
SteamVR 是 Valve 的 PC VR 平台。它負責受支援硬體的頭戴裝置追蹤、控制器、VR 應用程式啟動、覆蓋層、設定和 runtime 功能。
SteamVR 可以透過多種方式參與:
- OpenVR 應用程式可以透過 SteamVR 執行。
- SteamVR 可以作為 OpenXR runtime。
- Steam Link 可以將 SteamVR 無線串流到受支援的頭戴裝置。
因此,OpenXR vs SteamVR 不一定是真正的二選一比較。OpenXR 應用程式有時可以透過 SteamVR 作為作用中的 OpenXR runtime 來執行。
什麼是 OpenXR runtime?
把 OpenXR 想成一種共同語言,而 runtime 是將該語言連接到你頭戴裝置系統的翻譯員。
通常一次只會有一個 runtime 作為系統的預設 OpenXR runtime 處於作用中狀態。
如果作用中的 runtime 錯誤,OpenXR 遊戲可能:
- 在錯誤的 VR 軟體中啟動。
- 無法偵測到頭戴裝置。
- 只在顯示器上開啟。
- 出現效能或追蹤問題。
UEVR 中的 OpenXR vs OpenVR
UEVR 目前的文件說明:
- OpenVR 通常具有強大的相容性。
- 當 OpenXR 與頭戴裝置的原生 OpenXR runtime 搭配良好時,可以提供更高的效能。
- OpenVR 需要 SteamVR。
- OpenXR 需要有效的 OpenXR runtime,如果 SteamVR 被設定為該 runtime,也可以透過 SteamVR 執行。
這表示 UEVR 的最佳選擇是視遊戲和頭戴裝置而定。
請依此優先順序:
- PCVR Central 的遊戲/設定檔建議。
- UEVR 設定檔作者的指示。
- 你的頭戴裝置/串流應用程式支援的 runtime。
- 只有在兩條路徑都受支援時,才進行個人基準測試。
Quest:Meta runtime、SteamVR、Steam Link 和 Virtual Desktop
Quest PCVR 可以透過多種方式連接,因此兩位 Quest 使用者可能都說「我使用 OpenXR」,但實際上使用不同的 runtime 路徑。
這就是為什麼疑難排解應記錄整個鏈路,例如:
Quest 3 → Virtual Desktop → OpenXR → UEVR → Game
或
Quest 3 → Steam Link → SteamVR → OpenVR → UEVR → Game
完整的鏈路比只說「UEVR 崩潰」更有用。
OpenXR 是否自動表現得更好?
不是。
OpenXR 可以在某些設定中消除不必要的相容性層,但效能取決於特定的 runtime、頭戴裝置、遊戲、mod、渲染方法和驅動程式堆疊。
如果經過測試的設定檔表示需要 OpenVR 才能正確渲染,那麼如果 OpenXR 破壞了遊戲,理論上的效能優勢就毫無意義。
SteamVR 是否總是增加大量負擔?
不一定。Runtime 負擔確實存在,但像「SteamVR 會損失 20% FPS」這樣的籠統說法並非對每台頭戴裝置和遊戲都可靠。
在同等設定下測量你自己的 CPU/GPU 幀時間。
OpenXR Toolkit 發生了什麼事?
OpenXR Toolkit 與 OpenXR 本身是分開的。
第三方 OpenXR Toolkit 專案已於 2024 年停止開發。其開發者表示沒有新的開發或技術支援,並建議不要安裝/使用它,因為它已知會導致許多較新遊戲出現問題。
不要將這與 OpenXR 停產混淆。OpenXR 仍然是當前標準。
這種區別很重要,因為舊的 VR 最佳化指南有時會推薦 OpenXR Toolkit,好像它仍然是通用的必備品。
如何為 VR mod 選擇 runtime
如果 mod 僅支援 OpenXR
為你的頭戴裝置/串流設定使用正確的 OpenXR runtime。
如果 mod 僅支援 OpenVR
依需求安裝並使用 SteamVR。
如果 mod 同時支援兩者
先使用設定檔偏好的選項。只有在擁有穩定的基準之後,才對替代方案進行基準測試。
如果 mod 沒有說明
在猜測之前,先查看遊戲的 PCVR Central 清單和原始專案文件。
疑難排解 runtime 問題
錯誤或損壞的 runtime 可能出現的症狀包括:
- 未偵測到頭戴裝置。
- 遊戲只在桌面啟動。
- 意外開啟兩個 VR 平台。
- 缺少控制器。
- 頭部旋轉感覺延遲或不正確。
- 注入有效,但沒有出現 VR 影像。
在更改任何內容之前,寫下你的完整堆疊。
疑難排解筆記範例:
- 頭戴裝置:Quest 3
- 連線:Virtual Desktop
- Runtime:OpenXR
- 工具:UEVR
- 遊戲:Example Game
- 設定檔:v1.2
- 渲染 API:DX12
這樣就能讓別人獲得足夠的資訊來提供協助。
常見問題
OpenXR 比 SteamVR 更好嗎?
它們並非直接對等。SteamVR 本身可以提供 OpenXR runtime。最佳路徑取決於應用程式和頭戴裝置。
OpenVR 和 SteamVR 相同嗎?
不同,但 OpenVR 應用程式與透過 SteamVR 執行有強烈關聯。
我需要為 UEVR 安裝 SteamVR 嗎?
UEVR 的 OpenVR 路徑需要 SteamVR。OpenXR 在受支援時可以使用不同的作用中 OpenXR runtime。
OpenXR 需要 OpenXR Toolkit 嗎?
不需要。OpenXR Toolkit 是選用的第三方增強層,且已停止開發。OpenXR 本身並不依賴它。
我可以安裝多個 OpenXR runtime 嗎?
可以,但通常一次只會選擇一個作為作用中的預設 runtime。VR 平台軟體通常會提供一種將自己設定為作用中 runtime 的方式。
相關指南
來源與延伸閱讀
- UEVR 文件:https://docs.uevr.io/
- Khronos OpenXR:https://www.khronos.org/openxr/
- SteamVR:https://store.steampowered.com/app/250820/SteamVR/
- OpenXR Toolkit 版本/停止開發公告:https://github.com/mbucchia/OpenXR-Toolkit/releases