Freigeben über


OpenXR

OpenXR-Logo

OpenXR ist ein offener lizenzfreier API-Standard von Khronos und bietet Engines nativen Zugriff auf eine Reihe von Geräten über das Mixed Reality-Spektrum hinweg.

Sie können openXR auf einem immersiven VR-Headset von HoloLens 2 oder Windows Mixed Reality auf dem Desktop entwickeln. Wenn Sie keinen Zugriff auf ein Headset haben, können Sie stattdessen den HoloLens 2-Emulator oder den Windows Mixed Reality Simulator verwenden.

Warum OpenXR?

Mit OpenXR können Sie Engines erstellen, die sowohl holografische Geräte als auch HoloLens 2 und immersive VR-Geräte wie Windows Mixed Reality-Headsets für Desktop-PCs ansprechen. Mit OpenXR können Sie Code schreiben, sobald dies dann auf einer Vielzahl von Hardwareplattformen portierbar ist.

Die OpenXR-API verwendet ein Ladeprogramm, um Ihre Anwendung direkt mit der systemeigenen Plattformunterstützung Ihres Headsets zu verbinden. Endbenutzer erhalten maximale Leistung und minimale Latenz, unabhängig davon, ob sie ein Windows Mixed Reality- oder ein anderes Headset verwenden.

Was ist OpenXR?

Die OpenXR-API bietet die wichtigsten Funktionen für Posenvorhersage, Frameanzeige und räumliche Eingabefunktionen, die Sie zum Erstellen eines Moduls benötigen, das sowohl holografische als auch immersive Geräte ansprechen kann.

Informationen zur OpenXR-API finden Sie in der OpenXR 1.0-Spezifikation, API-Referenz und kurzübersicht. Weitere Informationen finden Sie auf der Seite Khronos OpenXR.

Um den vollständigen Featuresatz von HoloLens 2 zu erreichen, verwenden Sie auch anbieterübergreifende und herstellerspezifische OpenXR-Erweiterungen. Diese ermöglichen Features wie artikulierte Handverfolgung, Eye Tracking, räumliche Zuordnung und räumliche Verankerungen. Weitere Informationen finden Sie im Abschnitt "Roadmap" zu den Erweiterungen, die später in diesem Jahr verfügbar sind.

OpenXR ist nicht selbst ein Mixed Reality-Modul. Stattdessen ermöglicht OpenXR Engines wie Unity und Unreal, tragbaren Code einmal zu schreiben, der dann auf die systemeigenen Plattformfeatures des holografischen oder immersiven Geräts des Benutzers zugreifen kann, unabhängig davon, welcher Anbieter diese Plattform erstellt hat.

Roadmap

Die OpenXR-Spezifikation definiert einen Erweiterungsmechanismus, mit dem Laufzeitimplementierer andere Funktionen verfügbar machen können, die über die kernfeatures hinausgehen, die in der OpenXR 1.0-Basisspezifikation definiert sind.

Es gibt drei Arten von OpenXR-Erweiterungen:

  • Anbietererweiterungen (z. B XR_MSFT_.... ): Ermöglicht herstellerspezifische Innovationen in Hardware- oder Softwarefeatures. Jeder Laufzeitanbieter kann jederzeit eine Anbietererweiterung einführen und versenden.
  • Experimentelle Anbietererweiterungen (z. B XR_MSFTX_....): Experimentelle Anbietererweiterungen, die in der Vorschau angezeigt werden, um Feedback zu sammeln. XR_MSFTX_... Erweiterungen sind nur für Entwicklergeräte vorgesehen und werden entfernt, wenn die echte Erweiterung ausgeliefert wird. Um mit ihnen zu experimentieren, können Sie Vorschauerweiterungen auf Ihrem Entwicklergerät aktivieren.
  • Anbieterübergreifende EXT Erweiterungen: Anbieterübergreifende Erweiterungen, die von mehreren Unternehmen definiert und implementiert werden. Gruppen interessierter Unternehmen können EXT-Erweiterungen jederzeit einführen.
  • Offizielle Erweiterungen: Offizielle KHR Khronos-Erweiterungen wurden als Teil einer Kernspezifikationsversion ratifiziert. KHR-Erweiterungen werden von derselben Lizenz wie die Kernspezifikation selbst abgedeckt.

