OpenXR

Az OpenXR egy nyílt jogdíjmentes API-szabvány a Khronostól, amely natív hozzáférést biztosít a motoroknak a vegyes valóság spektrumában található eszközök széles köréhez.
Az OpenXR használatával holoLens 2 vagy Windows Mixed Reality modern VR headseten fejleszthet az asztalon. Ha nem fér hozzá 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 mind a holografikus eszközöket, például a HoloLens 2-t, mind a modern VR-eszközöket célba vehetik, például asztali számítógépekhez készült Windows Mixed Reality headseteket. Az OpenXR lehetővé teszi, hogy olyan kódot írjon, amely aztán 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, függetlenül attól, hogy Windows Mixed Realityt vagy más headsetet használnak.
Mi az OpenXR?
Az OpenXR API biztosítja az alapvető póz-előrejelzést, a keretidőzítést és a térbeli bemeneti funkciókat, amelyekre egy olyan motor létrehozásához van szükség, 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. Ezek olyan funkciókat tesznek lehetővé, mint a csuklós kézkövetés, a szemkövetés, a térbeli leképezés és a térbeli horgonyok. További információkért tekintse meg az ütemterv szakaszt az év későbbi részében megjelenő bővítményekről.
Az OpenXR nem maga a vegyes valóság motorja. Ehelyett az OpenXR lehetővé teszi az olyan motorok számára, mint a Unity és az Unreal, hogy egyszer hordozható kódot írjanak, amelyek ezután hozzáférhetnek 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 kívül más funkciókat is elérhetővé tegyenek.
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 szállítónkénti innovációt a hardver- vagy szoftverfunkciókban. Bármely futtatókörnyezet-gyártó bármikor be tud vezetni és szállíthat 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 tartoznak, és a valódi bővítmények használatakor el lesznek távolítva. 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, amelyet egy alapvető specifikáció kiadásának részeként ratifikáltak. 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 HoloLens 2 funkcióinak teljes készletét MSFT
EXT
az OpenXR-alkalmazásokhoz:
Szolgáltatásterület | Bővítmények rendelkezésre állása |
---|---|
Rendszerek + munkamenetek | OpenXR 1.0 mag specifikáció:XrInstance , , XrSystemId XrSession |
Referenciahelyek (nézet, helyi, szakasz) | OpenXR 1.0 mag specifikáció:XrSpace |
Konfigurációk megtekintése (mono, sztereó) | OpenXR 1.0 mag specifikáció:XrView... |
Swapchains + keret időzítése | OpenXR 1.0 mag specifikáció:XrSwapchain... + xrWaitFrame |
Kompozíciós rétegek (vetítés, quad) |
OpenXR 1.0 mag specifikáció:XrCompositionLayer... + xrEndFrame |
Bemenet és haptik | OpenXR 1.0 mag specifikáció:XrAction... |
Direct3D 11/12 integráció | Hivatalos KHR bővítmények megjelentek:XR_KHR_D3D11_enable |
Kötetlen referenciatér (világszintű élmények) |
MSFT kiadott bővítmény:XR_MSFT_unbounded_reference_space |
Térbeli horgonyok |
|
Kéz interakciója (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 |
|
Szem tekintete Csak HoloLens 2 |
EXT kiadott bővítmény:XR_EXT_eye_gaze_interaction |
Vegyes valóság rögzítése (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 runtime 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 |
Jelenetjelölő (QR-kódok) Csak HoloLens 2 |
MSFT 113-ban kiadott bővítmény: XR_MSFT_scene_marker |
Összetételi réteg újraprojectioni módjai (auto-planar vagy orientation-only reprojection) |
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 runtime 103-ban kiadott bővítmény:XR_MSFT_holographic_window_attachment |
Együttműködés az örökölt Mixed Reality WinRT API-kkal (például : SpatialAnchorTransferManager ) |
|
Egyéb szállítók közötti bővítmények | Hivatalos
|
Bár ezen bővítmények némelyike gyártóspecifikus MSFT
bővítményként indulhat el, a Microsoft és más OpenXR futtatókörnyezeti gyártók együttműködve terveznek több gyártót EXT
vagy KHR
bővítményt ezen funkciók számos területén. 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örnyezet-gyártók között.
Hol használható az OpenXR?
A Minecraft új RenderDragon motorja az OpenXR használatával hozta létre 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 ne csak a HoloLens 2 esetében legyen nyitva, 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 szeretné megtudni, 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 a HoloLens 2 és a Windows Mixed Reality fejlesztéséhez a Unity 2020.3 LTS a 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 a Windows Mixed Reality headsetek teljes képességeit felvilágosítják, beleértve a kéz- és szemkövetést, a térbeli horgonyokat és a HP Reverb G2 vezérlőket. Az MRTK-Unity az MRTK 2.7-ből támogatja az OpenXR-t. A Unity 2020 és az OpenXR használatának megkezdésérő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, akkor 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 dokumentumainkat.
A Unity 2021.3 LTS-től kezdve az OpenXR az egyetlen támogatott Unity-háttérrendszer a HoloLens 2 és a Windows Mixed Reality headsetek célzásához.
OpenXR az Unreal Engine-ben
Az Unreal Engine 4.23 volt az első nagyobb játékmotor-kiadás, amely az OpenXR 1.0 előzetes verziójának támogatását biztosította! Az Unreal Engine 4.26-ban a HoloLens 2, a Windows Mixed Reality és más asztali VR headsetek támogatása az Unreal Engine beépített OpenXR-támogatásával érhető el. Az Unreal Engine 4.26 a Microsoft OpenXR bővítmény beépülő modulját is támogatja. Ez lehetővé teszi a kéz interakcióját és a HP Reverb G2 vezérlő támogatását, így a HoloLens 2 és a Windows Mixed Reality headsetek teljes funkciókészletét kivilágítják. Az Unreal Engine 4.26 ma már elérhető az Epic Games Launcherben, az MRTK-Unreal 0.12-vel, amely OpenXR-projekteket támogat.
OpenXR natív fejlesztéshez
Az OpenXR használatával holoLens 2 vagy Windows Mixed Reality modern VR headseten fejleszthet az asztalon. Ha nem fér hozzá headsethez, használhatja helyette a HoloLens 2 Emulatort vagy a Windows Mixed Reality szimulátort.
A HoloLens 2 vagy Windows Mixed Reality VR headsetekhez készült OpenXR-alkalmazások fejlesztésének megkezdéséhez tekintse meg , hogyan kezdheti el az OpenXR-fejlesztést.
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: