OpenXR

OpenXR embléma

Az OpenXR a Khronos nyílt jogdíjmentes API-szabványa, amely natív hozzáférést biztosít a különböző eszközökhöz a vegyes valóság spektrumában.

Az OpenXR használatával fejleszthet egy HoloLens 2 vagy Windows Mixed Reality modern VR-headseten az asztalon. Ha nincs hozzáférése a headsethez, használhatja helyette a HoloLens 2 Emulatort vagy a Windows Mixed Reality Szimulátort.

Miért az OpenXR?

Az OpenXR segítségével olyan motorokat hozhat létre, amelyek holografikus eszközöket, például HoloLens 2 és modern VR-eszközöket céloznak meg, például Windows Mixed Reality asztali számítógépekhez készült headseteket. Az OpenXR lehetővé teszi a kód írását, ha az a hardverplatformok széles körében hordozható.

Az OpenXR API egy betöltővel csatlakoztatja az alkalmazást közvetlenül a headset natív platformtámogatásához. A végfelhasználók maximális teljesítményt és minimális késést kapnak, akár Windows Mixed Reality, akár más fejhallgatót használnak.

Mi az az OpenXR?

Az OpenXR API biztosítja az alapvető póz-előrejelzést, a keretidőzítést és a térbeli beviteli funkciókat, amelyekre szüksége lesz egy olyan motor létrehozásához, amely holografikus és modern eszközöket is megcélz.

Az OpenXR API-val kapcsolatos információkért tekintse meg az OpenXR 1.0 specifikációját, az API-referenciát és a rövid útmutatót. További információt a Khronos OpenXR oldalán talál.

A HoloLens 2 teljes funkciókészletének megcélzásához szállítók közötti és szállítóspecifikus OpenXR-bővítményeket is használhat, amelyek az OpenXR 1.0 magon kívül további funkciókat is lehetővé tesznek, például a csuklós kézkövetést, a szemkövetést, a térbeli leképezést és a térbeli horgonyokat. További információért tekintse meg az ütemterv szakaszt az év későbbi részében megjelenő bővítményekről.

Az OpenXR önmagában nem vegyes valósági motor. Ehelyett az OpenXR lehetővé teszi az olyan motorok számára, mint a Unity és az Unreal, hogy egyszer hordozható kódot írjanak, amely aztán hozzáférhet a felhasználó holografikus vagy modern eszközének natív platformfunkcióihoz, bármilyen gyártó is építette ezt a platformot.

Ütemterv

Az OpenXR specifikáció egy olyan bővítménymechanizmust határoz meg, amely lehetővé teszi, hogy a futtatókörnyezet implementálói az Alap OpenXR 1.0 specifikációban meghatározott alapvető funkciókon túl további funkciókat tegyenek közzé.

Háromféle OpenXR-bővítmény létezik:

  • Szállítói bővítmények (például XR_MSFT_...): Lehetővé teszi a gyártónkénti innovációt a hardver- vagy szoftverfunkciókban. Bármely futtatókörnyezeti szállító bármikor bevezethet és elküldhet egy szállítói bővítményt.
    • Kísérleti szállítói bővítmények (például XR_MSFTX_...): A kísérleti szállítói bővítmények előzetes verzióban jelennek meg, hogy visszajelzést gyűjtsenek. XR_MSFTX_... a bővítmények csak a fejlesztői eszközökhöz használhatók, és a valódi bővítmények telepítésekor törlődnek. Ha kísérletezni szeretne velük, engedélyezheti az előzetes verziójú bővítményeket a fejlesztői eszközön.
  • Szállítók EXT közötti bővítmények: Több vállalat által definiált és implementálható, szállítók közötti bővítmények. Az érdekelt vállalatok csoportjai bármikor bevezethetnek EXT-bővítményeket.
  • Hivatalos KHR bővítmények: Hivatalos Khronos-bővítmények ratifikálva egy alapvető specifikáció kiadásának részeként. A KHR-bővítményekre ugyanaz a licenc vonatkozik, mint maga az alapvető specifikáció.

