OpenXR

OpenXR logo

OpenXR är en öppen, fri API-standard från Khronossom ger motorer inbyggd åtkomst till en mängd olika enheter i mixad verklighet.

Du kan utveckla med OpenXR på en HoloLens 2 eller Windows Mixed Reality integrerande VR-headset på skrivbordet. Om du inte har åtkomst till ett headset kan du använda HoloLens 2 Emulator eller Windows Mixed Reality simulatorn.

Varför OpenXR?

Med OpenXR kan du skapa motorer som riktar sig till både holografiska enheter som HoloLens 2 och integrerande VR-enheter som Windows Mixed Reality headset för stationära datorer. Med OpenXR kan du skriva kod när den sedan är portabel över en mängd olika maskinvaruplattformar.

OpenXR-API:et använder en inläsare för att ansluta ditt program direkt till ditt headsets inbyggda plattformsstöd. Slutanvändarna får maximal prestanda och minsta svarstid, oavsett om de använder en Windows Mixed Reality eller något annat headset.

Vad är OpenXR?

OpenXR-API:et tillhandahåller grundläggande funktioner för förutsägelse av attityd, ramtidsinställning och spatial indata som du behöver för att skapa en motor som kan rikta in sig på både holografiska och integrerande enheter.

Mer information om OpenXR API finns i OpenXR 1.0-specifikationen, API-referensoch snabbreferensguide. Mer information finns på OpenXR-sidan för Khronos.

För att rikta in dig på den fullständiga funktionsuppsättningen för HoloLens 2 använder du även leverantörsspecifika OpenXR-tillägg som möjliggör ytterligare funktioner utöver OpenXR 1.0-kärnan, till exempel ledad handspårning, ögonspårning, rumslig mappning och rumsliga fästpunkter. Mer information finns i översiktsavsnittet nedan om tillägg som kommer senare i år.

OpenXR är inte själv en motor för mixad verklighet. I stället gör OpenXR att motorer som Unity och Unreal kan skriva portabel kod när de sedan kan komma åt de inbyggda plattformsfunktionerna på användarens holografiska eller integrerande enhet, oavsett vilken leverantör som skapade plattformen.

Översikt

OpenXR-specifikationen definierar en tilläggsmekanism som gör det möjligt för körnings-implementerare att exponera ytterligare funktioner utöver de kärnfunktioner som definieras i den grundläggande OpenXR 1.0-specifikationen.

Det finns tre typer av OpenXR-tillägg:

  • Leverantörstillägg (till exempel MSFT ): Möjliggör innovation per leverantör i maskin- eller programvarufunktioner. Alla körningsleverantörer kan när som helst introducera och leverera ett leverantörstillägg.
    • Experimentella leverantörstillägg (till exempel MSFT_preview ): Experimentella leverantörstillägg som förhandsgranskas för att samla in feedback. MSFT_preview tillägg är endast för utvecklarenheter och tas bort när det verkliga tillägget levereras. Om du vill experimentera med dem kan du aktivera förhandsversionstillägg på din utvecklarenhet.
  • Tillägg mellan EXT leverantörer: Tillägg mellan leverantörer som flera företag definierar och implementerar. Grupper av intresserade företag kan införa EXT-tillägg när som helst.
  • Officiella KHR tillägg: Officiella Khronos-tillägg som ingår i en core spec-version. KHR-tillägg omfattas av samma licens som själva kärnspecifikationen.

Den Windows Mixed Reality OpenXR Runtime har stöd för en uppsättning och tillägg som ger MSFT EXT openXR-program en fullständig uppsättning HoloLens 2-funktioner:

Funktionsområde Tillgänglighet för tillägg
System och sessioner OpenXR 1.0 core spec:
XrInstance, XrSystemId, XrSession
Referensutrymmen (vy, lokal, fas) OpenXR 1.0 core spec:
XrSpace
Visa konfigurationer (mono, stereo) OpenXR 1.0 core spec:
XrView...
Växlingskedjor + ramtidsinställning OpenXR 1.0 core spec:
XrSwapchain... + xrWaitFrame
Sammansättningslager
(projektion, quad)
OpenXR 1.0 core spec:
XrCompositionLayer... + xrEndFrame
Indata och haptics OpenXR 1.0 core spec:
XrAction...
Direct3D 11-integrering Officiellt KHR tillägg har släppts:
XR_KHR_D3D11_enable
Direct3D 12-integrering Officiellt KHR tillägg har släppts:
XR_KHR_D3D12_enable
Obegränsade referensutrymmen
(upplevelser i världsskala)
MSFT utgivet tillägg:
XR_MSFT_unbounded_reference_space
Spatial Anchors

MSFT utgivet tillägg:
XR_MSFT_spatial_anchor

MSFT_preview extension in preview runtime 107:
XR_MSFT_spatial_anchor_persistence_preview


Handinteraktion (handtag/målhållning, tryck i luften, förstå)

HoloLens 2

MSFT utgivet tillägg:
XR_MSFT_hand_interaction
Hand artikulation + handnät

HoloLens 2

EXT utgivet tillägg:
XR_EXT_hand_tracking

MSFT utgivet tillägg:
XR_MSFT_hand_tracking_mesh
Ögonögon

