Tworzenie aplikacji z obsługiwanymi rozszerzeniami OpenXR

Odpowiednie urządzenia XR
Te wskazówki pomogą Ci tworzyć rozwiązania na te typy urządzeń XR.
Gogle XR
Okulary XR z przewodem

Android XR obsługuje OpenXR zgodnie ze specyfikacją OpenXR 1.1 i długą listą rozszerzeń zewnętrznych dostawców. Korzystanie z tych rozszerzeń zapewnia znajome środowisko podczas tworzenia aplikacji na XR. Niektóre z tych funkcji wymagają uprawnień czasu działania na Androidzie. Jeśli chcesz tworzyć aplikacje bezpośrednio na podstawie interfejsów OpenXR API, wymagane pliki nagłówkowe znajdziesz w repozytorium jetpack-xr-natives.

Rozszerzenia dostawcy Androida XR

Nazwa rozszerzenia

Opis

Wersja interfejsu Spatial API

XR_ANDROID_anchor_sharing_export

Kotwice utworzone przez aplikację za pomocą funkcji XR_ANDROID_trackables, XR_EXT_spatial_anchorXR_ANDROID_spatial_anchor_space są powiązane z określoną sesją, więc nie są widoczne dla innych aplikacji. To rozszerzenie umożliwia aplikacjom udostępnianie kotwic innym działającym aplikacjom.

v1

XR_ANDROID_body_tracking

Wykorzystuje kinematykę odwrotną do określania pozycji ciała na podstawie pozycji głowy i dłoni.

Uprawnienia: Body Tracking

v2

XR_ANDROID_composition_layer_passthrough_mesh

W przypadku urządzeń obsługujących wiele trybów mieszania środowiska.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

To rozszerzenie umożliwia aplikacji żądanie map głębi środowiska rzeczywistego wokół zestawu słuchawkowego i sprawdzanie obsługiwanych rozdzielczości głębi podczas tworzenia.

Uprawnienia: SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_device_anchor_persistence

To rozszerzenie umożliwia utrzymanie aplikacji.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_enumerate_system_extension_properties

To rozszerzenie umożliwia aplikacjom określanie, które rozszerzenia są obsługiwane przez bieżącą konfigurację systemu.

v3

XR_ANDROID_eye_tracking

To rozszerzenie umożliwia aplikacjom uzyskiwanie informacji o położeniu i orientacji oczu użytkownika, a także o stanie śledzenia wzroku.

Uprawnienia: EYE_TRACKING_FINE

v1

XR_ANDROID_face_tracking

To rozszerzenie umożliwia aplikacjom uzyskiwanie wag kształtów mieszanych i renderowanie wyrazów twarzy w środowiskach XR.

Uprawnienia: FACE_TRACKING

v1

XR_ANDROID_face_tracking_data_source

To rozszerzenie umożliwia aplikacjom pobieranie danych śledzenia twarzy z wielu źródeł danych.

Uprawnienia: FACE_TRACKING, RECORD_AUDIO

v3

XR_ANDROID_hand_mesh

To rozszerzenie umożliwia śledzenie rąk za pomocą dynamicznej siatki.

Uprawnienia: HAND_TRACKING

v1

XR_ANDROID_light_estimation

To rozszerzenie umożliwia aplikacji żądanie danych reprezentujących oświetlenie otoczenia w świecie rzeczywistym wokół zestawu słuchawkowego.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_light_estimation_cubemap

To rozszerzenie jest oparte na podstawowym rozszerzeniu XR_ANDROID_light_estimation.

Uprawnienia: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_mouse_interaction

To rozszerzenie zapewnia XrPath do uzyskiwania danych wejściowych z myszy i określa jedną z najczęściej używanych pozycji działania w przypadku profili myszy użytkownika, w tym urządzeń wskazujących i trackpadów.

v1

XR_ANDROID_passthrough_camera_state

Uruchomienie kamery podglądu może zająć trochę czasu i nie będzie ona od razu dostępna.

v1

XR_ANDROID_performance_metrics

To rozszerzenie udostępnia interfejsy API do wyliczania i wykonywania zapytań dotyczących różnych liczników danych o wydajności bieżącego urządzenia XR.