A Windows Mixed Reality OpenXR-futtatókörnyezet támogatja a és EXT bővítmények készletétMSFT, amelyek az OpenXR-alkalmazások HoloLens 2 funkcióinak teljes készletét biztosítják:

Funkcióterület Bővítmények rendelkezésre állása
Rendszerek + munkamenetek OpenXR 1.0 magspecifikáció:
XrInstance, XrSystemId, XrSession
Referenciahelyek (nézet, helyi, szakasz) OpenXR 1.0 magspecifikáció:
XrSpace
Konfigurációk megtekintése (mono, sztereó) OpenXR 1.0 magspecifikáció:
XrView...
Csereláncok + keret időzítése OpenXR 1.0 magspecifikáció:
XrSwapchain... + xrWaitFrame
Kompozíciós rétegek
(vetület, quad)
OpenXR 1.0 magspecifikáció:
XrCompositionLayer... + xrEndFrame
Bemenet és haptik OpenXR 1.0 magspecifikáció:
XrAction...
Direct3D 11/12 integráció Hivatalos KHR bővítmények megjelentek:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Kötetlen referenciaterület
(világszintű élmények)
MSFT kiadott bővítmény:
XR_MSFT_unbounded_reference_space
Térbeli horgonyok

MSFT kiadott bővítmény:
XR_MSFT_spatial_anchor

MSFT 108-ban kiadott bővítmény:(csak HoloLens 2)
XR_MSFT_spatial_anchor_persistence

Kézművelet
(markolat/cél póz, légcsapás, fogás)

csak HoloLens 2

MSFT kiadott bővítmény:
XR_MSFT_hand_interaction
Kézi artikuláció + kézháló

csak HoloLens 2

EXT kiadott bővítmény:
XR_EXT_hand_tracking

MSFT kiadott bővítmény:
XR_MSFT_hand_tracking_mesh

Szem tekintete

csak HoloLens 2

EXT kiadott bővítmény:
XR_EXT_eye_gaze_interaction
Mixed Reality rögzítés
(harmadik renderelés PV kamerából)

csak HoloLens 2

MSFT kiadott bővítmények:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Mozgásvezérlő interakciós profiljai
(Samsung Odyssey és HP Reverb G2)
MSFT a 103-ban kiadott bővítmények:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Mozgásvezérlő renderelési modelljei MSFT a 104-ben kiadott bővítmény:
XR_MSFT_controller_model
Jelenetfelismerés (síkok, hálók)

csak HoloLens 2

MSFT a 106-os futtatókörnyezetben kiadott bővítmény:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Kompozíciós réteg-újraprojection módok
(automatikus tervrajz vagy csak tájolású újraprojection)
MSFT a 106-os futtatókörnyezetben kiadott bővítmény:
XR_MSFT_composition_layer_reprojection
Együttműködés más Mixed Reality SDK-kkal
(például QR)
MSFT kiadott bővítmény:
XR_MSFT_spatial_graph_bridge
Együttműködés az UWP CoreWindow API-val
(például billentyűzet/egér esetén)
MSFT a 103-at futtatókörnyezetben kiadott bővítmény:
XR_MSFT_holographic_window_attachment
Együttműködés örökölt Mixed Reality WinRT API-kkal
(például ) SpatialAnchorTransferManager)

MSFT a 105-ös futtatókörnyezetben kiadott bővítmény:
XR_MSFT_perception_anchor_interop

Egyéb szállítók közötti bővítmények

Hivatalos KHR bővítmények megjelentek:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT kiadott bővítmények:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Bár a bővítmények némelyike gyártóspecifikus MSFT bővítményként indulhat, a Microsoft és más OpenXR futtatókörnyezeti szállítók együttműködve terveznek szállítók EXT közötti vagy KHR bővítményeket számos ilyen funkcióterületen. A szállítók közötti bővítmények az alapvető specifikációhoz hasonlóan hordozhatóvá teszik az adott funkciókhoz írt kódot a futtatókörnyezeti szállítók között.

