Сборка с использованием поддерживаемых расширений OpenXR.

Применимые устройства XR
Данное руководство поможет вам создавать приложения для устройств XR такого типа.
XR-гарнитуры
Проводные XR-очки

Android XR поддерживает OpenXR через спецификацию OpenXR 1.1 и длинный список расширений от сторонних разработчиков. Использование этих расширений обеспечивает привычный опыт разработки для XR. Для некоторых из этих возможностей требуются разрешения среды выполнения Android . Если вы хотите разрабатывать приложения непосредственно на основе API OpenXR, необходимые заголовочные файлы можно найти в репозитории jetpack-xr-natives .

Расширения поставщика Android XR

Название расширения

Описание

Версия пространственного API

XR_ANDROID_anchor_sharing_export

Якоря, созданные приложением с помощью XR_ANDROID_trackables , XR_EXT_spatial_anchor и XR_ANDROID_spatial_anchor_space , привязаны к конкретной сессии и, следовательно, не видны другим приложениям. Это расширение позволяет приложениям совместно использовать якоря с другими запущенными приложениями.

v1

XR_ANDROID_body_tracking

Использует обратную кинематику для определения положения тела на основе положения головы и рук.

Разрешения: Body Tracking

v2

XR_ANDROID_composition_layer_passthrough_mesh

Для устройств, поддерживающих несколько режимов смешивания окружения.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

Это расширение позволяет приложению запрашивать карты глубины реального окружения вокруг гарнитуры и определять поддерживаемые разрешения глубины при создании изображения.

Права доступа: SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_device_anchor_persistence

Это расширение позволяет приложению сохранять свои данные.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_enumerate_system_extension_properties

Это расширение позволяет приложениям определять, какие расширения поддерживаются текущей конфигурацией системы.

v3

XR_ANDROID_eye_tracking

Это расширение позволяет приложениям получать информацию о положении и ориентации глаз пользователя, а также о состоянии отслеживания взгляда.

Права доступа: EYE_TRACKING_FINE

v1

XR_ANDROID_face_tracking

Это расширение позволяет приложениям получать веса форм смешивания и отображать выражения лица в XR-среде.

Разрешения: FACE_TRACKING

v1

XR_ANDROID_face_tracking_data_source

Это расширение позволяет приложениям получать данные отслеживания лиц из нескольких источников.

Права доступа: FACE_TRACKING , RECORD_AUDIO

v3

XR_ANDROID_hand_mesh

Это расширение позволяет отслеживать движения рук, используя динамическую сетку движений руки.

Права доступа: HAND_TRACKING

v1

XR_ANDROID_light_estimation

Это расширение позволяет приложению запрашивать данные, отражающие освещение реального окружения вокруг гарнитуры.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_light_estimation_cubemap

Это расширение основано на базовом расширении XR_ANDROID_light_estimation .

Права доступа: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_mouse_interaction

Это расширение предоставляет XrPath для получения ввода с мыши и определяет одну из часто используемых поз действий для пользовательских профилей мыши, включая как мыши, так и трекпады.

v1

XR_ANDROID_passthrough_camera_state

Для запуска камеры, передающей данные, может потребоваться время, и она может быть недоступна сразу.

v1

XR_ANDROID_performance_metrics

Это расширение предоставляет API для перечисления и запроса различных счетчиков показателей производительности текущего XR-устройства.

v1

XR_ANDROID_raycast

Это расширение позволяет приложению выполнять трассировку лучей по отслеживаемым объектам в окружающей среде.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

Это расширение позволяет среде выполнения уведомлять приложение об изменении рекомендуемого разрешения.

v1

XR_ANDROID_recommended_settings

В среде пользователя по умолчанию могут находиться различные состояния, созданные с помощью комбинации режима смешения и способа ввода.

v1

XR_ANDROID_scene_meshing

Данное расширение предназначено для предоставления моделей, которые приблизительно представляют физические объекты в окружении пользователя.

v1

XR_ANDROID_spatial_anchor_space

Функция xrCreateSpatialAnchorEXT , определенная в расширении XR_EXT_spatial_anchor позволяет приложениям создавать пространственные якоря, представляя их с помощью дескриптора XrSpatialEntityEXT .

В отличие от них, данное расширение создает пространственные привязки, которые представлены дескриптором XrSpace .

Права доступа: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

