OpenXR

Logo OpenXR

OpenXR to otwarty standardowa interfejsu API bez tantiem firmy Khronos, zapewniając aparatom natywny dostęp do wielu urządzeń w spektrum rzeczywistości mieszanej.

Można programować przy użyciu biblioteki OpenXR na HoloLens 2 lub Windows Mixed Reality immersywny zestaw słuchawkowy VR na pulpicie. Jeśli nie masz dostępu do zestawu nagłownego, możesz zamiast tego użyć emulatora HoloLens 2 lub symulatora Windows Mixed Reality.

Dlaczego OpenXR?

Dzięki technologii OpenXR można tworzyć aparaty przeznaczone dla urządzeń holograficznych, takich jak HoloLens 2 i immersywne urządzenia VR, takie jak zestawy nagłowne Windows Mixed Reality dla komputerów stacjonarnych. Biblioteka OpenXR umożliwia pisanie kodu, gdy jest to następnie przenośne na wielu platformach sprzętowych.

Interfejs API OpenXR używa modułu ładującego do łączenia aplikacji bezpośrednio z natywną obsługą platformy zestawu słuchawkowego. Użytkownicy końcowi uzyskują maksymalną wydajność i minimalne opóźnienia, niezależnie od tego, czy używają Windows Mixed Reality, czy innych zestawów słuchawkowych.

Co to jest OpenXR?

Interfejs API OpenXR udostępnia podstawowe funkcje przewidywania, chronometrażu ramek i danych wejściowych przestrzennych, które należy utworzyć aparat, który może być przeznaczony zarówno dla urządzeń holograficznych, jak i immersywnych.

Aby dowiedzieć się więcej na temat interfejsu API OpenXR, zapoznaj się ze specyfikacją OpenXR 1.0, dokumentacją interfejsu API i przewodnikiem szybkich dokumentacji. Aby uzyskać więcej informacji, zobacz stronę Khronos OpenXR.

Aby zastosować pełny zestaw funkcji HoloLens 2, użyjesz również rozszerzeń OpenXR specyficznych dla wielu dostawców i dostawców, które umożliwiają korzystanie z dodatkowych funkcji poza rdzeniem OpenXR 1.0, takich jak śledzenie rąk, śledzenie oczu, mapowanie przestrzenne i kotwice przestrzenne. Aby uzyskać więcej informacji, zobacz sekcję Plan działania poniżej na temat rozszerzeń, które pojawią się jeszcze w tym roku.

OpenXR nie jest aparatem rzeczywistości mieszanej. Zamiast tego platforma OpenXR umożliwia aparatom takim jak Unity i Unreal pisanie przenośnego kodu, który może następnie uzyskiwać dostęp do natywnych funkcji platformy holograficznego lub immersyjnego urządzenia użytkownika, niezależnie od tego, czy dostawca zbudował tę platformę.

Harmonogram działania

Specyfikacja OpenXR definiuje mechanizm rozszerzenia, który umożliwia implementatorom środowiska uruchomieniowego uwidacznianie dodatkowych funkcji poza podstawowymi funkcjami zdefiniowanymi w podstawowej specyfikacji OpenXR 1.0.

Istnieją trzy rodzaje rozszerzeń OpenXR:

  • Rozszerzenia dostawcy (na przykład XR_MSFT_...): umożliwia wprowadzanie innowacji dla poszczególnych dostawców w funkcjach sprzętu lub oprogramowania. Każdy dostawca środowiska uruchomieniowego może wprowadzać i dostarczać rozszerzenie dostawcy w dowolnym momencie.
    • Eksperymentalne rozszerzenia dostawcy (na przykład XR_MSFTX_...): podgląd eksperymentalnych rozszerzeń dostawcy w celu zebrania opinii. XR_MSFTX_... Rozszerzenia są przeznaczone tylko dla urządzeń deweloperskich i zostaną usunięte po wysłaniu rzeczywistego rozszerzenia. Aby eksperymentować z nimi, możesz włączyć rozszerzenia w wersji zapoznawczej na urządzeniu dewelopera.
  • Rozszerzenia między dostawcami: rozszerzenia między dostawcami EXT definiowane i implementujące wiele firm. Grupy zainteresowanych firm mogą w dowolnym momencie wprowadzać rozszerzenia EXT.
  • Oficjalne rozszerzenia: Oficjalne KHR rozszerzenia Khronos ratyfikowane w ramach podstawowej wersji specyfikacji. Rozszerzenia KHR są objęte tą samą licencją co sama specyfikacja podstawowa.