Hol használhatja az OpenXR-t?

Képernyőkép arról, hogy a Minecraftot egy vegyes valóságú headsetet viselő felhasználó játssza le

A Minecraft új RenderDragon motorja az OpenXR használatával építette ki asztali VR-támogatását!

A Microsoft együttműködik a Unity és az Epic Gamesszel annak érdekében, hogy a vegyes valóság jövője nyitva legyen, nemcsak HoloLens 2, hanem a PC VR teljes területén, beleértve a HP új Reverb G2 headsetjét is. Az OpenXR a szállítók közötti VR-támogatást nyújtja a mai fő címek szállításához, például a Minecrafthoz és a Microsoft Flight Simulatorhoz! A HoloLens (1. generációs) fejlesztéséről további információt a kibocsátási megjegyzésekben talál.

Ha tudni szeretné, hogyan kezdheti el az OpenXR-t a Unityben, az Unreal Engine-ben vagy a saját motorjában, olvassa el a következőt:

OpenXR a Unityben

A Microsoft jelenleg ajánlott Unity-konfigurációja HoloLens 2 és Windows Mixed Reality fejlesztéshez a Unity 2020.3 LTS az Mixed Reality OpenXR beépülő modullal. Ez a beépülő modul támogatja az OpenXR bővítményeket, amelyek a HoloLens 2 és Windows Mixed Reality headsetek teljes képességeit kivilágosítják, beleértve a kéz- és szemkövetést, a térbeli horgonyokat és a HP Reverb G2 vezérlőket. MRTK-Unity támogatja az OpenXR-t az MRTK 2.7-ről. A Unity 2020 és az OpenXR használatának első lépéseiről további információt a Unity-verzió és az XR beépülő modul kiválasztása című témakörben talál.

Ha a HoloLenshez (1. generációs) fejleszt, továbbra is a Unity 2019.4 LTS-t kell használnia az örökölt WinRT API-háttérrendszerrel. Ha egy Unity 2019-alkalmazásban az új HP Reverb G2 vezérlőt célozza meg, tekintse meg a HP Reverb G2 bemeneti dokumentációját.

A Unity 2021.3 LTS-től kezdve az OpenXR lesz az egyetlen támogatott Unity-háttérrendszer a HoloLens 2 és Windows Mixed Reality headsetek megcélzására.

OpenXR az Unreal Engine-ben

Az Unreal Engine 4.23 volt az első nagy játékmotor kiadás, amely az OpenXR 1.0 előzetes verzióját támogatja! Az Unreal Engine 4.26-ban az Unreal Engine beépített OpenXR-támogatásával mostantól HoloLens 2, Windows Mixed Reality és más asztali VR-headsetek is elérhetők. Az Unreal Engine 4.26 emellett támogatja a Microsoft OpenXR bővítmény beépülő modulját is, amely lehetővé teszi a kézműveletet és a HP Reverb G2 vezérlő támogatását, így a HoloLens 2 és a Windows Mixed Reality fejhallgatók teljes funkciókészletét kivilágítják. Az Unreal Engine 4.26 ma elérhető az Epic Games Launcherben, MRTK-Unreal 0.12-es támogatással rendelkező OpenXR-projekteket.

OpenXR natív fejlesztéshez

Az OpenXR használatával fejleszthet egy HoloLens 2 vagy Windows Mixed Reality modern VR-headseten az asztalon. Ha nincs hozzáférése a headsethez, használhatja helyette a HoloLens 2 Emulatort vagy a Windows Mixed Reality Szimulátort.

Az OpenXR-alkalmazások HoloLens 2 vagy Windows Mixed Reality VR-headsetekhez való fejlesztésének megkezdéséhez tekintse meg az OpenXR-fejlesztés első lépéseit.

Az OpenXR API összes fő összetevőjét, valamint az OpenXR-t használó valós alkalmazásokra vonatkozó példákat bemutató 60 perces bemutató videóból megtudhatja:

Lásd még