Это расширение обеспечивает возможность отслеживания аннотаций для расширения XR_EXT_spatial_entity , позволяя отслеживать различные аннотации в сцене. Оно дает приложениям возможность накладывать наложения на физические или виртуальные объекты, определенные ссылками во время выполнения.

Права доступа: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_component_subsumed_by

Это расширение основано на XR_EXT_spatial_entity и предоставляет новый компонент для XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT , позволяющий использовать XrSpatialEntityIdEXT , который включает в себя текущий объект.

Права доступа: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_discovery_raycast

Это расширение основано на XR_EXT_spatial_entity и предоставляет функциональность трассировки лучей для существующих пространственных возможностей.

Права доступа: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_entity_bound_anchor

Это расширение позволяет приложениям создавать и прикреплять привязки к пространственным объектам.

Права доступа: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_object_tracking

Это расширение основано на XR_EXT_spatial_entity и определяет пространственные возможности для отслеживания набора предопределенных физических объектов без необходимости ввода данных из приложения.

Права доступа: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables

Это расширение позволяет приложению получать доступ к отслеживаемым объектам из физической среды.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

Это расширение позволяет отслеживать плоские изображения в соответствии с заданными наборами входных эталонных изображений.

Права доступа: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables_marker

Это расширение обеспечивает отслеживание физических маркеров.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_object

Это расширение обеспечивает отслеживание физических объектов.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_qr_code

Это расширение позволяет отслеживать физические QR-коды и декодировать данные QR-кодов.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

Это расширение позволяет приложениям создавать пространство ссылок XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID .

v1

Сторонние расширения

Название расширения

Описание

Версия пространственного API

XR_MND_headless

Некоторым приложениям может потребоваться доступ к устройствам взаимодействия с XR без отображения какого-либо графического контента на дисплее или дисплеях.

v1

XR_KHR_binding_modification

Это расширение добавляет необязательную структуру, которую можно включить в цепочку XrInteractionProfileSuggestedBinding::next , передаваемую в xrSuggestInteractionProfileBindings чтобы указать дополнительную информацию для изменения поведения привязки по умолчанию.

v1

XR_EXT_debug_utils

Из-за особенностей интерфейса OpenXR разработчику и приложению доступно очень мало информации об ошибках.

v1

XR_EXT_hand_tracking

Это расширение позволяет приложениям определять местоположение отдельных суставов при отслеживании движений рук.

Права доступа: HAND_TRACKING

v1

XR_EXT_performance_settings

Это расширение определяет API, позволяющий приложению передавать подсказки по производительности среде выполнения, а среде выполнения — отправлять уведомления о производительности обратно приложению. Это позволяет обеим сторонам найти оптимальный компромисс между необходимой производительностью ЦП и ГП, теплоотдачей и стабильно хорошим пользовательским интерфейсом на протяжении всей сессии.

v1

XR_FB_display_refresh_rate

На платформах, поддерживающих динамическую регулировку частоты обновления дисплея.

v1

XR_FB_swapchain_update_state

Это расширение позволяет приложению изменять и запрашивать определенное изменяемое состояние, связанное с цепочкой обменов.

v1

XR_FB_foveation

Фовеация в контексте XR — это метод рендеринга, позволяющий отображать область изображения вблизи фокусной точки или фовеи глаза с более высоким разрешением, чем области на периферии.

v1

XR_FB_foveation_configuration

На HMD-устройствах Facebook разработчики могут создавать профили фовеации, генерируемые средой выполнения, для учета оптических свойств и характеристик.

v1

XR_FB_foveation_vulkan

Для применения графического API Vulkan к цепочке обмена необходимо приложить изображение, чтобы создать эффект фовеации.

v1

XR_FB_space_warp

Это расширение обеспечивает поддержку для включения технологии искривления пространства в приложениях.

v1

XR_KHR_opengl_es_enable

Это расширение должно предоставляться средами выполнения, поддерживающими приложения, использующие API OpenGL ES для рендеринга.

v1

XR_KHR_android_create_instance

Когда приложение создает объект XrInstance в системах Android.

v1

XR_KHR_android_surface_swapchain

В XR-среде часто встречается просмотр видеопотока.

v1

XR_KHR_android_thread_settings

Для комфортной работы в XR-среде важно, чтобы приложения быстро и стабильно передавали кадры.

v1

