Udostępnij za pośrednictwem


OpenXR

Logo OpenXR

OpenXR to otwarty standard interfejsu API bez tantiem od Khronos, który zapewnia aparatom natywny dostęp do wielu urządzeń w spektrum rzeczywistości mieszanej.

Można opracowywać przy użyciu technologii 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, możesz zamiast tego użyć emulatora urządzenia HoloLens 2 lub symulatora windows Mixed Reality.

Dlaczego OpenXR?

Za pomocą technologii OpenXR można tworzyć aparaty przeznaczone dla obu urządzeń holograficznych, takich jak HoloLens 2, i immersyjne urządzenia VR, takie jak zestawy nagłowne Windows Mixed Reality dla komputerów stacjonarnych. Program 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 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ą środowiska Windows Mixed Reality, czy innego zestawu słuchawkowego.

Co to jest OpenXR?

Interfejs API OpenXR udostępnia podstawowe funkcje przewidywania, chronometrażu ram i danych wejściowych przestrzennych potrzebne do utworzenia aparatu, który może być przeznaczony zarówno dla urządzeń holograficznych, jak i immersyjnych.

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 urządzenia HoloLens 2, należy również użyć rozszerzeń OpenXR specyficznych dla wielu dostawców i dostawców. Umożliwiają one takie funkcje jak śledzenie przegubowych rąk, śledzenie oczu, mapowanie przestrzenne i kotwice przestrzenne. Aby uzyskać więcej informacji, zobacz sekcję Harmonogram działania na temat rozszerzeń, które pojawią się jeszcze w tym roku.

OpenXR nie jest aparatem rzeczywistości mieszanej. Zamiast tego 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, czy dostawca zbudował tę platformę.

Plan rozwoju

Specyfikacja openXR definiuje mechanizm rozszerzenia, który umożliwia implementatorom środowiska uruchomieniowego uwidacznianie innych 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 innowacje dla poszczególnych dostawców w zakresie 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_...): eksperymentalne rozszerzenia dostawcy są w wersji zapoznawczej w celu zebrania opinii. XR_MSFTX_... Rozszerzenia są przeznaczone tylko dla urządzeń deweloperskich i są usuwane 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 rdzenia.

Środowisko Uruchomieniowe OpenXR środowiska Windows Mixed Reality obsługuje zestaw MSFT rozszerzeń i EXT , który udostępnia pełny zestaw funkcji HoloLens 2 do aplikacji OpenXR:

Obszar funkcji Dostępność rozszerzenia
Systemy i sesje Specyfikacje rdzeni openXR 1.0:
XrInstance, , XrSystemIdXrSession
Przestrzenie referencyjne (widok, lokalny, etap) Specyfikacje rdzeni openXR 1.0:
XrSpace
Wyświetlanie konfiguracji (mono, stereo) Specyfikacje rdzeni openXR 1.0:
XrView...
Chronometraż ramek swapchains + Specyfikacje rdzeni openXR 1.0:
XrSwapchain... + xrWaitFrame
Warstwy kompozycji
(projekcja, czworokąt)
Specyfikacje rdzeni openXR 1.0:
XrCompositionLayer... + xrEndFrame
Dane wejściowe i haptyczne Specyfikacje 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/pozy celować, naciśnij powietrze, chwytać)

Tylko urządzenie HoloLens 2

MSFT wydane rozszerzenie:
XR_MSFT_hand_interaction
Artykulacja dłoni + siatka ręczna

Tylko urządzenie HoloLens 2

EXT wydane rozszerzenie:
XR_EXT_hand_tracking

MSFT wydane rozszerzenie:
XR_MSFT_hand_tracking_mesh

Spojrzenie na oko

Tylko urządzenie HoloLens 2

EXT wydane rozszerzenie:
XR_EXT_eye_gaze_interaction
Przechwytywanie rzeczywistości mieszanej
(trzeci renderowanie 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
Znacznik sceny (kody QR)

Tylko urządzenie HoloLens 2

MSFT rozszerzenie wydane w środowisku uruchomieniowym 113:
XR_MSFT_scene_marker
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 rzeczywistości mieszanej
(na przykład: QR)
MSFT wydane rozszerzenie:
XR_MSFT_spatial_graph_bridge
Interop with UWP CoreWindow API
(na przykład dla klawiatury/myszy)
MSFT rozszerzenie wydane w środowisku uruchomieniowym 103:
XR_MSFT_holographic_window_attachment
Współdziałanie ze starszymi interfejsami API WinRT rzeczywistości mieszanej
(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 EXT dostawcami lub KHR rozszerzeniami dla wielu z tych obszarów funkcji. Rozszerzenia między dostawcami tworzą kod przeznaczony dla tych funkcji przenośnych dla dostawców środowiska uruchomieniowego, podobnie jak w przypadku podstawowej specyfikacji.

Gdzie można używać biblioteki OpenXR?

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

Nowy aparat RenderDragon Minecraft zbudował 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. OpenXR obsługuje obsługę VR dla wielu dostawców dla głównych tytułów wysyłki dzisiaj, takich jak Minecraft i Microsoft Flight Simulator! Aby uzyskać więcej informacji na temat opracowywania dla urządzenia HoloLens (1. generacji), zobacz informacje o wersji.

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

OpenXR w a środowisku Unity

Bieżąca zalecana przez firmę Microsoft konfiguracja aparatu Unity dla urządzeń HoloLens 2 i programowania w środowisku Windows Mixed Reality to Unity 2020.3 LTS z wtyczką OpenXR rzeczywistości mieszanej. Ta wtyczka obejmuje obsługę rozszerzeń OpenXR, które rozświetlą 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. Środowisko MRTK-Unity obsługuje platformę OpenXR na platformie 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 tworzysz oprogramowanie 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 Unity 2019, zobacz dokumentację wejściową HP Reverb G2.

Począwszy od aparatu Unity 2021.3 LTS, OpenXR jest jedynym obsługiwanym zapleczem aparatu Unity przeznaczonym dla urządzeń HoloLens 2 i zestawów słuchawkowych Windows Mixed Reality.

OpenXR w unreal engine

Unreal Engine 4.23 był pierwszą główną wersją aparatu gry, która udostępnia obsługę wersji zapoznawczej dla platformy 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. Unreal Engine 4.26 obsługuje również wtyczkę rozszerzenia OpenXR firmy Microsoft. Umożliwia to interakcję ręczną i obsługę kontrolera HP Reverb G2, oświetlenie pełnego zestawu funkcji zestawów słuchawkowych HoloLens 2 i 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 programowania natywnego

Można opracowywać przy użyciu technologii 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, możesz zamiast tego użyć emulatora urządzenia HoloLens 2 lub symulatora windows Mixed Reality.

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

Zobacz też