OpenXR

Logo OpenXR

OpenXR je otevřený standard služby API bez licenčních poplatků od Khronos, který poskytuje moduly s nativním přístupem k škále zařízení napříč smíšeným spektrem realit.

můžete vyvíjet pomocí OpenXR na HoloLens 2 nebo Windows Mixed Reality moderní sluchátka s mikrofony na ploše. pokud nemáte přístup k náhlavní soupravě, můžete místo toho použít HoloLens 2 Emulator nebo simulátor Windows Mixed Reality.

Proč OpenXR?

pomocí OpenXR můžete vytvářet moduly, které se zaměřují na holografická zařízení, jako jsou HoloLens 2, a moderní zařízení VR, jako jsou Windows Mixed Reality sluchátka pro stolní počítače. OpenXR umožňuje psát kód poté, co je pak přenosný napříč celou řadou hardwarových platforem.

Rozhraní OpenXR API používá zavaděč k připojení vaší aplikace přímo k podpoře nativní platformy vaší náhlavní soupravy. koncoví uživatelé získají maximální výkon a minimální latenci, ať už používají Windows Mixed Reality nebo jakékoli jiné náhlavní soupravy.

Co je OpenXR?

Rozhraní OpenXR API poskytuje základní předpověď pozice, časování snímků a funkce prostorového zadávání, takže budete muset vytvořit modul, který může cílit na holografické i moderní zařízení.

Další informace o rozhraní OpenXR API najdete v části OpenXR 1,0 Specification, Reference k rozhraní APIa Stručná referenční příručka. Další informace najdete na stránce Khronos OpenXR.

chcete-li cílit na plnou sadu funkcí HoloLens 2, budete používat také rozšíření OpenXR pro různé dodavatele a dodavatele, která umožňují další funkce nad rámec OpenXR 1,0 core, jako je například prostrkání kloubového sledování, sledování očí, prostorové mapování a prostorové kotvy. Další informace najdete v části plán níže na rozšířeních, která přicházejí později v tomto roce.

OpenXR sám o sobě se nejedná o smíšený modul realit. Místo toho OpenXR umožňuje modulům, jako je Unity a Unreal, zapisovat přenosný kód, když pak bude moct získat přístup k nativním funkcím platformy na holografickém nebo atraktivním zařízení uživatele, ať už dodavatel vytvořil tuto platformu.

Plán

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

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

  • Rozšíření dodavatelů (například ): povoluje inovace vázané na dodavatele v hardwarových nebo softwarových funkcích. Libovolný dodavatel modulu runtime může kdykoli zavést a dodávat rozšíření od dodavatele.
    • Experimentální rozšíření dodavatelů (například ): experimentální rozšíření od dodavatele, která se zobrazují pro získání zpětné vazby. MSFT_preview rozšíření jsou jenom pro vývojářské zařízení a při skutečném rozšíření se odeberou. Pro experimentování s nimi můžete Povolit rozšíření ve verzi Preview na svém vývojovém zařízení.
  • Rozšíření pro více dodavatelů : rozšíření pro více dodavatelů, které definuje a implementuje více společností. Skupiny zúčastněných společností mohou kdykoli zavést rozšíření rozšíření.
  • Oficiální rozšíření: oficiální rozšíření Khronos se ratifikují v rámci vydání základního specifikace. Rozšíření KHR jsou pokrytá stejnou licencí jako základní specifikace.

modul Runtime Windows Mixed Reality OpenXR podporuje sadu MSFTEXT rozšíření a, která přináší kompletní sadu funkcí HoloLens 2 pro OpenXR aplikace:

Oblast funkcí Dostupnost rozšíření
Systémy a relace Základní specifikace OpenXR 1,0:
XrInstance, XrSystemId, XrSession
Referenční prostory (zobrazení, místní, fáze) Základní specifikace OpenXR 1,0:
XrSpace
Zobrazit konfigurace (mono, stereo) Základní specifikace OpenXR 1,0:
XrView...
Řetězce přepínáníčasování snímků Základní specifikace OpenXR 1,0:
XrSwapchain... + xrWaitFrame
Vrstvy kompozice
(projekce, Quad)
Základní specifikace OpenXR 1,0:
XrCompositionLayer... + xrEndFrame
Vstup a haptics Základní specifikace OpenXR 1,0:
XrAction...
Integrace Direct3D 11 Oficiální vydání rozšíření:
XR_KHR_D3D11_enable
Integrace rozhraní Direct3D 12 Oficiální vydání rozšíření:
XR_KHR_D3D12_enable
Neohraničený referenční prostor
(celosvětové prostředí)
vydaná rozšíření:
XR_MSFT_unbounded_reference_space
Prostorové kotvy

vydaná rozšíření:
XR_MSFT_spatial_anchor