XR_KHR_composition_layer_color_scale_bias

Цветовая шкала и смещение применяются к цвету слоя во время композиции после его преобразования в предварительно умноженное альфа-каналное представление.

v1

XR_KHR_composition_layer_cube

Это расширение добавляет дополнительный тип слоя, позволяющий осуществлять прямую выборку данных из кубических карт.

v1

XR_KHR_composition_layer_cylinder

Это расширение добавляет дополнительный тип слоя, в котором среда выполнения XR должна наложить текстуру, полученную из цепочки обменов, на внутреннюю поверхность цилиндрической секции. Это можно представить примерно так же, как выглядит изогнутый экран телевизора для зрителя.

v1

XR_KHR_composition_layer_depth

Это расширение определяет дополнительный тип слоя, который позволяет приложениям передавать изображения глубины вместе с цветными изображениями в проекционных слоях.

v1

XR_KHR_composition_layer_equirect

Это расширение добавляет дополнительный тип слоя, в котором среда выполнения XR должна отображать эквиректакулярное закодированное изображение, полученное из цепочки обменов, на внутреннюю поверхность сферы.

v1

XR_KHR_composition_layer_equirect2

Это расширение добавляет дополнительный тип слоя, в котором среда выполнения XR должна отображать эквиректакулярное закодированное изображение, полученное из цепочки обменов, на внутреннюю поверхность сферы.

Это расширение использует другую параметризацию, более соответствующую формулировке XR_KHR_composition_layer_cylinder , но функционально эквивалентно XR_KHR_composition_layer_equirect .

v1

XR_KHR_convert_timespec_time

Это расширение предоставляет две функции для преобразования между монотонным временем timespec и XrTime .

v1

XR_KHR_vulkan_enable

Это расширение позволяет использовать графический API Vulkan в среде выполнения OpenXR.

v1

XR_KHR_vulkan_enable2

Это расширение позволяет использовать графический API Vulkan в среде выполнения OpenXR.

v1

XR_KHR_loader_init

На некоторых платформах перед загрузкой необходимо инициализировать загрузчик с параметрами, специфичными для данной платформы.

v1

XR_KHR_loader_init_android

В Android некоторые реализации загрузчика требуют от приложения предоставления дополнительной информации при инициализации.

v1

XR_KHR_swapchain_usage_input_attachment_bit

Это расширение позволяет приложению указывать, что образы свопчейнов должны создаваться таким образом, чтобы их можно было использовать в качестве входных вложений. На момент написания этой статьи данный фрагмент кода затрагивает только свопчейны Vulkan.

v1

XR_EXT_dpad_binding

Это расширение позволяет приложению привязывать одно или несколько цифровых действий к сенсорной панели или джойстику, как если бы это был обычный D-pad, путем определения дополнительных путей к компонентам, для которых будут предложены варианты привязки.

v1

XR_EXT_uuid

Это расширение определяет универсальный уникальный идентификатор, соответствующий RFC 4122.

v1

XR_FB_composition_layer_depth_test

Это расширение позволяет создавать слои с проверкой глубины.

v1

XR_EXT_eye_gaze_interaction

Это расширение предоставляет XrPath для получения данных о направлении взгляда от устройства отслеживания взгляда, что позволяет осуществлять взаимодействие с помощью взгляда.

Права доступа: EYE_TRACKING_FINE

v1

XR_EXT_hand_interaction

Это расширение определяет четыре часто используемых положения для всех профилей взаимодействия пользователя с рукой, включая как устройства отслеживания движений рук, так и устройства управления движением.

v1

XR_KHR_visibility_mask

Это расширение поддерживает предоставление маски отрисовки для каждого вида в приложениях.

v1

XR_META_foveation_eye_tracked

При отслеживании взгляда в фовеальной области отображается меньшая плотность пикселей на периферии поля зрения пользователя.

Права доступа: EYE_TRACKING_FINE

v1

XR_FB_hand_tracking_aim

Расширение XR_EXT_hand_tracking предоставляет список положений суставов кисти, которые отражают текущую конфигурацию отслеживаемых рук. Это расширение добавляет уровень распознавания жестов, используемый системой.

Права доступа: HAND_TRACKING

v1

XR_EXT_palm_pose

Это расширение определяет новый «стандартный идентификатор позы» для профилей взаимодействия, названный «palm_ext».

