OpenXR

Logo OpenXR

OpenXR jest otwartym standardem interfejsu API bez tantiem od khronos, zapewniając aparatom natywny dostęp do wielu urządzeń w spektrum rzeczywistości mieszanej.

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

Dlaczego OpenXR?

Za pomocą biblioteki OpenXR można tworzyć aparaty przeznaczone zarówno dla urządzeń holograficznej, jak HoloLens 2, jak i immersywne urządzenia VR, takie jak zestawy nagłowne Windows Mixed Reality dla komputerów stacjonarnych. Program OpenXR umożliwia pisanie kodu po zakończeniu pracy z różnymi platformami sprzętowymi.

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 ram i danych wejściowych przestrzennych, które należy utworzyć aparat, który może kierować zarówno urządzenia holograficzne, jak i immersywne.

Aby dowiedzieć się więcej na temat interfejsu API OpenXR, zapoznaj się ze specyfikacją openXR 1.0, dokumentacją interfejsu API i przewodnikiem szybkich odwołań. 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ą dodatkowe funkcje poza rdzeniem OpenXR 1.0, takie jak śledzenie rąk, śledzenie oczu, mapowanie przestrzenne i kotwice przestrzenne. Aby uzyskać więcej informacji, zobacz sekcję Harmonogram 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 raz, który może uzyskiwać dostęp do natywnych funkcji platformy holograficznego lub immersyjnego urządzenia użytkownika, niezależnie od tego, który 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 MSFT): włącza innowacje 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 MSFT_preview): eksperymentalne rozszerzenia dostawcy są w wersji zapoznawczej w celu zebrania opinii. MSFT_preview 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 EXT : rozszerzenia między dostawcami , które wiele firm definiuje i implementuje. Grupy zainteresowanych firm mogą w dowolnym momencie wprowadzać rozszerzenia EXT.
  • Oficjalne KHR rozszerzenia: Oficjalne rozszerzenia Khronos ratyfikowane w ramach podstawowego wydania specyfikacji. Rozszerzenia KHR są objęte tą samą licencją co sama specyfikacja podstawowa.

Środowisko uruchomieniowe Windows Mixed Reality OpenXR obsługuje zestaw rozszerzeń iEXT, które udostępniają pełny zestaw MSFT funkcji HoloLens 2 do aplikacji 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 programem Direct3D 11/12 Wydane oficjalne KHR rozszerzenia:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Niezwiązana przestrzeń referencyjna
(środowiska na skalę światową)
MSFT wydane rozszerzenie:
XR_MSFT_unbounded_reference_space
Kotwice przestrzenne

MSFT wydane rozszerzenie:
XR_MSFT_spatial_anchor

MSFT rozszerzenie wydane w środowisku uruchomieniowym 108:(Tylko urządzenie HoloLens 2)
XR_MSFT_spatial_anchor_persistence

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

Tylko urządzenie HoloLens 2

MSFT wydane rozszerzenie:
XR_MSFT_hand_interaction
Artykulacja ręka i siatka ręczna

Tylko urządzenie HoloLens 2

EXT wydane rozszerzenie:
XR_EXT_hand_tracking

MSFT wydane rozszerzenie:
XR_MSFT_hand_tracking_mesh

Spojrzenie oczu

Tylko urządzenie HoloLens 2

EXT wydane rozszerzenie:
XR_EXT_eye_gaze_interaction
przechwytywanie Mixed Reality
(trzeci render z kamery PV)

Tylko urządzenie HoloLens 2

MSFT wydane 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 środowisku uruchomieniowym 104:
XR_MSFT_controller_model
Opis sceny (płaszczyzny, siatki)

Tylko urządzenie HoloLens 2

MSFT rozszerzenie wydane w środowisku uruchomieniowym 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Tryby ponownego projektu warstwy kompozycji
(autoplanar lub reprojection tylko orientacja)
MSFT rozszerzenie wydane w środowisku uruchomieniowym 106:
XR_MSFT_composition_layer_reprojection
Współdziałanie z innymi zestawami SDK Mixed Reality
(na przykład QR)
MSFT wydane rozszerzenie:
XR_MSFT_spatial_graph_bridge
Współdziałanie z interfejsem API platformy UWP CoreWindow
(na przykład w przypadku klawiatury/myszy)
MSFT rozszerzenie wydane w środowisku uruchomieniowym 103:
XR_MSFT_holographic_window_attachment
Współdziałanie ze starszymi interfejsami API winRT Mixed Reality
(na przykład SpatialAnchorTransferManager))

MSFT rozszerzenie wydane w środowisku uruchomieniowym 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 wydane 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 dostawcami EXT lub KHR rozszerzeniami dla wielu z tych obszarów funkcji. Rozszerzenia między dostawcami sprawią, że kod zapisywany dla tych funkcji będzie przenośny dla dostawców środowiska uruchomieniowego, podobnie jak w przypadku podstawowej specyfikacji.

Gdzie można użyć biblioteki OpenXR?

Zrzut ekranu przedstawiający grę Minecraft przez użytkownika ubranego w zestaw słuchawkowy 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 nowy zestaw słuchawkowy 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 urządzeń HoloLens 2 i Windows Mixed Reality to Unity 2020.3 LTS z wtyczką Mixed Reality OpenXR. Ta wtyczka obejmuje obsługę rozszerzeń OpenXR, które oświetlają pełne możliwości zestawów słuchawkowych HoloLens 2 i 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 aparatu Unity 2021.3 LTS, platforma OpenXR będzie jedynym obsługiwanym zapleczem aparatu Unity przeznaczonym dla urządzeń HoloLens 2 i zestawów nagłownych 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 urządzeń HoloLens 2, Windows Mixed Reality i innych zestawów słuchawkowych VR dla komputerów stacjonarnych 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, rozświetlając pełny zestaw funkcji urządzeń 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żesz opracowywać przy użyciu biblioteki OpenXR na urządzeniu HoloLens 2 lub Windows Mixed Reality immersywny zestaw słuchawkowy VR na pulpicie. Jeśli nie masz dostępu do zestawu słuchawkowego, zamiast tego możesz użyć emulatora urządzenia HoloLens 2 lub symulatora Windows Mixed Reality.

Aby rozpocząć tworzenie aplikacji OpenXR dla urządzeń HoloLens 2 lub Windows Mixed Reality zestawów słuchawkowych VR, 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ż