v1

XR_ANDROID_raycast

To rozszerzenie umożliwia aplikacji wykonywanie śledzenia promieni w odniesieniu do obiektów śledzonych w środowisku.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

To rozszerzenie umożliwia środowisku wykonawczemu powiadamianie aplikacji o zmianie zalecanej rozdzielczości.

v1

XR_ANDROID_recommended_settings

Domyślne środowisko użytkownika może być w różnych stanach, w których stosuje się kombinację trybu mieszania i rodzaju danych wejściowych.

v1

XR_ANDROID_scene_meshing

To rozszerzenie ma na celu dostarczanie siatek, które w przybliżeniu reprezentują obiekty fizyczne w otoczeniu użytkownika.

v1

XR_ANDROID_spatial_anchor_space

Funkcja xrCreateSpatialAnchorEXT zdefiniowana w rozszerzeniu XR_EXT_spatial_anchor umożliwia aplikacjom tworzenie kotwic przestrzennych z uchwytem XrSpatialEntityEXT do ich reprezentowania.

To rozszerzenie tworzy natomiast kotwicę przestrzenną reprezentowaną przez uchwyt XrSpace.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

To rozszerzenie umożliwia śledzenie adnotacji w rozszerzeniu XR_EXT_spatial_entity, aby śledzić różne adnotacje w scenie. Umożliwia aplikacjom nakładanie warstw na obiekty fizyczne lub wirtualne zdefiniowane przez odwołania w czasie działania.

Uprawnienia: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_component_subsumed_by

To rozszerzenie opiera się na XR_EXT_spatial_entity i udostępnia nowy komponent dla XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT, który ujawnia XrSpatialEntityIdEXT obejmujący bieżący obiekt.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_discovery_raycast

To rozszerzenie bazuje na XR_EXT_spatial_entity i zapewnia funkcję raycast dla istniejących możliwości przestrzennych.

Uprawnienia: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_entity_bound_anchor

To rozszerzenie umożliwia aplikacjom tworzenie kotwic i dołączanie ich do obiektów przestrzennych.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_object_tracking

To rozszerzenie jest oparte na XR_EXT_spatial_entity i definiuje funkcję przestrzenną do śledzenia zestawu wstępnie zdefiniowanych obiektów fizycznych bez konieczności korzystania z zbioru danych wejściowych z aplikacji.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables

To rozszerzenie umożliwia aplikacji dostęp do obiektów śledzonych w świecie rzeczywistym.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

To rozszerzenie umożliwia śledzenie obrazów płaskich określonych przez zestawy wejściowych obrazów referencyjnych.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables_marker

To rozszerzenie umożliwia śledzenie fizycznych znaczników.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_object

To rozszerzenie umożliwia śledzenie obiektów fizycznych.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_qr_code

To rozszerzenie umożliwia śledzenie fizycznych kodów QR i dekodowanie danych z kodów QR.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

To rozszerzenie umożliwia aplikacjom tworzenie XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID przestrzeni referencyjnej.

v1

Rozszerzenia innych firm

Nazwa rozszerzenia

Opis

Wersja interfejsu Spatial API

XR_MND_headless

Niektóre aplikacje mogą potrzebować dostępu do urządzeń interakcji XR bez wyświetlania treści graficznych na wyświetlaczu lub wyświetlaczach.

v1

XR_KHR_binding_modification

To rozszerzenie dodaje opcjonalną strukturę, którą można uwzględnić w łańcuchu XrInteractionProfileSuggestedBinding::next przekazywanym do funkcji xrSuggestInteractionProfileBindings, aby określić dodatkowe informacje modyfikujące domyślne działanie powiązania.

v1

XR_EXT_debug_utils

Ze względu na charakter interfejsu OpenXR deweloper i aplikacja mają dostęp do bardzo niewielkiej ilości informacji o błędach.

v1

XR_EXT_hand_tracking

To rozszerzenie umożliwia aplikacjom lokalizowanie poszczególnych stawów w danych wejściowych śledzenia rąk.

Uprawnienia: HAND_TRACKING

v1

XR_EXT_performance_settings

To rozszerzenie definiuje interfejs API, który umożliwia aplikacji przekazywanie wskazówek dotyczących wydajności do środowiska wykonawczego, a środowisku wykonawczemu – wysyłanie do aplikacji powiadomień związanych z wydajnością. Dzięki temu obie strony mogą znaleźć odpowiedni kompromis między wymaganą wydajnością procesora i GPU, stabilnością termiczną a stałymi, dobrymi wrażeniami użytkownika podczas całej sesji.

v1

XR_FB_display_refresh_rate

Na platformach, które obsługują dynamiczne dostosowywanie częstotliwości odświeżania wyświetlacza.

v1

XR_FB_swapchain_update_state

To rozszerzenie umożliwia aplikacji modyfikowanie i wykonywanie zapytań dotyczących określonego stanu zmiennego powiązanego z łańcuchem wymiany.

v1

XR_FB_foveation

Foveation w kontekście XR to technika renderowania, która pozwala wyświetlać obszar obrazu w pobliżu punktu ogniskowania lub dołka środkowego oka w wyższej rozdzielczości niż obszary na obrzeżach.

v1

XR_FB_foveation_configuration

Na goglach VR Facebooka deweloperzy mogą tworzyć profile foveation generowane przez środowisko wykonawcze na podstawie właściwości optycznych i wydajności.

v1

XR_FB_foveation_vulkan

Interfejs graficzny Vulkan wymaga zastosowania obrazu do łańcucha wymiany, aby zastosować wzór foveation.

v1

XR_FB_space_warp

To rozszerzenie umożliwia włączenie technologii space warp w aplikacji.

v1

XR_KHR_opengl_es_enable

To rozszerzenie musi być udostępniane przez środowiska wykonawcze obsługujące aplikacje korzystające z interfejsów API OpenGL ES do renderowania.

v1

XR_KHR_android_create_instance

Gdy aplikacja tworzy obiekt XrInstance w systemach Android.

v1

XR_KHR_android_surface_swapchain

Częstą aktywnością w XR jest wyświetlanie strumienia obrazów.

v1

XR_KHR_android_thread_settings

Aby XR był wygodny w użyciu, aplikacje muszą szybko i konsekwentnie dostarczać klatki.

v1

XR_KHR_composition_layer_color_scale_bias

Skala kolorów i odchylenie są stosowane do koloru warstwy podczas kompozycji, po przekształceniu go w reprezentację z wstępnie pomnożoną wartością alfa.

v1

XR_KHR_composition_layer_cube

To rozszerzenie dodaje dodatkowy typ warstwy, który umożliwia bezpośrednie próbkowanie z map sześciennych.

v1

XR_KHR_composition_layer_cylinder

To rozszerzenie dodaje dodatkowy typ warstwy, w którym środowisko wykonawcze XR musi mapować teksturę pochodzącą z łańcucha wymiany na wewnętrzną stronę sekcji cylindra. Można to sobie wyobrazić podobnie jak zakrzywiony ekran telewizora.

v1

XR_KHR_composition_layer_depth

To rozszerzenie definiuje dodatkowy typ warstwy, który umożliwia aplikacjom przesyłanie obrazów głębi wraz z obrazami kolorowymi w warstwach projekcji.

v1

XR_KHR_composition_layer_equirect

To rozszerzenie dodaje dodatkowy typ warstwy, w którym środowisko wykonawcze XR musi mapować obraz zakodowany w projekcji równopowierzchniowej pochodzący z łańcucha wymiany na wnętrze sfery.

v1

XR_KHR_composition_layer_equirect2

To rozszerzenie dodaje dodatkowy typ warstwy, w którym środowisko wykonawcze XR musi mapować obraz zakodowany w projekcji równopowierzchniowej pochodzący z łańcucha wymiany na wnętrze sfery.

To rozszerzenie korzysta z innej parametryzacji, która jest bardziej zgodna z formułą XR_KHR_composition_layer_cylinder, ale jest funkcjonalnie równoważna z XR_KHR_composition_layer_equirect.