v1

XR_VARJO_foveated_rendering

Наушники Varjo обеспечивают чрезвычайно высокую плотность пикселей в центральной части дисплея.

Права доступа: EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

Это расширение добавляет новый тип конфигурации представления — XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO — в класс XrViewConfigurationType , который может возвращаться функцией xrEnumerateViewConfigurations и указывать, что среда выполнения поддерживает 4 области просмотра.

v1

XR_META_vulkan_swapchain_create_info

Используя это расширение, приложение на основе Vulkan может передавать дополнительные VkImageCreateFlags или VkImageUsageFlags , связывая структуру XrVulkanSwapchainCreateInfoMETA со структурой XrSwapchainCreateInfo при вызове функции xrCreateSwapchain .

v1

XR_FB_hand_tracking_mesh

Расширение XR_EXT_hand_tracking предоставляет список положений суставов кисти, но не имеет механизма для рендеринга анимированной сетки кисти.

Права доступа: HAND_TRACKING

v1

XR_FB_composition_layer_image_layout

Данное расширение не определяет новый тип слоя композиции.

v1

XR_KHR_maintenance1

XR_KHR_maintenance1 добавлен ряд незначительных функций, которые были намеренно исключены или упущены из виду в первоначальном релизе OpenXR 1.0.

v1

XR_FB_composition_layer_settings

Это расширение позволяет приложениям запрашивать использование таких параметров обработки, как повышение резкости или суперсэмплинг, на композиционном слое.

v1

XR_KHR_locate_spaces

Данное расширение представляет функцию xrLocateSpacesKHR.

v1

XR_EXT_local_floor

Основная спецификация OpenXR содержит два типа эталонного пространства XrSpace привязанных ко всему миру, в XrReferenceSpaceType .

v1

XR_EXT_spatial_marker_tracking

Это расширение основано на XR_EXT_spatial_entity и позволяет приложениям обнаруживать и отслеживать маркеры в окружающей среде.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_persistence

Это расширение позволяет приложениям обнаруживать и сопоставлять пространственные объекты в рамках различных сессий приложения.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_anchor

Это расширение основано на XR_EXT_spatial_entity и позволяет приложениям создавать пространственные привязки.

Права доступа: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_plane_tracking

Это расширение основано на XR_EXT_spatial_entity и определяет возможности отслеживания плоскости в пространственном пространстве для структуры пространственных объектов.

v1

XR_EXT_spatial_entity

Это расширение знакомит с концепциями и основами понимания сцены и пространственного мышления в OpenXR.

v1

XR_EXT_future

В системах XR существуют определенные операции, которые выполняются длительное время и вряд ли завершаются в рамках обычного цикла обработки кадров.

v1

XR_FB_color_space

В устройствах XR может использоваться цветовое пространство, отличающееся от того, что используется во многих мониторах при разработке.

v1

XR_EXT_composition_layer_inverted_alpha

Это расширение предоставляет флаг, который при применении к слою композиции инвертирует интерпретацию значения альфа-канала в изображениях цепочки обмена этого слоя.

v1

XR_EXT_frame_synthesis

Это расширение обеспечивает поддержку синтеза кадров в приложениях на основе дополнительных данных, предоставляемых приложением.

v3

XR_QCOM_trackables_image_operations

Предоставляет возможности отслеживания изображений Qualcomm для отслеживаемых объектов.

v3

XR_QCOM_trackables_qr_code_operations

Обеспечивает отслеживание с помощью QR-кодов Qualcomm для отслеживаемых объектов.

v3

XR_EXT_user_presence

Это расширение добавляет новое событие для уведомления о том, когда система обнаружила изменение статуса присутствия пользователя.

v3

XR_KHR_extended_struct_name_lengths

Это расширение увеличивает максимальный размер имен структур и предоставляет новую функцию для доступа к этим новым расширенным именам.

v3

XR_EXT_interaction_profile_battery_state_display

XR_EXT_interaction_profile_battery_state_display предоставляет приложениям механизм для запроса к среде выполнения информации о состоянии батареи устройств, используемых с профилями взаимодействия.

v3


OpenXR™ и логотип OpenXR являются товарными знаками, принадлежащими компании The Khronos Group Inc. и зарегистрированными в качестве товарных знаков в Китае, Европейском Союзе, Японии и Соединенном Королевстве.