PCVR Central

OpenXR 對比 OpenVR 與 SteamVR:PCVR 玩家須知

以淺白語言了解 OpenXR、OpenVR、SteamVR 與 VR 執行環境,包括 UEVR、Quest 和 PC VR 模組該選用哪個選項。

PCVR 基礎3 分鐘閱讀最後更新於

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 的最佳選擇是視遊戲和頭戴裝置而定。

請依此優先順序:

  1. PCVR Central 的遊戲/設定檔建議。
  2. UEVR 設定檔作者的指示。
  3. 你的頭戴裝置/串流應用程式支援的 runtime。
  4. 只有在兩條路徑都受支援時,才進行個人基準測試。

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 的方式。

相關指南

來源與延伸閱讀