OpenXR

OpenXR 是 來自 Khronos 的開放式免版稅 API 標準,可讓引擎原生存取 混合實境頻譜中各種裝置。
您可以在 HoloLens 2 上使用 OpenXR 進行開發,或在桌面上 Windows Mixed Reality 沉浸式 VR 頭戴式裝置。 如果您沒有頭戴式裝置的存取權,可以改用 HoloLens 2 模擬器或 Windows Mixed Reality 模擬器。
為何要使用 OpenXR?
使用 OpenXR,您可以建置以全像攝影裝置為目標的引擎,例如 HoloLens 2 和沉浸式 VR 裝置,例如 Windows Mixed Reality 桌面電腦的頭戴式裝置。 OpenXR 可讓您撰寫程式代碼一次,然後便可在各種硬體平臺上移植。
OpenXR API 會使用載入器,將您的應用程式直接連線到頭戴式裝置的原生平台支援。 無論使用者使用 Windows Mixed Reality 或任何其他頭戴式裝置,用戶都會獲得最大效能和最小延遲。
什麼是 OpenXR?
OpenXR API 提供核心姿勢預測、畫面時間和空間輸入功能,您需要建置可同時以全像攝影和沉浸式裝置為目標的引擎。
若要瞭解 OpenXR API,請參閱 OpenXR 1.0 規格、 API 參考和 快速參考指南。 如需詳細資訊,請參閱 Khronos OpenXR 頁面。
若要以 HoloLens 2 的完整功能集為目標,您也可以使用跨廠商和廠商特定的 OpenXR 擴充功能。 這些功能可啟用如手部追蹤、眼球追蹤、空間對應和空間錨點等功能。 如需詳細資訊,請參閱今年稍後即將推出的擴充功能藍圖一 節 。
OpenXR 本身不是混合實境引擎。 相反地,OpenXR 可讓 Unity 和 Unreal 等引擎撰寫可攜式程式代碼一次,然後存取使用者全像攝影或沉浸式裝置的原生平臺功能,無論廠商建置該平台為何。
藍圖
OpenXR 規格定義擴充機制,可讓運行時間實作者公開基底 OpenXR 1.0 規格中定義的核心功能以外的其他功能。
OpenXR 擴充功能有三種:
-
廠商延伸模組 (例如,
XR_MSFT_...
) : 啟用硬體或軟體功能的個別廠商創新。 任何運行時間廠商都可以隨時引進並寄送廠商擴充功能。 -
實驗性廠商延伸模組 (例如,
XR_MSFTX_...
) : 正在預覽的實驗性廠商擴充功能,以收集意見反應。XR_MSFTX_...
擴充功能僅適用於開發人員裝置,且會在實際擴充功能隨附時移除。 若要進行實驗,您可以 在開發人員裝置上啟用預覽擴充功能。 -
跨廠商
EXT
延伸模組: 多個公司定義和實作的跨廠商延伸模組。 感興趣的公司群組可以隨時引進 EXT 擴充功能。 -
官方
KHR
擴充功能: 官方 Khronos 擴充功能作為核心規格版本的一部分。 KHR 擴充功能所涵蓋的授權與核心規格本身相同。
Windows Mixed Reality OpenXR 執行時間支援一組 MSFT
和 EXT
延伸模組,可將一組完整的 HoloLens 2 功能帶入 OpenXR 應用程式:
雖然其中有些延伸模組可能會以廠商特定 MSFT
的擴充功能啟動,但Microsoft和其他 OpenXR 運行時間廠商會一起合作,為其中許多功能區域設計跨廠商 EXT
或 KHR
擴充功能。 跨廠商擴充功能可讓您為這些功能撰寫的程式代碼可在運行時間廠商之間移植,如同核心規格一樣。
您可以在哪裡使用 OpenXR?
Minecraft 的新 RenderDragon 引擎已使用 OpenXR 建置其桌面 VR 支援!
Microsoft一直使用 Unity 和 Epic Games,以確保混合實境的未來是開放的,不只是針對 HoloLens 2,而是跨計算機 VR 的完整範圍,包括 HP 的新 Reverb G2 頭戴式裝置。 OpenXR 支援目前主要標題的跨廠商 VR 支援,例如 Minecraft 和 Microsoft Flight Simulator! 如需開發 HoloLens (第 1 代) 的詳細資訊,請參閱 版本資訊。
若要瞭解如何在 Unity、Unreal Engine 或您自己的引擎中開始使用 OpenXR,請繼續閱讀!
Unity 中的 OpenXR
Microsoft目前針對 HoloLens 2 和 Windows Mixed Reality 開發的建議 Unity 組態是使用 Mixed Reality OpenXR 外掛程式的 Unity 2020.3 LTS。 此外掛程式包含 OpenXR 擴充功能的支援,可提升 HoloLens 2 和 Windows Mixed Reality 頭戴裝置的完整功能,包括手部/眼球追蹤、空間錨點和 HP Reverb G2 控制器。 MRTK-Unity 從 MRTK 2.7 開始支援 OpenXR。 如需開始使用 Unity 2020 和 OpenXR 的詳細資訊,請參閱 選擇 Unity 版本和 XR 外掛程式。
如果您要針對 HoloLens (第 1 代) 進行開發,您需要繼續搭配舊版 WinRT API 後端使用 Unity 2019.4 LTS 。 如果您的目標是 Unity 2019 應用程式中新的 HP Reverb G2 控制器,請參閱 我們的 HP Reverb G2 輸入檔。
從 Unity 2021.3 LTS 開始,OpenXR 是唯一支援以 HoloLens 2 和 Windows Mixed Reality 頭戴式裝置為目標的 Unity 後端。
Unreal Engine 中的 OpenXR
Unreal Engine 4.23 是第一個主要遊戲引擎版本,可提供 OpenXR 1.0 的預覽支援! 現在在 Unreal Engine 4.26 中,HoloLens 2、Windows Mixed Reality 和其他桌面 VR 頭戴裝置的支援可透過 Unreal Engine 的內建 OpenXR 支援來取得。 Unreal Engine 4.26 也支援Microsoft的 OpenXR 延伸模組外掛程式。 這可啟用手部互動和 HP Reverb G2 控制器支援,並啟用一組完整的 HoloLens 2 功能,並 Windows Mixed Reality 頭戴式裝置。 Unreal Engine 4.26 現已在 Epic Games Launcher 上提供,MRTK-Unreal 0.12 支援 OpenXR 專案。
用於原生開發的 OpenXR
您可以在 HoloLens 2 上使用 OpenXR 進行開發,或在桌面上 Windows Mixed Reality 沉浸式 VR 頭戴式裝置。 如果您沒有頭戴式裝置的存取權,可以改用 HoloLens 2 模擬器或 Windows Mixed Reality 模擬器。
若要開始開發適用於 HoloLens 2 或 Windows Mixed Reality VR 頭戴裝置的 OpenXR 應用程式,請參閱如何開始使用 OpenXR 開發。
如需 OpenXR API 所有主要元件的導覽,以及現今使用 OpenXR 之真實世界應用程式的範例,請參閱這段 60 分鐘的逐步解說影片: