OpenXR

OpenXR embléma

Az OpenXR a Khronosnyílt, jogdíjmentes API-szabványa, amely natív hozzáférést biztosít a vegyes valóságspektrum számos eszközéhez.

Az OpenXR használatával fejleszthet egy HoloLens 2-es Windows Mixed Reality modern VR-headsettel az asztalon. Ha nem rendelkezik hozzáféréssel egy headsethez, használhatja a HoloLens 2 Emulator vagy a Windows Mixed Reality Simulatort.

Miért érdemes az OpenXR-t?

Az OpenXR-sel olyan motorokat építhet, amelyek mind a holografikus eszközöket, például az HoloLens 2-t, mind a modern VR-eszközöket, például Windows Mixed Reality asztali pc-khez használható headseteket céloznak meg. Az OpenXR lehetővé teszi, hogy kódot írjon, miután az már számos hardverplatformon hordozható.

Az OpenXR API betöltő használatával 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 érnek el, függetlenül attól, hogy Windows Mixed Reality vagy más headsetet használnak.

Mi az az OpenXR?

Az OpenXR API biztosítja az alapvető testeset-előrejelzést, a képkockaidőt és a térbeli bemenet funkciót, amelyekre szüksége lesz egy olyan motor felépítéséhez, amely holografikus és modern eszközöket is megcélzhat.

Az OpenXR API-val kapcsolatos további 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ó: Khronos OpenXR oldal.

A HoloLens 2 teljes funkciókészletének megcélzéséhez szállítóközi és szállítóspecifikus OpenXR-bővítményeket is használhat, amelyek az OpenXR 1.0 magon túl további funkciókat is lehetővé tesz, például a 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 idei év későbbi részében található bővítményekről az alábbi Ütemterv szakaszt.

Az OpenXR önmagában nem vegyes valóságú motor. Ehelyett az OpenXR lehetővé teszi, hogy az olyan motorok, mint a Unity és az Unreal hordozható kódot írjanak, amely ezután hozzáférhet a felhasználó holografikus vagy modern eszközének natív platform-funkcióihoz, függetlenül a platform gyártójától.

Ütemterv

Az OpenXR-specifikáció egy olyan kiterjesztési mechanizmust határoz meg, amely lehetővé teszi a futásidejű implementálók számára, hogy az alap OpenXR 1.0specifikációban meghatározott alapvető funkciókon túl további funkciókat tegyenek elérhetővé.

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

  • Szállítói bővítmények (például): Lehetővé teszi a gyártónkénti innovációt a hardver- vagy szoftveres funkciók terén. Bármely futásidejű szállító bármikor bevezethet és kiadhat egy szállítói bővítményt.
    • Kísérleti szállítói bővítmények (például): A kísérleti szállítói bővítmények előnézete visszajelzések gyűjtése. MSFT_preview A bővítmények csak fejlesztői eszközökre használhatók, és a valódi bővítmény terjesztéskor el lesznek távolítva. Ha kísérletezni szeretné velük, engedélyezheti az előzetes verziójú bővítményeket a fejlesztői eszközön.
  • Szállítók közötti bővítmények: Több vállalat által definiált és implementálja a szállítók közötti bővítményeket. Az érdeklődő vállalatok csoportjai bármikor bevezethetik az EXT-bővítményeket.
  • Hivatalos bővítmények: Hivatalos Khronos-bővítmények, amelyek egy alapvető specifikációs kiadás részeként vannak megtervve. A KHR-bővítményekre ugyanaz a licenc vonatkozik, mint maga az alapvető specifikáció.

Az Windows Mixed Reality OpenXR Runtime olyan és bővítményeket támogat, amelyek az MSFT OpenXR-alkalmazásokhoz HoloLens 2 funkció teljes készletét EXT kínálják:

Jellemzőterület Bővítmény rendelkezésre állása
Rendszerek és munkamenetek OpenXR 1.0 core specifikáció:
XrInstance, XrSystemId, XrSession
Referenciaterek (nézet, helyi, fázis) OpenXR 1.0 core specifikáció:
XrSpace
Konfigurációk megtekintése (mono, sztereotens) OpenXR 1.0 core specifikáció:
XrView...
Csereláncokképkocka időzítése OpenXR 1.0 core specifikáció:
XrSwapchain... + xrWaitFrame
Összeállítási rétegek
(vetítés, quad)
OpenXR 1.0 core specifikáció:
XrCompositionLayer... + xrEndFrame
Bemenet és haptikák OpenXR 1.0 core specifikáció:
XrAction...
Direct3D 11-integráció Kiadott hivatalos bővítmény:
XR_KHR_D3D11_enable
Direct3D 12-integráció Kiadott hivatalos bővítmény:
XR_KHR_D3D12_enable
Nem kötött referenciatér
(világméretű élmények)
kiadott bővítmény:
XR_MSFT_unbounded_reference_space
Térbeli horgonyok

kiadott bővítmény:
XR_MSFT_spatial_anchor

bővítmény a 107-es előzetes verziójú futtatásban:
XR_MSFT_spatial_anchor_persistence_preview

Kézi interakció
(testtartás/céltartás, légi koppintás, befogás)

HoloLens csak 2