v1

XR_KHR_convert_timespec_time

To rozszerzenie udostępnia 2 funkcje do konwertowania czasu monotonicznego timespec na XrTime i odwrotnie.

v1

XR_KHR_vulkan_enable

To rozszerzenie umożliwia korzystanie z interfejsu graficznego Vulkan w środowisku wykonawczym OpenXR.

v1

XR_KHR_vulkan_enable2

To rozszerzenie umożliwia korzystanie z interfejsu graficznego Vulkan w środowisku wykonawczym OpenXR.

v1

XR_KHR_loader_init

Na niektórych platformach przed wczytaniem należy zainicjować moduł wczytujący za pomocą parametrów specyficznych dla platformy.

v1

XR_KHR_loader_init_android

W Androidzie niektóre implementacje modułu wczytującego wymagają, aby aplikacja podawała dodatkowe informacje podczas inicjowania.

v1

XR_KHR_swapchain_usage_input_attachment_bit

To rozszerzenie umożliwia aplikacji określenie, że obrazy łańcucha wymiany powinny być tworzone w taki sposób, aby można było ich używać jako załączników wejściowych. W momencie pisania tego artykułu dotyczy to tylko łańcuchów wymiany Vulkan.

v1

XR_EXT_dpad_binding

To rozszerzenie umożliwia aplikacji powiązanie co najmniej 1 działania cyfrowego z touchpadem lub drążkiem, tak jakby był on padem kierunkowym, poprzez zdefiniowanie dodatkowych ścieżek komponentów, które będą sugerować powiązania.

v1

XR_EXT_uuid

To rozszerzenie definiuje uniwersalny, unikalny identyfikator zgodny z RFC 4122.

v1

XR_FB_composition_layer_depth_test

To rozszerzenie umożliwia tworzenie warstw z uwzględnieniem głębi.

v1

XR_EXT_eye_gaze_interaction

To rozszerzenie udostępnia XrPath do uzyskiwania danych wejściowych dotyczących kierunku wzroku z urządzenia śledzącego wzrok, co umożliwia interakcje oparte na kierunku wzroku.

Uprawnienia: EYE_TRACKING_FINE

v1

XR_EXT_hand_interaction

To rozszerzenie definiuje 4 często używane pozy działania dla wszystkich profili interakcji z rękami użytkownika, w tym urządzeń śledzących ruch rąk i kontrolerów ruchu.

v1

XR_KHR_visibility_mask

To rozszerzenie umożliwia dostarczanie maski rysowania dla poszczególnych widoków w aplikacjach.

v1

XR_META_foveation_eye_tracked

Renderowanie z fiksacją śledzoną wzrokiem renderuje mniejszą gęstość pikseli na obrzeżach pola widzenia użytkownika.

Uprawnienia: EYE_TRACKING_FINE

v1

XR_FB_hand_tracking_aim

Rozszerzenie XR_EXT_hand_tracking udostępnia listę pozycji stawów dłoni, które reprezentują bieżącą konfigurację śledzonych dłoni. To rozszerzenie dodaje warstwę rozpoznawania gestów, która jest używana przez system.

Uprawnienia: HAND_TRACKING

v1

XR_EXT_palm_pose

To rozszerzenie definiuje nowy „identyfikator standardowej pozycji” dla profili interakcji o nazwie „palm_ext”.

v1

XR_VARJO_foveated_rendering

Gogle Varjo mają wyświetlacze o bardzo dużej gęstości pikseli w środkowej części ekranu.

Uprawnienia: EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

To rozszerzenie dodaje nowy typ konfiguracji widoku – XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO do XrViewConfigurationType, który może być zwracany przez xrEnumerateViewConfigurations, aby wskazać, że środowisko wykonawcze obsługuje 4 obszary wyświetlania.

v1

XR_META_vulkan_swapchain_create_info

Dzięki temu rozszerzeniu aplikacja oparta na Vulkanie może przekazywać dodatkowe elementy VkImageCreateFlags lub VkImageUsageFlags, łącząc strukturę XrVulkanSwapchainCreateInfoMETA ze strukturą XrSwapchainCreateInfo podczas wywoływania funkcji xrCreateSwapchain.

