Sdílet prostřednictvím


OpenXR

Logo OpenXR

OpenXR je otevřený standard rozhraní API bez poplatků od Khronosu, který poskytuje modulům nativní přístup k celé řadě zařízení ve spektru hybridní reality.

Můžete vyvíjet pomocí OpenXR na náhlavní soupravě HoloLens 2 nebo Windows Mixed Reality imerzivní VR na ploše. Pokud nemáte přístup k náhlavní soupravě, můžete místo toho použít emulátor HoloLens 2 nebo simulátor Windows Mixed Reality.

Proč OpenXR?

S OpenXR můžete vytvářet moduly, které cílí na obě holografická zařízení, jako je HoloLens 2, a imerzivní vr zařízení, jako jsou náhlavní soupravy Windows Mixed Reality pro stolní počítače. OpenXR umožňuje psát kód, který se pak dá přenášet napříč širokou škálou hardwarových platforem.

Rozhraní OpenXR API používá zavaděč pro přímé připojení aplikace k podpoře nativní platformy náhlavní soupravy. Koncoví uživatelé získají maximální výkon a minimální latenci bez ohledu na to, jestli používají Windows Mixed Reality nebo jakoukoli jinou náhlavní soupravu.

Co je OpenXR?

Rozhraní OpenXR API poskytuje základní predikci, časování snímků a prostorové vstupní funkce, které potřebujete k vytvoření modulu, který může cílit na holografická i i imerzivní zařízení.

Další informace o rozhraní OpenXR API najdete ve specifikaci OpenXR 1.0, referenčních informacích k rozhraní API a stručné referenční příručce. Další informace najdete na stránce Khronos OpenXR.

Chcete-li cílit na úplnou sadu funkcí HoloLens 2, používáte také rozšíření OpenXR specifické pro různé dodavatele a dodavatele. Tyto funkce umožňují například kloubové sledování rukou, sledování očí, prostorové mapování a prostorové kotvy. Další informace najdete v části Roadmapa o rozšířeních přicházejících později v tomto roce.

OpenXR není samotný modul hybridní reality. Místo toho OpenXR umožňuje modulům, jako je Unity a Unreal, psát přenosný kód jednou, který pak může přistupovat k nativním funkcím platformy holografického nebo imerzivního zařízení uživatele, ať už dodavatel vytvořil tuto platformu.

Plán nasazení

Specifikace OpenXR definuje mechanismus rozšíření, který umožňuje implementátorům modulu runtime zpřístupnit další funkce nad rámec základních funkcí definovaných v základní specifikaci OpenXR 1.0.

Existují tři druhy rozšíření OpenXR:

  • Rozšíření dodavatelů (například XR_MSFT_...): Umožňuje inovace jednotlivých dodavatelů v hardwarových nebo softwarových funkcích. Jakýkoli dodavatel modulu runtime může kdykoli zavést a odeslat rozšíření dodavatele.
  • Experimentální rozšíření dodavatelů (například XR_MSFTX_...): Experimentální rozšíření dodavatelů, která se zobrazují ve verzi Preview, aby získala zpětnou vazbu. XR_MSFTX_... rozšíření jsou určena pouze pro vývojářská zařízení a jsou odebrána, když se skutečné rozšíření dodává. Pokud chcete s nimi experimentovat, můžete povolit rozšíření preview na vývojářském zařízení.
  • Rozšíření mezi dodavateli: Rozšíření mezi dodavateliEXT, která definují a implementují více společností. Skupiny zúčastněných společností můžou rozšíření EXT kdykoli zavést.
  • Oficiální KHR rozšíření: Oficiální rozšíření Khronos jsou ratifikována jako součást základní verze specifikace. Rozšíření KHR jsou pokryta stejnou licencí jako samotná specifikace jádra.

Prostředí Windows Mixed Reality OpenXR Runtime podporuje sadu MSFT a EXT rozšíření, která přináší úplnou sadu funkcí HoloLens 2 do aplikací OpenXR:

Oblast funkcí Dostupnost rozšíření
Systémy + relace Specifikace Jádra OpenXR 1.0:
XrInstance, , XrSystemIdXrSession
Referenční prostory (zobrazení, místní, fáze) Specifikace Jádra OpenXR 1.0:
XrSpace
Zobrazení konfigurací (monofonní, stereo) Specifikace Jádra OpenXR 1.0:
XrView...
+ Časování snímků pro prohození Specifikace Jádra OpenXR 1.0:
XrSwapchain... + xrWaitFrame
Vrstvy složení
(projekce, čtyřúhelník)
Specifikace Jádra OpenXR 1.0:
XrCompositionLayer... + xrEndFrame
Vstupní a haptika Specifikace Jádra OpenXR 1.0:
XrAction...
Integrace Direct3D 11/12 Oficiální KHR rozšíření vydaná:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Nevázaný referenční prostor
(prostředí na světové úrovni)
MSFT vydáno rozšíření:
XR_MSFT_unbounded_reference_space
Prostorové ukotvení

MSFT vydáno rozšíření:
XR_MSFT_spatial_anchor

MSFT rozšíření vydané v modulu runtime 108: (pouze HoloLens 2)
XR_MSFT_spatial_anchor_persistence

Interakce rukou
(pozice uchop/cíl, klepnutí vzduchem, uchopení)

Jenom HoloLens 2

MSFT vydáno rozšíření:
XR_MSFT_hand_interaction
Ruční artikulace + ruční mřížka

Jenom HoloLens 2

EXT vydáno rozšíření:
XR_EXT_hand_tracking

MSFT vydáno rozšíření:
XR_MSFT_hand_tracking_mesh

Pohled na oči

Jenom HoloLens 2