kiadott bővítmény:
XR_MSFT_hand_interaction
Kéz articulation + kézi háló

HoloLens csak 2

kiadott bővítmény:
XR_EXT_hand_tracking

kiadott bővítmény:
XR_MSFT_hand_tracking_mesh
Tekintet

HoloLens csak 2

kiadott bővítmény:
XR_EXT_eye_gaze_interaction
Vegyes valóság rögzítése
(harmadik renderelés a PV kamerából)

HoloLens csak 2

kiadott bővítmények:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interop with other Mixed Reality SDKs
(például QR)

kiadott bővítmény:
XR_MSFT_spatial_graph_bridge

A bővítmény a 105-ös runtime-ban jelent meg:
XR_MSFT_perception_anchor_interop

Interop with UWP CoreWindow API
(például billentyűzet/egér esetén)
A bővítmény a 103-as runtime-ban jelent meg:
XR_MSFT_holographic_window_attachment
Mozgásvezérlő-interakciós profilok
(Samsung Odys illetve HP Reverb G2)
a 103-as runtime-ban kiadott bővítmények:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Mozgásvezérlő renderelési modelljei A bővítmény a 104-es runtime-ban jelent meg:
XR_MSFT_controller_model
Jelenetértés (síkok, hálók)

HoloLens csak 2

A bővítmény a 106-os runtime-ban jelent meg:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization

Az összeállítási réteg reprodukálás módjai
(auto-planar or orientation-only reprojection)
A bővítmény a 106-os runtime-ban jelent meg:
XR_MSFT_composition_layer_reprojection
Egyéb szállítóközi bővítmények

Kiadott hivatalos bővítmények:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

kiadott bővítmények:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Bár egyes bővítmények szállítóspecifikus bővítményekként kezdődhetnek, a Microsoft és más OpenXR-runtime-szállítók együtt dolgoznak a különböző gyártók vagy bővítmények tervezésében ezen funkciók számos MSFTEXTKHR területén. A gyártóközi bővítmények az alapspecifikációnak megfelelően hordozhatók lesznek az ezekhez a funkciókhoz írt kódok a futásidejű szállítók között.

Hol használhatja az OpenXR-t?

Képernyőkép Minecraft, amikor egy vegyes valóságú headsetet viselő felhasználó játszik

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

A Microsoft a Unity és az Epikus játékok segítségével gondoskodott arról, hogy a vegyes valóság jövője nyitva legyen, nem csak a HoloLens 2-es verziójában, hanem a PC-n is, beleértve a HP új Reverb G2-headsetétis. Az OpenXR a nagyobb címek, például a Minecraft és a Microsoft Flight Simulator szállítóközi VR-támogatását támogatja! Az (1. generációs) HoloLens a kibocsátási megjegyzésekben további információt.

Ha meg szeretne ismerkedni az OpenXR Unityben, Unreal Engine-ral vagy saját motorral való elkezdésével, olvassa el a következőt: .

OpenXR a Unityben

A Microsoft jelenlegi javasolt Unity-konfigurációja HoloLens 2-es és Windows Mixed Reality-fejlesztéshez a Unity 2020.3 LTS a legújabb Mixed Reality OpenXR beépülő modullal. Ez a beépülő modul támogatja az OpenXR-bővítményeket, amelyek az HoloLens 2-esés Windows Mixed Reality-headsetek összes funkcióját biztosítják, beleértve a kéz-/szemkövetést, a térbeli horgonyokat és a HP Reverb G2 vezérlőket. MRTK-Unity az OpenXR-t az MRTK 2.7-től támogatja. További információ a Unity 2020 és az OpenXR első lépésekről: Unity-verzió és XR beépülő modul kiválasztása.

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

A Unity 2021.2-tőlkezdődően az OpenXR lesz az egyetlen támogatott Unity-háttérrendszer a HoloLens 2-es és Windows Mixed Reality célzáshoz.

OpenXR az Unreal Engine-ban

Az Unreal Engine 4.23 volt az openXR 1.0 előzetes kiadásának első fő motorja. Az Unreal Engine 4.26-banaz HoloLens 2, 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 OpenXRbővítmény beépülő modulját is támogatja, amely lehetővé teszi a kézműveletet és a HP Reverb G2-vezérlő támogatását, valamint a HoloLens 2 és Windows Mixed Reality teljes funkciókészletének bevilágítását. Az Unreal Engine 4.26 jelenleg az Epikusjátékok indítóján érhető el, MRTK-Unreal 0,12 támogatja az OpenXR-projekteket.

OpenXR natív fejlesztéshez

Az OpenXR használatával fejleszthet egy HoloLens 2-es Windows Mixed Reality modern VR-headsettel az asztalon. Ha nem rendelkezik hozzáféréssel egy headsethez, használhatja a HoloLens 2 Emulator vagy a Windows Mixed Reality Simulatort.

Az OpenXR-alkalmazások HoloLens 2-es vagy Windows Mixed Reality VR-headsethez való fejlesztéséhez tekintse meg az OpenXR-fejlesztés első lépésekben való használatának első lépésekét.

Az OpenXR API főbb összetevőinek, valamint az OpenXR-t használó valós alkalmazások példáiért tekintse meg ezt a 60 perces bemutató videót:

Lásd még