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.
- Eksperymentalne rozszerzenia dostawcy (na przykład
- 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 |
Niezwiązana przestrzeń referencyjna (środowiska na skalę światową) |
MSFT wydano rozszerzenie:XR_MSFT_unbounded_reference_space |
Kotwice przestrzenne |
|
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 |
|
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 )) |
|
Inne rozszerzenia między dostawcami | Wydane oficjalne
|
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?
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: