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 dodavateli
EXT
, 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 , , XrSystemId XrSession |
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 |
Nevázaný referenční prostor (prostředí na světové úrovni) |
MSFT vydáno rozšíření:XR_MSFT_unbounded_reference_space |
Prostorové ukotvení |
|
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 |
|
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 )) |
|
Další rozšíření mezi dodavateli | Oficiální
|
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?
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: