OpenXR

OpenXR logo

OpenXR to otwarty standard interfejsu API bez opłat licencyjnych, który zapewnia aparatom natywny dostęp do wielu urządzeń w całym spektrum rzeczywistości mieszanej.

Możesz programować przy użyciu technologii OpenXR na HoloLens 2 lub Windows Mixed Reality immersyjnego zestawu VR na pulpicie. Jeśli nie masz dostępu do zestawu nagłownego, możesz zamiast tego użyć HoloLens 2 Emulator lub Windows Mixed Reality Simulator.

Dlaczego warto wybrać OpenXR?

Za pomocą technologii OpenXR można tworzyć aparaty, które są ukierunkowane zarówno na urządzenia holograficzne, takie jak HoloLens 2, jak immersywne urządzenia VR, takie jak Windows Mixed Reality nagłowne dla komputerów stacjonarnych. Funkcja OpenXR umożliwia pisanie kodu, który jest następnie przenośny na wielu różnych platformach sprzętowych.

Interfejs API OpenXR używa modułu ładującego, aby połączyć aplikację bezpośrednio z natywną obsługą platformy zestawu nagłownego. Użytkownicy końcowi mogą uzyskać maksymalną wydajność i minimalne opóźnienie, niezależnie od tego, czy Windows Mixed Reality czy dowolny inny zestaw nagłowny.

Co to jest OpenXR?

Interfejs API OpenXR udostępnia podstawowe funkcje przewidywania ułożenia, chronometrażu ramek i przestrzennych danych wejściowych, które są potrzebne do tworzenia aparatu, który może być ukierunkowany zarówno na urządzenia holograficzne, jak i immersyjne.

Aby dowiedzieć się więcej na temat interfejsu API OpenXR, zapoznaj się ze specyfikacją OpenXR 1.0, przewodnikiem po interfejsie APIi szybkim przewodnikiem. Aby uzyskać więcej informacji, zobacz stronę systemu OpenXR w ronos.

Aby korzystać z pełnego zestawu funkcji systemu 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ęki, śledzenie oczu, mapowanie przestrzenne i kotwice przestrzenne. Aby uzyskać więcej informacji, zobacz sekcję Harmonogram działania poniżej na temat rozszerzeń, które będą wkrótce w tym roku.

OpenXR nie jest aparatem rzeczywistości mieszanej. Zamiast tego technologia OpenXR umożliwia aparatom, np. Unity i Unreal, pisanie przenośnego kodu raz, który może następnie uzyskać dostęp do natywnych funkcji platformy urządzenia holograficznego lub immersyjnego użytkownika, niezależnie od tego, który dostawca skonsumuje platformę.

Harmonogram działania

Specyfikacja OpenXR definiuje mechanizm rozszerzenia, który umożliwia implementatorom środowiska uruchomieniowego udostępnianie dodatkowych funkcji wykraczających poza podstawowe funkcje zdefiniowane w podstawowej specyfikacji OpenXR 1.0.

Istnieją trzy rodzaje rozszerzeń OpenXR:

  • Rozszerzenia dostawcy (na przykład MSFT ): umożliwia innowacje dla per-vendor w zakresie funkcji sprzętu lub oprogramowania. Każdy dostawca środowiska uruchomieniowego może w dowolnym momencie wprowadzić i wysłać rozszerzenie dostawcy.
    • Eksperymentalne rozszerzenia dostawcy (na przykład MSFT_preview ): Eksperymentalne rozszerzenia dostawców w wersji zapoznawczej w celu zebrania opinii. MSFT_preview Rozszerzenia są tylko dla urządzeń dewelopera i zostaną usunięte, gdy rzeczywiste rozszerzenie zostanie nadane. Aby poeksperymentować z nimi, możesz włączyć rozszerzenia w wersji zapoznawczej na urządzeniu dewelopera.
  • Rozszerzenia dla wielu EXT dostawców: rozszerzenia dla wielu dostawców, które definiuje i implementuje wiele firm. Grupy zainteresowanych firm mogą w dowolnym momencie wprowadzać rozszerzenia EXT.
  • Oficjalne KHR rozszerzenia: Oficjalne rozszerzenia Wronos, które są częścią podstawowej wersji specyfikacji. Rozszerzenia KHR są objęte taką samą licencją jak podstawowa specyfikacja.

Środowisko Windows Mixed Reality OpenXR runtime obsługuje zestaw rozszerzeń i , które zawierają pełny zestaw funkcji HoloLens 2 do aplikacji MSFT EXT OpenXR:

Obszar funkcji Dostępność rozszerzenia
Systemy i sesje Podstawowa specyfikacja openXR 1.0:
XrInstance, XrSystemId, XrSession
Przestrzenie referencyjne (widok, lokalny, etap) Podstawowa specyfikacja openXR 1.0:
XrSpace
Wyświetlanie konfiguracji (mono, stereo) Podstawowa specyfikacja openXR 1.0:
XrView...
Swapchains + chronometraż klatek Podstawowa specyfikacja openXR 1.0:
XrSwapchain... + xrWaitFrame
Warstwy kompozycji
(projekcja, czworokąt)
Podstawowa specyfikacja openXR 1.0:
XrCompositionLayer... + xrEndFrame
Dane wejściowe i haptyka Podstawowa specyfikacja openXR 1.0:
XrAction...
Integracja direct3D 11 Wydano KHR oficjalne rozszerzenie:
XR_KHR_D3D11_enable
Integracja Direct3D 12 Wydano KHR oficjalne rozszerzenie:
XR_KHR_D3D12_enable
Niepowiązana przestrzeń
referencyjna (środowisko w skali światowej)
MSFT wydane rozszerzenie:
XR_MSFT_unbounded_reference_space
Kotwice przestrzenne

MSFT wydane rozszerzenie:
XR_MSFT_spatial_anchor

MSFT_previewrozszerzenie w środowisku uruchomieniowym w wersji zapoznawczej 107:
XR_MSFT_spatial_anchor_persistence_preview

Interakcja
z rękami (ułożenie cel/cel, naciśnięcie w powietrzu, ogarnięcie)

HoloLens tylko 2

MSFT wydane rozszerzenie:
XR_MSFT_hand_interaction
Układ ręki i siatka rąk

HoloLens tylko 2

EXT wydane rozszerzenie:
XR_EXT_hand_tracking

MSFT wydane rozszerzenie:
XR_MSFT_hand_tracking_mesh
Spojrzenie na oko

HoloLens tylko 2

EXT wydane rozszerzenie:
XR_EXT_eye_gaze_interaction
Przechwytywanie rzeczywistości mieszanej
(trzecie renderowanie z kamery PV)

HoloLens tylko 2

MSFT wydane rozszerzenia:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interop with other Mixed Reality SDKs
(na przykład QR)

MSFT wydane rozszerzenie:
XR_MSFT_spatial_graph_bridge

MSFT rozszerzenie wydane w środowisku uruchomieniowym 105:
XR_MSFT_perception_anchor_interop

Interop with UWP CoreWindow API
(na przykład dla klawiatury/myszy)
MSFT rozszerzenie wydane w środowisku uruchomieniowym 103:
XR_MSFT_holographic_window_attachment
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
Zrozumienie sceny (płaszczyzny, siatki)

HoloLens tylko 2

MSFT rozszerzenie wydane w środowisku uruchomieniowym 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization

Tryby reprojekcji warstwy kompozycji
(reprojekcja autoplanarna lub tylko orientacja)
MSFT rozszerzenie wydane w środowisku uruchomieniowym 106:
XR_MSFT_composition_layer_reprojection
Inne rozszerzenia dla wielu dostawców

Wydano KHR oficjalne 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 dostawcy, firma Microsoft i inni dostawcy środowiska uruchomieniowego OpenXR współpracują ze sobą w celu projektowania rozszerzeń dla wielu dostawców lub rozszerzeń dla wielu z tych obszarów MSFT EXT KHR funkcji. Rozszerzenia między dostawcami sprawią, że kod pisany dla tych funkcji będzie przenośny między dostawcami środowiska uruchomieniowego, tak jak w przypadku podstawowej specyfikacji.

Gdzie można używać openXR?

Zrzut ekranu Minecraft przez użytkownika w zestawie nagłownym rzeczywistości mieszanej

Minecraft renderDragon został wbudowany w obsługę pulpitu VR przy użyciu technologii OpenXR!

Firma Microsoft współpracuje z platformami Unity i Epic Games w celu zapewnienia, że przyszłość rzeczywistości mieszanej jest otwarta, nie tylko w przypadku wersji HoloLens 2, ale w całym zakresie pc VR, w tym nowego zestawu nagłownego Reverb G2firmy HP. Technologia OpenXR obsługuje wirtualną rzeczywistość wirtualną dla ważnych tytułów dostępnych obecnie przez wiele dostawców, takich jak Minecraft i Microsoft Flight Simulator! Aby uzyskać więcej informacji na temat tworzenia aplikacji HoloLens (1. generacji), zobacz informacje o wersji.

Aby dowiedzieć się, jak rozpocząć pracę z platformą OpenXR w aucie Unity, unreal engine lub własnym silniku, przeczytaj dalej!

OpenXR w a unity

Bieżąca zalecana przez firmę Microsoft konfiguracja aparatu Unity na HoloLens 2 i Windows Mixed Reality to Unity 2020.3 LTS z najnowszą Mixed Reality OpenXR. Ta wtyczka obejmuje obsługę rozszerzeń OpenXR, które oświetlają pełne możliwości zestawów nagłownych HoloLens 2i Windows Mixed Reality, w tym śledzenie rąk/oczu, kotwic przestrzennych i kontrolerów HP Reverb G2. MRTK-Unity obsługuje funkcję OpenXR od mrTK 2.7. Aby uzyskać więcej informacji na temat rozpoczynania pracy z platformą Unity 2020 i openXR, zobacz Choosing a Unity version and XR plugin (Wybieranie wersji aparatu Unity i wtyczki XR).

Jeśli opracowujesz aplikacje dla HoloLens (1. generacji), musisz nadal używać aparatu Unity 2019.4 LTS ze starszymi zapleczami interfejsu API WinRT. Jeśli celem jest nowy kontroler HP Reverb G2 w aplikacji aparatu Unity 2019, zobacz naszą dokumenty wejściowe hp reverb G2.

Począwszy od aparatu Unity 2021.2, openXR będzie jedynym obsługiwanym zaplecza aparatu Unity przeznaczonym do HoloLens 2 i Windows Mixed Reality nagłownych.

OpenXR w unreal engine

Unreal Engine 4.23 to pierwsza główna wersja aparatu do obsługi wersji zapoznawczej openXR 1.0! Teraz w programie Unreal Engine 4.26 obsługa HoloLens 2, Windows Mixed Reality i innych stacjonarnych zestawów VR jest dostępna za pośrednictwem wbudowanej obsługi technologii OpenXR aparatu Unreal Engine. Unreal Engine 4.26 obsługuje również wtyczkę rozszerzenia OpenXRfirmy Microsoft, umożliwiając interakcję z dłonią i obsługę kontrolera HP Reverb G2, oświetlają pełny zestaw funkcji zestawów nagłownych HoloLens 2i Windows Mixed Reality. Program Unreal Engine 4.26 jest obecnie dostępny w aplikacji Epic Games Launcher,a program MRTK-Unreal 0.12 obsługujący projekty OpenXR.

OpenXR do tworzenia aplikacji natywnych

Możesz programować przy użyciu technologii OpenXR na HoloLens 2 lub Windows Mixed Reality immersyjnego zestawu VR na pulpicie. Jeśli nie masz dostępu do zestawu nagłownego, możesz zamiast tego użyć HoloLens 2 Emulator lub Windows Mixed Reality Simulator.

Aby rozpocząć tworzenie aplikacji OpenXR dla HoloLens 2 lub Windows Mixed Reality VR, zobacz jak rozpocząć tworzenie rozwiązań OpenXR.

Aby uzyskać przewodnik po wszystkich głównych składnikach interfejsu API OpenXR oraz przykłady rzeczywistych aplikacji korzystających z platformy OpenXR dzisiaj, zapoznaj się z tym 60-minutowym wideo z przewodnikiem:

Zobacz też