EXT vydáno rozšíření:
XR_EXT_eye_gaze_interaction
Zachycení hybridní reality
(třetí vykreslení z fotokamery)

Jenom HoloLens 2

MSFT vydána rozšíření:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Profily interakce ovladače pohybu
(Samsung Odyssey a HP Reverb G2)
MSFT rozšíření vydaná v modulu runtime 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modely vykreslování ovladače pohybu MSFT rozšíření vydané v modulu runtime 104:
XR_MSFT_controller_model
Porozumění scéně (roviny, sítě)

Jenom HoloLens 2

MSFT rozšíření vydané v modulu runtime 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Značka scény (kódy QR)

Jenom HoloLens 2

MSFT rozšíření vydané v modulu runtime 113:
XR_MSFT_scene_marker
Režimy reprojektování vrstvy složení
(automatické plánování nebo reprojektování pouze orientace)
MSFT rozšíření vydané v modulu runtime 106:
XR_MSFT_composition_layer_reprojection
Spolupráce s dalšími sadami SDK hybridní reality
(například QR)
MSFT vydáno rozšíření:
XR_MSFT_spatial_graph_bridge
Spolupráce s rozhraním COREWindow API pro UPW
(například pro klávesnici nebo myš)
MSFT rozšíření vydané v modulu runtime 103:
XR_MSFT_holographic_window_attachment
Interoperabilita se staršími rozhraními API WinRT hybridní reality
(například SpatialAnchorTransferManager))

MSFT rozšíření vydané v modulu runtime 105:
XR_MSFT_perception_anchor_interop

Další rozšíření mezi dodavateli

Oficiální KHR rozšíření vydaná:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT vydána rozšíření:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

I když některá z těchto rozšíření mohou začínat jako rozšíření specifická pro MSFT dodavatele, Microsoft a další dodavatelé modulu runtime OpenXR spolupracují na návrhu různých dodavatelů EXT nebo KHR rozšíření pro mnoho z těchto oblastí funkcí. Rozšíření mezi dodavateli vytvoří kód, který napíšete pro tyto funkce, přenositelné mezi dodavateli modulu runtime, stejně jako u základní specifikace.

Kde můžete použít OpenXR?

Snímek obrazovky s minecraftem, který hraje uživatel s náhlavní soupravou hybridní reality

Nový modul RenderDragon v Minecraftu vytvořil podporu desktopové vr pomocí OpenXR!

Microsoft pracuje s Unity a Epic Games, aby se zajistilo, že budoucnost hybridní reality je otevřená, nejen pro HoloLens 2, ale v celé šíři POČÍTAČOVÉ VR, včetně nové náhlavní soupravy Reverb G2 HP. OpenXR využívá podporu vr mezi dodavateli pro hlavní tituly dnes, jako je Minecraft a Microsoft Flight Simulator! Další informace o vývoji pro HoloLens (1. generace) najdete v poznámkách k verzi.

Pokud chcete zjistit, jak začít s OpenXR v Unity, Unreal Engine nebo vlastním modulem, čtěte dál.

OpenXR v Unity

Aktuální doporučená konfigurace Unity od Microsoftu pro vývoj pro HoloLens 2 a Windows Mixed Reality je Unity 2020.3 LTS s modulem plug-in Mixed Reality OpenXR. Tento modul plug-in zahrnuje podporu rozšíření OpenXR, která zvýšují všechny možnosti náhlavních souprav HoloLens 2 a Windows Mixed Reality, včetně sledování rukou a očí, prostorových ukotvení a řadičů HP Reverb G2. MRTK-Unity podporuje OpenXR od MRTK 2.7. Další informace o tom, jak začít používat Unity 2020 a OpenXR, najdete v tématu Volba verze Unity a modulu plug-in XR.

Pokud vyvíjíte pro HoloLens (1. generace), musíte dál používat Unity 2019.4 LTS se starší verzí back-endu rozhraní Api WinRT. Pokud cílíte na nový kontroler HP Reverb G2 v aplikaci Unity 2019, podívejte se na naši vstupní dokumentaci HP Reverb G2.

Od Verze Unity 2021.3 LTS je OpenXR jediným podporovaným back-endem Unity pro cílení na náhlavní soupravy HoloLens 2 a Windows Mixed Reality.

OpenXR v unreal Engine

Unreal Engine 4.23 byl první hlavní herní modul vydání k odeslání podpory preview pro OpenXR 1.0! V Unreal Engine 4.26 je teď podpora pro HoloLens 2, Windows Mixed Reality a další desktopové náhlavní soupravy VR dostupná prostřednictvím integrované podpory OpenXR modulu Unreal Engine. Unreal Engine 4.26 také podporuje modul plug-in rozšíření OpenXR od Microsoftu. To umožňuje ruční interakci a podporu kontroleru HP Reverb G2, což umožňuje rozsvítit kompletní sadu funkcí holoLens 2 a náhlavních souprav Windows Mixed Reality. Unreal Engine 4.26 je dnes k dispozici na Epic Games Launcher s MRTK-Unreal 0.12 podporující projekty OpenXR.

OpenXR pro nativní vývoj

Můžete vyvíjet pomocí OpenXR na náhlavní soupravě HoloLens 2 nebo Windows Mixed Reality imerzivní VR na ploše. Pokud nemáte přístup k náhlavní soupravě, můžete místo toho použít emulátor HoloLens 2 nebo simulátor Windows Mixed Reality.

Pokud chcete začít vyvíjet aplikace OpenXR pro náhlavní soupravy HoloLens 2 nebo Windows Mixed Reality VR, podívejte se, jak začít s vývojem OpenXR.

Na prohlídku všech hlavních součástí rozhraní API OpenXR spolu s příklady skutečných aplikací využívajících OpenXR se dnes podívejte na toto 60minutové video s návodem:

Viz také