HoloLens 2

EXT utgivet tillägg:
XR_EXT_eye_gaze_interaction
Inspelning av mixad verklighet
(tredje renderingen från PV-kameran)

HoloLens 2

MSFT utgivna tillägg:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interop med andra Mixed Reality-SDK:er
(till exempel QR)

MSFT utgivet tillägg:
XR_MSFT_spatial_graph_bridge

MSFT tillägget släpptes i runtime 105:
XR_MSFT_perception_anchor_interop

Interop med UWP CoreWindow API
(till exempel för tangentbord/mus)
MSFT utgivet i runtime 103:
XR_MSFT_holographic_window_attachment
Interaktionsprofiler för rörelsekontroller
(Samsung Samsung Samsung och HP Reverb G2)
MSFT utgivna tillägg i runtime 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modeller för rörelsestyrenhetsr renderas MSFT utgivet i runtime 104:
XR_MSFT_controller_model
Scenförståelse (plan, nät)

HoloLens 2

MSFT tillägget släpptes i runtime 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization

Reprojection-lägen för
sammansättningslager (autoplanär eller orienteringsreprojection)
MSFT tillägget släpptes i runtime 106:
XR_MSFT_composition_layer_reprojection
Andra tillägg mellan leverantörer

Officiella KHR tillägg har släppts:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT utgivna tillägg:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Vissa av dessa tillägg kan starta som leverantörsspecifika tillägg, men Microsoft och andra OpenXR-körningsleverantörer samarbetar för att utforma korsleverantörer eller tillägg för många av MSFT EXT dessa KHR funktionsområden. Tillägg mellan leverantörer gör koden som du skriver för dessa funktioner portabel över körningsleverantörer, precis som med kärnspecifikationen.

Var kan du använda OpenXR?

Skärmbild av Minecraft spelas upp av en användare som bär ett headset för mixad verklighet

Minecraft nya RenderDragon-motorn har skapat sitt STÖD för skrivbords-VR med Hjälp av OpenXR!

Microsoft har arbetat med Unity och Epic Games för att säkerställa att framtiden för mixad verklighet är öppen, inte bara för HoloLens 2, utan även i hela bredden av PC VR, inklusive HP:s nya Reverb G2-headset. OpenXR driver VR-stöd mellan leverantörer för större titlar idag, till exempel Minecraft och Microsoft Flight Simulator! Mer information om hur du utvecklar för HoloLens (första gen) finns i viktig information.

Om du vill lära dig hur du kommer igång med OpenXR i Unity, Unreal Engine eller din egen motor kan du läsa vidare!

OpenXR i Unity

Microsofts nuvarande rekommenderade Unity-konfiguration för HoloLens 2 och Windows Mixed Reality utveckling är Unity 2020.3 LTS med det senaste OpenXR Mixed Reality-plugin-programmet. Det här plugin-programmet har stöd för OpenXR-tillägg som ger tillgång till alla funktioner i HoloLens 2- och Windows Mixed Reality-headset,inklusive hand-/ögonspårning, spatiala fästpunkter och HP Reverb G2-styrenheter. MRTK-Unity har stöd för OpenXR från och med MRTK 2.7. Mer information om hur du kommer igång med Unity 2020 och OpenXR finns i Choosing a Unity version and XR plugin (Välja en Unity-version och ett XR-plugin-program).

Om du utvecklar för HoloLens (första generationen) måste du fortsätta att använda Unity 2019.4 LTS med den äldre WinRT API-backend. Om du riktar in dig på den nya HP Reverb G2-styrenheten i en Unity 2019-app kan du gå till indatadokumenten för HP Reverb G2.

Från och med Unity 2021.2 är OpenXR den enda Unity-backend som stöds för HoloLens 2 och Windows Mixed Reality headset.

OpenXR i Unreal Engine

Unreal Engine 4.23 var den första större versionen av spelmotorn som levereras med förhandsversionsstöd för OpenXR 1.0! I Unreal Engine 4.26 finns nu stöd för HoloLens 2, Windows Mixed Reality och andra VR-headset för stationära datorer tillgängliga via Unreal Engines inbyggda OpenXR-stöd. Unreal Engine 4.26 stöder även Microsofts Plugin-program för OpenXR-tillägg,vilket möjliggör handinteraktion och stöd för HP Reverb G2-styrenhet, som belysningar upp hela uppsättningen med HoloLens 2- och Windows Mixed Reality-headset. Unreal Engine 4.26 är idag tillgängligt på Epic Games Launcher,med MRTK-Unreal 0.12 som stöder OpenXR-projekt.

OpenXR för intern utveckling

Du kan utveckla med OpenXR på en HoloLens 2 eller Windows Mixed Reality integrerande VR-headset på skrivbordet. Om du inte har åtkomst till ett headset kan du använda HoloLens 2 Emulator eller Windows Mixed Reality simulatorn.

Om du vill börja utveckla OpenXR-program för HoloLens 2 eller Windows Mixed Reality VR-headset kan du se hur du kommer igång med OpenXR-utveckling.

En genomgång av alla viktiga komponenter i OpenXR-API:et, tillsammans med exempel på verkliga program som använder OpenXR idag, finns i den här 60-minutersvideon:

Se även