rozšíření v modulu runtime verze preview 107:
XR_MSFT_spatial_anchor_persistence_preview

Ruční interakce
(úchyt/cíl – pozice, vzduchový kohout, uchopit)

pouze HoloLens 2

vydaná rozšíření:
XR_MSFT_hand_interaction
Otočný kloubová mřížka + ruka

pouze HoloLens 2

vydaná rozšíření:
XR_EXT_hand_tracking

vydaná rozšíření:
XR_MSFT_hand_tracking_mesh
Oční pohledu

pouze HoloLens 2

vydaná rozšíření:
XR_EXT_eye_gaze_interaction
Zachycení směsné reality
(třetí vykreslování z PV kamery)

pouze HoloLens 2

vydaná rozšíření:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Spolupráce s jinými sadami SDK hybridní reality
(například QR)

vydaná rozšíření:
XR_MSFT_spatial_graph_bridge

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

Spolupráce s rozhraním API UWP CoreWindow
(například pro klávesnici a myš)
rozšíření vydané v modulu runtime 103:
XR_MSFT_holographic_window_attachment
Profily interakce kontroleru pohybu
(Samsung Odyssey a HP reverb G2)
rozšíření vydaná v modulu runtime 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modely vykreslování kontroleru pohybu rozšíření vydané v modulu runtime 104:
XR_MSFT_controller_model
Porozumění scény (roviny, sítě)

pouze HoloLens 2

rozšíření vydané v modulu runtime 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization

Režimy reprojekce vrstvy kompozice
(automatické planární nebo reprojekce jenom pro orientaci)
rozšíření vydané v modulu runtime 106:
XR_MSFT_composition_layer_reprojection
Další rozšíření pro více dodavatelů

Oficiální vydání rozšíření:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

vydaná rozšíření:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

I když některá z těchto rozšíření můžou začínat jako rozšíření specifická pro dodavatele MSFT , výrobci Microsoftu a další OpenXR běhové prostředí pracují společně a navrhují EXTKHR pro řadu těchto oblastí funkcí různé dodavatele nebo rozšíření. Rozšíření pro různé dodavatele umožní kód, který napíšete pro tyto funkce přenosné v dodavatelích modulu runtime, stejně jako základní specifikace.

Kde můžete používat OpenXR?

snímek obrazovky Minecraft, kterou uživatel hraje pomocí náhlavní soupravy se smíšenými realitami

Minecraft nový modul RenderDragon má vytvořenou podporu virtuálních virtuálních počítačů pomocí OpenXR.

Microsoft ve spolupráci s Unity a Epic Games zajistil, že budoucnost hybridní reality bude otevřená nejen pro HoloLens 2, ale také v celé šíri pc vr, včetně nové náhlavní soupravy HP Reverb G2. OpenXR podporuje virtuální realitu mezi dodavateli pro hlavní tituly, které se dodnes doručí, například Minecraft a Simulátor letů Microsoftu. Další informace o vývoji pro HoloLens (1. generace) najdete ve zprávě k vydání verze.

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

OpenXR v Unity

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

Pokud vyvíjíte pro HoloLens (1. generace), budete muset dál používat Unity 2019.4 LTS se starším back-endem rozhraní WinRT API. Pokud cílíte na nový kontroler HP Reverb G2 v aplikaci Unity 2019, podívejte se na naše vstupní dokumenty HP Reverb G2.

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

OpenXR v Unreal Engineu

Unreal Engine 4.23 byl první hlavní vydání herního modulu, který dodá podporu verze Preview pro OpenXR 1.0! V Unreal Engine 4.26je teď podpora HoloLens 2, Windows Mixed Reality a dalších desktopových náhlavních souprav VR dostupná prostřednictvím integrované podpory OpenXR od Unreal Engine. Unreal Engine 4.26 také podporuje rozšiřující modul OpenXR od Microsoftu,který umožňuje interakci rukou a podporu kontroleru HP Reverb G2 a roztáhl úplnou sadu funkcí náhlavních souprav HoloLens 2 a Windows Mixed Reality. Unreal Engine 4.26 je v současné době k dispozici ve spouštěči Epic Games,který MRTK-Unreal 0.12 a podporuje projekty OpenXR.

OpenXR pro nativní vývoj

Můžete vyvíjet pomocí OpenXR na počítači HoloLens 2 nebo Windows Mixed Reality imerzivní náhlavní soupravu VR na ploše. Pokud nemáte přístup k náhlavní soupravě, můžete místo toho použít HoloLens 2 Emulator nebo Windows Mixed Reality zařízení.

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

Pokud si chcete projít všechny hlavní komponenty rozhraní OpenXR API a příklady aplikací z reálného světa, které dnes používají OpenXR, podívejte se na toto 60minutové video s návodem:

Viz také