Die Windows Mixed Reality OpenXR-Runtime unterstützt eine Reihe von MSFT Und EXT Erweiterungen, die den vollständigen Satz von HoloLens 2-Features für OpenXR-Anwendungen bereitstellen:

Funktionsbereich Verfügbarkeit der Erweiterung
Systeme + Sitzungen OpenXR 1.0-Kernspezifikation:
XrInstance, XrSystemIdXrSession
Referenzplätze (Ansicht, Lokal, Stufe) OpenXR 1.0-Kernspezifikation:
XrSpace
Ansichtskonfigurationen (Mono, Stereo) OpenXR 1.0-Kernspezifikation:
XrView...
Swapchains-Frameanzeigedauer + OpenXR 1.0-Kernspezifikation:
XrSwapchain... + xrWaitFrame
Kompositionsebenen
(Projektion, Quad)
OpenXR 1.0-Kernspezifikation:
XrCompositionLayer... + xrEndFrame
Eingabe und Haptik OpenXR 1.0-Kernspezifikation:
XrAction...
Direct3D 11/12-Integration Offizielle KHR Erweiterungen veröffentlicht:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Ungebundenes Referenzbereich
(weltweit skaliert Erfahrungen)
MSFT Erweiterung veröffentlicht:
XR_MSFT_unbounded_reference_space
Raumanker

MSFT Erweiterung veröffentlicht:
XR_MSFT_spatial_anchor

MSFT erweiterung veröffentlicht in Runtime 108: (Nur HoloLens 2)
XR_MSFT_spatial_anchor_persistence

Handinteraktion
(Griff-/Ziel-Pose, Luftzapfen, Greifen)

Nur HoloLens 2

MSFT Erweiterung veröffentlicht:
XR_MSFT_hand_interaction
Handartikulation + Handgitter

Nur HoloLens 2

EXT Erweiterung veröffentlicht:
XR_EXT_hand_tracking

MSFT Erweiterung veröffentlicht:
XR_MSFT_hand_tracking_mesh

Anvisieren mit den Augen

Nur HoloLens 2

EXT Erweiterung veröffentlicht:
XR_EXT_eye_gaze_interaction
Mixed Reality Capture
(Drittes Rendern von PV-Kamera)

Nur HoloLens 2

MSFT Veröffentlichte Erweiterungen:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interaktionsprofile für Bewegungscontroller
(Samsung Odyssey und HP Reverb G2)
MSFT In Runtime 103 veröffentlichte Erweiterungen:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Rendermodelle des Bewegungscontrollers MSFT erweiterung veröffentlicht in Runtime 104:
XR_MSFT_controller_model
Szenenverständnis (Ebenen, Gitter)

Nur HoloLens 2

MSFT In Laufzeit 106 veröffentlichte Erweiterung:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Szenenmarkierung (QR-Codes)

Nur HoloLens 2

MSFT In Laufzeit 113 veröffentlichte Erweiterung:
XR_MSFT_scene_marker
Neuprojektionsmodi für Kompositionsebenen
(automatisch planar oder ausrichtungsgeschützte Neuprojektion)
MSFT In Laufzeit 106 veröffentlichte Erweiterung:
XR_MSFT_composition_layer_reprojection
Interoperabilität mit anderen Mixed Reality-SDKs
(z. B .QR)
MSFT Erweiterung veröffentlicht:
XR_MSFT_spatial_graph_bridge
Interoperabilität mit der UWP CoreWindow-API
(z. B. für Tastatur/Maus)
MSFT erweiterung veröffentlicht in Runtime 103:
XR_MSFT_holographic_window_attachment
Interoperabilität mit älteren Mixed Reality-WinRT-APIs
(z. B SpatialAnchorTransferManager. ))

MSFT In Laufzeit 105 veröffentlichte Erweiterung:
XR_MSFT_perception_anchor_interop

Weitere anbieterübergreifende Erweiterungen

Offizielle KHR Erweiterungen veröffentlicht:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT Veröffentlichte Erweiterungen:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Während einige dieser Erweiterungen als anbieterspezifische MSFT Erweiterungen beginnen können, arbeiten Microsoft und andere OpenXR-Laufzeitanbieter zusammen, um anbieterübergreifende EXT oder KHR Erweiterungen für viele dieser Featurebereiche zu entwerfen. Anbieterübergreifende Erweiterungen machen den Code, den Sie für diese Features für alle Laufzeitanbieter portierbar machen, wie bei der Kernspezifikation.

Wo können Sie OpenXR verwenden?

Screenshot von Minecraft, das von einem Benutzer mit einem Mixed Reality-Headset gespielt wird

Minecrafts neues RenderDragon-Modul hat seine Desktop-VR-Unterstützung mit OpenXR erstellt!

Microsoft arbeitet mit Unity und Epic Games zusammen, um sicherzustellen, dass die Zukunft von Mixed Reality offen ist, nicht nur für HoloLens 2, sondern über die gesamte Breite des PC VR, einschließlich des neuen Reverb G2-Headsets von HP. OpenXR unterstützt den anbieterübergreifenden VR-Support für den heutigen Hauptversand von Titeln wie Minecraft und Microsoft Flight Simulator! Weitere Informationen zur Entwicklung für HoloLens (1. Generation) finden Sie in den Versionshinweisen.

Um zu erfahren, wie Sie mit OpenXR in Unity, Unreal Engine oder Ihrem eigenen Modul beginnen können, lesen Sie weiter!

OpenXR in Unity

Die aktuelle empfohlene Unity-Konfiguration für HoloLens 2 und die Windows Mixed Reality-Entwicklung ist Unity 2020.3 LTS mit dem Mixed Reality OpenXR-Plug-In. Dieses Plug-In enthält Unterstützung für die OpenXR-Erweiterungen, die die vollständigen Funktionen von HoloLens 2- und Windows Mixed Reality-Headsets unterstützen, einschließlich Hand-/Eye-Tracking, räumliche Verankerungen und HP Reverb G2-Controllern. MRTK-Unity unterstützt OpenXR ab MRTK 2.7. Weitere Informationen zu den ersten Schritten mit Unity 2020 und OpenXR finden Sie unter Auswählen einer Unity-Version und eines XR-Plug-Ins.

Wenn Sie für HoloLens (1. Generation) entwickeln, müssen Sie Unity 2019.4 LTS weiterhin mit dem älteren WinRT-API-Back-End verwenden. Wenn Sie auf den neuen HP Reverb G2-Controller in einer Unity 2019-App abzielen, lesen Sie unsere HP Reverb G2-Eingabedokumente.

Ab Unity 2021.3 LTS ist OpenXR das einzige unterstützte Unity-Back-End für HoloLens 2- und Windows Mixed Reality-Headsets.

OpenXR im Unreal Engine

Unreal Engine 4.23 war die erste hauptversion der Game-Engine, um Vorschauunterstützung für OpenXR 1.0 zu versenden! Jetzt ist in Unreal Engine 4.26 Unterstützung für HoloLens 2, Windows Mixed Reality und andere Desktop-VR-Headsets über die integrierte OpenXR-Unterstützung von Unreal Engine verfügbar. Unreal Engine 4.26 unterstützt auch das OpenXR-Erweiterungs-Plug-In von Microsoft. Dies ermöglicht die Handinteraktion und hp Reverb G2-Controllerunterstützung, die vollständige Feature-Set von HoloLens 2- und Windows Mixed Reality-Headsets zu beleuchten. Unreal Engine 4.26 ist heute auf dem Epic Games Launcher verfügbar, mit MRTK-Unreal 0.12 unterstützende OpenXR-Projekte.

OpenXR für systemeigene Entwicklung

Sie können openXR auf einem immersiven VR-Headset von HoloLens 2 oder Windows Mixed Reality auf dem Desktop entwickeln. Wenn Sie keinen Zugriff auf ein Headset haben, können Sie stattdessen den HoloLens 2-Emulator oder den Windows Mixed Reality Simulator verwenden.

Informationen zum Entwickeln von OpenXR-Anwendungen für HoloLens 2- oder Windows Mixed Reality VR-Headsets finden Sie in den ersten Schritten mit der OpenXR-Entwicklung.

Eine Tour durch alle hauptkomponenten der OpenXR-API sowie Beispiele für die realen Anwendungen, die OpenXR heute verwenden, finden Sie in diesem 60-minütigen exemplarischen Vorgehensweisenvideo:

Siehe auch