v1

XR_FB_hand_tracking_mesh

Rozszerzenie XR_EXT_hand_tracking zawiera listę pozycji stawów dłoni, ale nie ma mechanizmu renderowania siatki dłoni ze skórą.

Uprawnienia: HAND_TRACKING

v1

XR_FB_composition_layer_image_layout

To rozszerzenie nie definiuje nowego typu warstwy kompozycji.

v1

XR_KHR_maintenance1

XR_KHR_maintenance1 dodaje zbiór pomniejszych funkcji, które zostały celowo pominięte lub przeoczone w pierwotnej wersji OpenXR 1.0.

v1

XR_FB_composition_layer_settings

To rozszerzenie umożliwia aplikacjom żądanie użycia opcji przetwarzania, takich jak wyostrzanie lub nadpróbkowanie, w warstwie kompozycji.

v1

XR_KHR_locate_spaces

To rozszerzenie wprowadza funkcję xrLocateSpacesKHR.

v1

XR_EXT_local_floor

Podstawowa specyfikacja OpenXR zawiera 2 typy przestrzeni odniesienia XrSpace powiązanych ze światem w XrReferenceSpaceType.

v1

XR_EXT_spatial_marker_tracking

To rozszerzenie jest oparte na XR_EXT_spatial_entity i umożliwia aplikacjom wykrywanie i śledzenie markerów w otoczeniu.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_persistence

To rozszerzenie umożliwia aplikacjom wykrywanie i powiązanie ze sobą obiektów przestrzennych w różnych sesjach.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_anchor

To rozszerzenie bazuje na XR_EXT_spatial_entity i umożliwia aplikacjom tworzenie przestrzennych punktów kotwiczenia.

Uprawnienia: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_plane_tracking

To rozszerzenie bazuje na XR_EXT_spatial_entity i określa funkcję śledzenia płaszczyzny w przestrzeni dla platformy encji przestrzennych.

v1

XR_EXT_spatial_entity

To rozszerzenie wprowadza koncepcje i podstawy dotyczące rozumienia sceny i rozumowania przestrzennego w OpenXR.

v1

XR_EXT_future

W systemach XR występują pewne operacje, które trwają długo i nie kończą się w normalnej pętli klatek.

v1

XR_FB_color_space

Urządzenia XR mogą używać przestrzeni kolorów innej niż wiele monitorów używanych podczas tworzenia aplikacji.

v1

XR_EXT_composition_layer_inverted_alpha

To rozszerzenie udostępnia flagę, która po zastosowaniu do warstwy kompozycji odwraca interpretację wartości alfa w obrazach łańcucha wymiany warstwy.

v1

XR_EXT_frame_synthesis

To rozszerzenie umożliwia syntezę klatek w aplikacjach na podstawie dodatkowych danych dostarczonych przez aplikację.

v3

XR_QCOM_trackables_image_operations

Zapewnia operacje śledzenia obrazu Qualcomm dla obiektów śledzonych.

v3

XR_QCOM_trackables_qr_code_operations

Umożliwia śledzenie urządzeń za pomocą kodu QR firmy Qualcomm.

v3

XR_EXT_user_presence

To rozszerzenie wprowadza nowe zdarzenie, które powiadamia o wykryciu przez system zmiany stanu obecności użytkownika.

v3

XR_KHR_extended_struct_name_lengths

To rozszerzenie zwiększa maksymalny rozmiar nazw struktur i udostępnia nową funkcję umożliwiającą dostęp do tych nowych, dłuższych nazw.

v3

XR_EXT_interaction_profile_battery_state_display

XR_EXT_interaction_profile_battery_state_display udostępnia aplikacjom mechanizm wysyłania zapytań do środowiska wykonawczego o informacje o stanie baterii urządzeń używanych z profilami interakcji.

v3


OpenXR™ i logo OpenXR są znakami towarowymi należącymi do The Khronos Group Inc. i są zarejestrowane jako znaki towarowe w Chinach, Unii Europejskiej, Japonii i Wielkiej Brytanii.