Środowisko uruchomieniowe Windows Mixed Reality OpenXR obsługuje zestaw MSFT rozszerzeń iEXT, które udostępniają pełny zestaw funkcji HoloLens 2 aplikacjom OpenXR:

Obszar funkcji Dostępność rozszerzenia
Systemy i sesje Specyfikacja rdzeni openXR 1.0:
XrInstance, XrSystemId, XrSession
Przestrzenie referencyjne (widok, lokalny, etap) Specyfikacja rdzeni openXR 1.0:
XrSpace
Wyświetlanie konfiguracji (mono, stereo) Specyfikacja rdzeni openXR 1.0:
XrView...
Swapchains + chronometraż ramek Specyfikacja rdzeni openXR 1.0:
XrSwapchain... + xrWaitFrame
Warstwy kompozycji
(projekcja, czworokąt)
Specyfikacja rdzeni openXR 1.0:
XrCompositionLayer... + xrEndFrame
Dane wejściowe i haptyczne Specyfikacja rdzeni openXR 1.0:
XrAction...
Integracja z usługą Direct3D 11/12 Wydane oficjalne KHR rozszerzenia:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Niezwiązana przestrzeń referencyjna
(środowiska na skalę światową)
MSFT wydano rozszerzenie:
XR_MSFT_unbounded_reference_space
Kotwice przestrzenne

MSFT wydano rozszerzenie:
XR_MSFT_spatial_anchor

MSFT rozszerzenie wydane w środowisku uruchomieniowym 108:(tylko HoloLens 2)
XR_MSFT_spatial_anchor_persistence

Interakcja z rękami
(uchwyt/cel pozowanie, naciśnięcie powietrza, chwytanie)

tylko HoloLens 2

MSFT wydano rozszerzenie:
XR_MSFT_hand_interaction
Artykulacja ręczna + siatka ręczna

tylko HoloLens 2

EXT wydano rozszerzenie:
XR_EXT_hand_tracking

MSFT wydano rozszerzenie:
XR_MSFT_hand_tracking_mesh

Spojrzenie wzrokowe

tylko HoloLens 2

EXT wydano rozszerzenie:
XR_EXT_eye_gaze_interaction
przechwytywanie Mixed Reality
(trzeci renderowanie z kamery PV)

tylko HoloLens 2

MSFT wydano rozszerzenia:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Profile interakcji kontrolera ruchu
(Samsung Odyssey i HP Reverb G2)
MSFT rozszerzenia wydane w środowisku uruchomieniowym 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modele renderowania kontrolera ruchu MSFT rozszerzenie wydane w czasie wykonywania 104:
XR_MSFT_controller_model
Opis sceny (płaszczyzny, siatki)

tylko HoloLens 2

MSFT rozszerzenie wydane w czasie wykonywania 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Tryby ponownego projektu warstwy kompozycji
(automatyczne planowanie lub ponowne odwzorowanie tylko orientacji)
MSFT rozszerzenie wydane w czasie wykonywania 106:
XR_MSFT_composition_layer_reprojection
Współdziałanie z innymi zestawami SDK Mixed Reality
(na przykład QR)
MSFT wydano rozszerzenie:
XR_MSFT_spatial_graph_bridge
Współdziałanie z podstawowym interfejsem API systemu Windows platformy UNIWERSALNEJ systemu Windows
(na przykład dla klawiatury/myszy)
MSFT rozszerzenie wydane w czasie wykonywania 103:
XR_MSFT_holographic_window_attachment
Współdziałanie ze starszymi interfejsami API Mixed Reality WinRT
(na przykład SpatialAnchorTransferManager))

MSFT rozszerzenie wydane w czasie wykonywania 105:
XR_MSFT_perception_anchor_interop

Inne rozszerzenia między dostawcami

Wydane oficjalne KHR rozszerzenia:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT wydano rozszerzenia:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Chociaż niektóre z tych rozszerzeń mogą zaczynać się jako rozszerzenia specyficzne dla MSFT dostawcy, firma Microsoft i inni dostawcy środowiska uruchomieniowego OpenXR współpracują ze sobą, aby zaprojektować między EXT dostawcami lub KHR rozszerzeniami dla wielu z tych obszarów funkcji. Rozszerzenia między dostawcami sprawią, że kod, który napiszesz dla tych funkcji, będzie przenośny dla dostawców środowiska uruchomieniowego, podobnie jak w przypadku podstawowej specyfikacji.

Gdzie można używać biblioteki OpenXR?

Zrzut ekranu przedstawiający gry Minecraft odtwarzany przez użytkownika w zestawie słuchawkowym rzeczywistości mieszanej

Nowy aparat RenderDragon w Minecraft zbudował swoją obsługę vr dla komputerów stacjonarnych przy użyciu biblioteki OpenXR!

Firma Microsoft współpracuje z unity i Epic Games, aby zapewnić, że przyszłość rzeczywistości mieszanej jest otwarta, nie tylko dla HoloLens 2, ale w całej całej szerokości PC VR, w tym nowego zestawu słuchawkowego Reverb G2 HP. Platforma OpenXR obsługuje obsługę vr dla wielu dostawców dla głównych tytułów wysyłkowych dzisiaj, takich jak Minecraft i Microsoft Flight Simulator! Aby uzyskać więcej informacji na temat programowania dla urządzenia HoloLens (1. generacji), zobacz informacje o wersji.

Aby dowiedzieć się, jak rozpocząć pracę z programem OpenXR w środowisku Unity, unreal Engine lub własnym aparatem, przeczytaj dalej.

OpenXR w środowisku Unity

Bieżąca zalecana przez firmę Microsoft konfiguracja aparatu Unity dla HoloLens 2 i Windows Mixed Reality to środowisko Unity 2020.3 LTS z wtyczką Mixed Reality OpenXR. Ta wtyczka obejmuje obsługę rozszerzeń OpenXR, które rozświetlą pełne możliwości HoloLens 2 i zestawów słuchawkowych Windows Mixed Reality, w tym śledzenia dłoni/oczu, kotwic przestrzennych i kontrolerów HP Reverb G2. MRTK-Unity obsługuje protokół OpenXR od wersji MRTK 2.7. Aby uzyskać więcej informacji na temat rozpoczynania pracy z aparatami Unity 2020 i OpenXR, zobacz Wybieranie wersji aparatu Unity i wtyczki XR.

Jeśli programujesz dla urządzenia HoloLens (1. generacji), musisz nadal korzystać z aparatu Unity 2019.4 LTS ze starszym zapleczem interfejsu API WinRT. Jeśli używasz nowego kontrolera HP Reverb G2 w aplikacji Aparatu Unity 2019, zobacz dokumentację wejściową HP Reverb G2.

Począwszy od środowiska Unity 2021.3 LTS, platforma OpenXR będzie jedynym obsługiwanym zapleczem aparatu Unity przeznaczonym dla HoloLens 2 i zestawów słuchawkowych Windows Mixed Reality.

OpenXR w unreal engine

Unreal Engine 4.23 był pierwszą główną wersją aparatu gier, która będzie dostarczać obsługę wersji zapoznawczej openXR 1.0! Teraz w systemie Unreal Engine 4.26 obsługa HoloLens 2, Windows Mixed Reality i innych zestawów słuchawkowych VR na pulpicie jest dostępna za pośrednictwem wbudowanej obsługi OpenXR aparatu Unreal Engine. Aparat Unreal Engine 4.26 obsługuje również wtyczkę rozszerzenia OpenXR firmy Microsoft, umożliwiając interakcję ręczną i obsługę kontrolera HP Reverb G2, oświetlenie pełnego zestawu funkcji HoloLens 2 i zestawów słuchawkowych Windows Mixed Reality. Unreal Engine 4.26 jest dostępny dzisiaj na Epic Games Launcher, z MRTK-Unreal 0.12 obsługujących projekty OpenXR.

OpenXR na potrzeby tworzenia aplikacji natywnych

Można opracowywać przy użyciu biblioteki OpenXR na HoloLens 2 lub Windows Mixed Reality immersywny zestaw słuchawkowy VR na pulpicie. Jeśli nie masz dostępu do zestawu słuchawkowego, możesz zamiast tego użyć emulatora HoloLens 2 lub symulatora Windows Mixed Reality.

Aby rozpocząć tworzenie aplikacji OpenXR na potrzeby HoloLens 2 lub zestawów słuchawkowych VR Windows Mixed Reality, zobacz, jak rozpocząć pracę z programowaniem openXR.

Aby zapoznać się ze wszystkimi głównymi składnikami interfejsu API OpenXR, wraz z przykładami rzeczywistych aplikacji korzystających z biblioteki OpenXR, zapoznaj się z tym 60-minutowym filmem wideo z przewodnikiem:

Zobacz też