共用方式為


OpenXR

OpenXR 標誌

OpenXR 是 Khronos 的開放式免版稅 API 標準,可提供引擎跨混合實境頻譜的一系列裝置原生存取權。

您可以在 HoloLens 2 或桌面上的 Windows Mixed Reality 沉浸式 VR 頭戴式裝置上使用 OpenXR 進行開發。 如果您沒有頭戴式裝置的存取權,您可以改用 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 運行時間支援一組 MSFTEXT 延伸模組,將完整的 HoloLens 2 功能集合帶入 OpenXR 應用程式:

功能區域 擴充功能可用性
系統 + 工作階段 OpenXR 1.0 核心規格:
XrInstance、 、 XrSystemIdXrSession
參考空間(檢視、本機、階段) OpenXR 1.0 核心規格:
XrSpace
檢視組態(單聲道、立體聲) OpenXR 1.0 核心規格:
XrView...
交換鏈 + 結框架計時 OpenXR 1.0 核心規格:
XrSwapchain... + xrWaitFrame
組合圖層
(投影,四方)
OpenXR 1.0 核心規格:
XrCompositionLayer... + xrEndFrame
輸入和觸覺 OpenXR 1.0 核心規格:
XrAction...
Direct3D 11/12 整合 官方 KHR 延伸模組已發行:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
未系結的參考空間
(世界規模體驗)
MSFT 已發行延伸模組:
XR_MSFT_unbounded_reference_space
空間錨點

MSFT 已發行延伸模組:
XR_MSFT_spatial_anchor

MSFT在執行時間 108 中發行的擴充功能:(僅限 HoloLens 2)
XR_MSFT_spatial_anchor_persistence

手部互動
(抓手/目標姿勢,空中點選,把握)

僅限 HoloLens 2

MSFT 已發行延伸模組:
XR_MSFT_hand_interaction
手部關節 + 手部網格

僅限 HoloLens 2

EXT 已發行延伸模組:
XR_EXT_hand_tracking

MSFT 已發行延伸模組:
XR_MSFT_hand_tracking_mesh

眼睛目光

僅限 HoloLens 2

EXT 已發行延伸模組:
XR_EXT_eye_gaze_interaction
混合實境擷取
(PV 相機的第三次轉譯)

僅限 HoloLens 2

MSFT 已發行延伸模組:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
動作控制器互動配置檔
(三星奧德賽和惠普 Reverb G2)
MSFT 在運行時間 103 中發行的擴充功能:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
動作控制器轉譯模型 MSFT 在運行時間 104 中發行的擴充功能:
XR_MSFT_controller_model
場景理解(平面、網格)

僅限 HoloLens 2

MSFT 在運行時間 106 中發行的擴充功能:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
場景標記 (QR 代碼)

僅限 HoloLens 2

MSFT 在運行時間 113 中發行的擴充功能:
XR_MSFT_scene_marker
組合層重新投影模式
(自動平面或僅限方向重新投影)
MSFT 在運行時間 106 中發行的擴充功能:
XR_MSFT_composition_layer_reprojection
與其他混合實境 SDK 的 Interop
(例如, QR
MSFT 已發行延伸模組:
XR_MSFT_spatial_graph_bridge
使用 UWP CoreWindow API 的 Interop
(例如,鍵盤/滑鼠)
MSFT 在運行時間 103 中發行的擴充功能:
XR_MSFT_holographic_window_attachment
與舊版混合實境 WinRT API 的 Interop
(例如, SpatialAnchorTransferManager))

MSFT 在運行時間 105 中發行的擴充功能:
XR_MSFT_perception_anchor_interop

其他跨廠商延伸模組

官方 KHR 延伸模組已發行:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT 已發行延伸模組:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

雖然其中一些擴充功能可能以廠商特定的 MSFT 擴充功能開始,但Microsoft和其他 OpenXR 運行時間廠商正共同設計這些功能區域的跨廠商 EXTKHR 延伸模組。 跨廠商延伸模組可讓您為跨運行時間廠商移植的這些功能撰寫程式代碼,如同核心規格一樣。

您可以在何處使用 OpenXR?

身穿混合實境頭戴式裝置的使用者正在播放 Minecraft 的螢幕快照

Minecraft 的新 RenderDragon 引擎已使用 OpenXR 建置其桌面 VR 支援!

Microsoft一直在與 Unity 和 Epic Games 合作,以確保混合實境的未來已開放,不僅適用於 HoloLens 2,而且橫跨計算機 VR 的完整廣度,包括 HP 的新 Reverb G2 頭戴式裝置。 OpenXR 為跨廠商 VR 支援提供今天的主要標題,例如 Minecraft 和 Microsoft 飛行模擬器! 如需開發 HoloLens 的詳細資訊(第 1 代),請參閱 版本資訊

若要瞭解如何在 Unity、Unreal Engine 或您自己的引擎中開始使用 OpenXR,請閱讀!

Unity 中的 OpenXR

Microsoft目前針對 HoloLens 2 和 Windows Mixed Reality 開發的 Unity 組態,是 具有混合實境 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 代),您必須繼續使用 Unity 2019.4 LTS 搭配舊版 WinRT API 後端。 如果您在 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 啟動器上使用,MRTK-Unreal 0.12 支援 OpenXR 專案。

適用於原生開發的 OpenXR

您可以在 HoloLens 2 或桌面上的 Windows Mixed Reality 沉浸式 VR 頭戴式裝置上使用 OpenXR 進行開發。 如果您沒有頭戴式裝置的存取權,您可以改用 HoloLens 2 模擬器或 Windows Mixed Reality 模擬器。

若要開始開發 HoloLens 2 或 Windows Mixed Reality VR 頭戴式裝置的 OpenXR 應用程式,請參閱 如何開始使用 OpenXR 開發

如需 OpenXR API 所有主要元件的導覽,以及現今使用 OpenXR 的實際應用程式範例,請參閱這段 60 分鐘的逐步解說影片:

另請參閱