Compila con extensiones OpenXR compatibles

Dispositivos de realidad extendida correspondientes
Esta guía te ayuda a crear experiencias para estos tipos de dispositivos de realidad extendida.
Visores de realidad extendida
Lentes de realidad extendida con cable

Android XR admite OpenXR a través de la especificación de OpenXR 1.1 y una larga lista de extensiones de proveedores externos. El uso de estas extensiones te ofrece esa experiencia familiar cuando desarrollas para XR. Algunas de estas capacidades requieren permisos de tiempo de ejecución de Android. Si deseas compilar directamente en las APIs de OpenXR, puedes encontrar los archivos de encabezado necesarios en el repositorio jetpack-xr-natives.

Extensiones de proveedores de Android XR

Nombre de la extensión

Descripción

Versión de la API de Spatial

XR_ANDROID_anchor_sharing_export

Los anclajes creados por una aplicación a través de XR_ANDROID_trackables, XR_EXT_spatial_anchor y XR_ANDROID_spatial_anchor_space están vinculados a una sesión específica y, por lo tanto, no son visibles para otras aplicaciones. Esta extensión permite que las aplicaciones compartan anclajes con otras aplicaciones en ejecución.

v1

XR_ANDROID_body_tracking

Usa la IK para determinar la posición del cuerpo en función de la posición de la cabeza y las manos.

Permisos: Body Tracking

v2

XR_ANDROID_composition_layer_passthrough_mesh

Para dispositivos que admiten varios modos de combinación del entorno.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

Esta extensión permite que la aplicación solicite mapas de profundidad del entorno del mundo real alrededor del visor y consulte las resoluciones de profundidad admitidas en el momento de la creación.

Permisos: SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_device_anchor_persistence

Esta extensión permite que la aplicación persista.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_enumerate_system_extension_properties

Esta extensión permite que las aplicaciones determinen qué extensiones admite la configuración actual del sistema.

v3

XR_ANDROID_eye_tracking

Esta extensión permite que las aplicaciones obtengan la posición y la orientación de los ojos del usuario, así como el estado del seguimiento de ojos.

Permisos: EYE_TRACKING_FINE

v1

XR_ANDROID_face_tracking

Esta extensión permite que las aplicaciones obtengan pesos de formas de combinación y rendericen expresiones faciales en experiencias de XR.

Permisos: FACE_TRACKING

v1

XR_ANDROID_face_tracking_data_source

Esta extensión permite que las aplicaciones obtengan datos de seguimiento facial de varias fuentes de datos.

Permisos: FACE_TRACKING, RECORD_AUDIO

v3

XR_ANDROID_hand_mesh

Esta extensión habilita las entradas de monitoreo de manos representadas como una malla de mano dinámica.

Permisos: HAND_TRACKING

v1

XR_ANDROID_light_estimation

Esta extensión permite que la aplicación solicite datos que representan la iluminación del entorno del mundo real alrededor del visor.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_light_estimation_cubemap

Esta extensión se basa en la extensión básica XR_ANDROID_light_estimation.

Permisos: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_mouse_interaction

Esta extensión proporciona un XrPath para obtener entrada del mouse y define una pose de acción de uso frecuente para los perfiles de mouse del usuario, incluidos los dispositivos de mouse y los dispositivos de panel táctil.

v1

XR_ANDROID_passthrough_camera_state

La cámara de transferencia puede tardar en iniciarse y es posible que no esté disponible de inmediato.

v1

XR_ANDROID_performance_metrics

Esta extensión proporciona APIs para enumerar y consultar varios contadores de métricas de rendimiento del dispositivo de XR actual.

v1

XR_ANDROID_raycast

Esta extensión permite que la aplicación realice raycasts en objetos rastreables del entorno.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

Esta extensión permite que el tiempo de ejecución notifique a la aplicación cuando cambia la resolución recomendada.

v1

XR_ANDROID_recommended_settings

El entorno predeterminado del usuario puede estar en una variedad de estados con una combinación de un modo de fusión y una modalidad de entrada.

v1

XR_ANDROID_scene_meshing

Esta extensión tiene como objetivo proporcionar mallas que representen aproximadamente los objetos físicos en el entorno del usuario.

v1

XR_ANDROID_spatial_anchor_space

La función xrCreateSpatialAnchorEXT definida en la extensión XR_EXT_spatial_anchor permite que las aplicaciones creen anclajes espaciales con un identificador XrSpatialEntityEXT para representarlo.

En cambio, esta extensión crea un anclaje espacial que se representa con un identificador XrSpace.

Permisos: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

Esta extensión proporciona la capacidad de seguimiento de anotaciones para la extensión XR_EXT_spatial_entity para hacer un seguimiento de varias anotaciones en la escena. Permite que las aplicaciones superpongan elementos en objetos físicos o virtuales definidos por referencias de tiempo de ejecución.

Permisos: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_component_subsumed_by

Esta extensión se basa en XR_EXT_spatial_entity y proporciona un nuevo componente para que XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT exponga el XrSpatialEntityIdEXT que subsume la entidad actual.

Permisos: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_discovery_raycast

Esta extensión se basa en XR_EXT_spatial_entity y proporciona funcionalidad de raycast para las capacidades espaciales existentes.

Permisos: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_entity_bound_anchor

Esta extensión permite que las aplicaciones creen y adjunten anclajes a entidades espaciales.

Permisos: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_object_tracking

Esta extensión se basa en XR_EXT_spatial_entity y define una capacidad espacial para hacer un seguimiento de un conjunto de objetos físicos predefinidos sin necesidad de un conjunto de datos de entrada de la aplicación.

Permisos: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables

Esta extensión permite que la aplicación acceda a los objetos rastreables del entorno físico.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

Esta extensión permite hacer un seguimiento de imágenes planas según lo especificado por conjuntos de imágenes de referencia de entrada.

Permisos: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables_marker

Esta extensión habilita el seguimiento de marcadores físicos.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_object

Esta extensión habilita el seguimiento de objetos físicos.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_qr_code

Esta extensión permite el seguimiento de códigos QR físicos y la decodificación de datos de códigos QR.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

Esta extensión permite que las aplicaciones creen un espacio de referencia XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID.

v1

Extensiones de terceros

Nombre de la extensión

Descripción

Versión de la API de Spatial

XR_MND_headless

Es posible que algunas aplicaciones necesiten acceder a dispositivos de interacción de XR sin presentar contenido de imagen en la pantalla o las pantallas.

v1

XR_KHR_binding_modification

Esta extensión agrega una estructura opcional que se puede incluir en la cadena XrInteractionProfileSuggestedBinding::next que se pasa a xrSuggestInteractionProfileBindings para especificar información adicional que modifique el comportamiento de vinculación predeterminado.

v1

XR_EXT_debug_utils

Debido a la naturaleza de la interfaz de OpenXR, hay muy poca información de errores disponible para el desarrollador y la aplicación.

v1

XR_EXT_hand_tracking

Esta extensión permite que las aplicaciones ubiquen las articulaciones individuales de las entradas de monitoreo de manos.

Permisos: HAND_TRACKING

v1

XR_EXT_performance_settings

Esta extensión define una API para que la aplicación proporcione sugerencias de rendimiento al tiempo de ejecución y para que el tiempo de ejecución envíe notificaciones relacionadas con el rendimiento a la aplicación. Esto permite que ambas partes logren un equilibrio adecuado entre el rendimiento necesario de la CPU y la GPU, la sostenibilidad térmica y una buena experiencia del usuario constante durante toda la sesión.

v1

XR_FB_display_refresh_rate

En plataformas que admiten el ajuste dinámico de la frecuencia de actualización de la pantalla.

v1

XR_FB_swapchain_update_state

Esta extensión permite que la aplicación modifique y consulte un estado mutable específico asociado a una cadena de intercambio.

v1

XR_FB_foveation

La foveación en el contexto de la XR es una técnica de renderización que permite que el área de una imagen cercana al punto focal o la fóvea del ojo se muestre con una resolución más alta que las áreas de la periferia.

v1

XR_FB_foveation_configuration

En los HMD de Facebook, los desarrolladores pueden crear perfiles de foveación generados por el tiempo de ejecución para las propiedades ópticas y el rendimiento.

v1

XR_FB_foveation_vulkan

La API de gráficos de Vulkan requiere que se aplique una imagen a la cadena de intercambio para aplicar un patrón de foveación.

v1

XR_FB_space_warp

Esta extensión proporciona compatibilidad para habilitar la tecnología de Space Warp en la aplicación.

v1

XR_KHR_opengl_es_enable

Esta extensión debe proporcionarla los tiempos de ejecución que admiten aplicaciones que usan APIs de OpenGL ES para la renderización.

v1

XR_KHR_android_create_instance

Cuando la aplicación crea un objeto XrInstance en sistemas Android.

v1

XR_KHR_android_surface_swapchain

Una actividad común en la XR es ver una secuencia de imágenes.

v1

XR_KHR_android_thread_settings

Para que la RE sea cómoda, es importante que las aplicaciones rendericen los fotogramas de forma rápida y coherente.

v1

XR_KHR_composition_layer_color_scale_bias

La escala y el sesgo de color se aplican a un color de capa durante la composición, después de su conversión a la representación alfa premultiplicada.

v1

XR_KHR_composition_layer_cube

Esta extensión agrega un tipo de capa adicional que permite el muestreo directo de mapas de cubos.

v1

XR_KHR_composition_layer_cylinder

Esta extensión agrega un tipo de capa adicional en el que el tiempo de ejecución de XR debe asignar una textura que proviene de una cadena de intercambio al interior de una sección cilíndrica. Se puede imaginar de la misma manera en que se ve una pantalla de televisión curva para un usuario.

v1

XR_KHR_composition_layer_depth

Esta extensión define un tipo de capa adicional que permite que las aplicaciones envíen imágenes de profundidad junto con imágenes de color en capas de proyección.

v1

XR_KHR_composition_layer_equirect

Esta extensión agrega un tipo de capa adicional en el que el tiempo de ejecución de XR debe asignar una imagen codificada equirrectangular que proviene de una cadena de intercambio al interior de una esfera.

v1

XR_KHR_composition_layer_equirect2

Esta extensión agrega un tipo de capa adicional en el que el tiempo de ejecución de XR debe asignar una imagen codificada equirrectangular que proviene de una cadena de intercambio al interior de una esfera.

Esta extensión usa una parametrización diferente que se ajusta más a la formulación de XR_KHR_composition_layer_cylinder, pero es funcionalmente equivalente a XR_KHR_composition_layer_equirect.

v1

XR_KHR_convert_timespec_time

Esta extensión proporciona dos funciones para convertir entre el tiempo monotónico de timespec y XrTime.

v1

XR_KHR_vulkan_enable

Esta extensión permite el uso de la API de gráficos de Vulkan en un tiempo de ejecución de OpenXR.

v1

XR_KHR_vulkan_enable2

Esta extensión permite el uso de la API de gráficos de Vulkan en un tiempo de ejecución de OpenXR.

v1

XR_KHR_loader_init

En algunas plataformas, antes de que se pueda realizar la carga, el cargador debe inicializarse con parámetros específicos de la plataforma.

v1

XR_KHR_loader_init_android

En Android, algunas implementaciones de cargadores requieren que la aplicación proporcione información adicional en la inicialización.

v1

XR_KHR_swapchain_usage_input_attachment_bit

Esta extensión permite que una aplicación especifique que las imágenes de la cadena de intercambio se deben crear de manera que se puedan usar como archivos adjuntos de entrada. En el momento de escribir este fragmento, solo afecta a los búferes de intercambio de Vulkan.

v1

XR_EXT_dpad_binding

Esta extensión permite que la aplicación vincule una o más acciones digitales a un panel táctil o a una palanca analógica como si fuera un pad direccional, ya que define rutas de componentes adicionales para sugerir vinculaciones.

v1

XR_EXT_uuid

Esta extensión define un identificador único universal que sigue el RFC 4122.

v1

XR_FB_composition_layer_depth_test

Esta extensión permite la composición de capas probada en profundidad.

v1

XR_EXT_eye_gaze_interaction

Esta extensión proporciona un XrPath para obtener la entrada de la mirada de un dispositivo de seguimiento ocular y habilitar las interacciones con la mirada.

Permisos: EYE_TRACKING_FINE

v1

XR_EXT_hand_interaction

Esta extensión define cuatro poses de acción de uso frecuente para todos los perfiles de interacción de manos del usuario, incluidos los dispositivos de monitoreo de manos y los dispositivos de control de movimiento.

v1

XR_KHR_visibility_mask

Esta extensión admite la provisión de una máscara de dibujo por vista para las aplicaciones.

v1

XR_META_foveation_eye_tracked

La renderización foveal con seguimiento ocular renderiza una menor densidad de píxeles en la periferia de la mirada del usuario.

Permisos: EYE_TRACKING_FINE

v1

XR_FB_hand_tracking_aim

La extensión XR_EXT_hand_tracking proporciona una lista de poses de articulaciones de la mano que representan la configuración actual de las manos rastreadas. Esta extensión agrega una capa de reconocimiento de gestos que usa el sistema.

Permisos: HAND_TRACKING

v1

XR_EXT_palm_pose

Esta extensión define un nuevo "identificador de postura estándar" para los perfiles de interacción, llamado "palm_ext".

v1

XR_VARJO_foveated_rendering

Los visores de Varjo proporcionan pantallas con una densidad de píxeles extremadamente alta en el área central de la pantalla.

Permisos: EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

Esta extensión agrega un nuevo tipo de configuración de vista, XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO, a XrViewConfigurationType, que xrEnumerateViewConfigurations puede devolver para indicar que el tiempo de ejecución admite 4 ventanas gráficas.

v1

XR_META_vulkan_swapchain_create_info

Con esta extensión, una aplicación basada en Vulkan puede pasar VkImageCreateFlags o VkImageUsageFlags adicionales encadenando una estructura XrVulkanSwapchainCreateInfoMETA a XrSwapchainCreateInfo cuando se llama a xrCreateSwapchain.

v1

XR_FB_hand_tracking_mesh

La extensión XR_EXT_hand_tracking proporciona una lista de poses de articulaciones de la mano, pero no un mecanismo para renderizar una malla de mano con piel.

Permisos: HAND_TRACKING

v1

XR_FB_composition_layer_image_layout

Esta extensión no define un nuevo tipo de capa de composición.

v1

XR_KHR_maintenance1

XR_KHR_maintenance1 agrega una colección de funciones secundarias que se omitieron o pasaron por alto intencionalmente en la versión original de OpenXR 1.0.

v1

XR_FB_composition_layer_settings

Esta extensión permite que las aplicaciones soliciten el uso de opciones de procesamiento, como el enfoque o el supermuestreo, en una capa de composición.

v1

XR_KHR_locate_spaces

Esta extensión presenta la función xrLocateSpacesKHR.

v1

XR_EXT_local_floor

La especificación principal de OpenXR contiene dos tipos de espacios de referencia XrSpace fijos en el mundo en XrReferenceSpaceType.

v1

XR_EXT_spatial_marker_tracking

Esta extensión se basa en XR_EXT_spatial_entity y permite que las aplicaciones detecten y hagan un seguimiento de los marcadores en su entorno.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_persistence

Esta extensión permite que las aplicaciones descubran y correlacionen entidades espaciales en diferentes sesiones de la aplicación.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_anchor

Esta extensión se basa en XR_EXT_spatial_entity y permite que las aplicaciones creen anclajes espaciales.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_plane_tracking

Esta extensión se basa en XR_EXT_spatial_entity y define la capacidad espacial de seguimiento de planos para el framework de entidades espaciales.

v1

XR_EXT_spatial_entity

Esta extensión presenta los conceptos y los fundamentos para la comprensión de escenas y el razonamiento espacial en OpenXR.

v1

XR_EXT_future

En los sistemas de XR, hay ciertas operaciones que tardan en ejecutarse y no se completan de manera razonable dentro de un bucle de fotogramas normal.

v1

XR_FB_color_space

Es posible que los dispositivos de XR usen un espacio de color diferente al de muchos monitores que se usan en el desarrollo.

v1

XR_EXT_composition_layer_inverted_alpha

Esta extensión proporciona una marca que, cuando se aplica a una capa de composición, invierte la interpretación del valor alfa en las imágenes de la cadena de intercambio de la capa.

v1

XR_EXT_frame_synthesis

Esta extensión proporciona compatibilidad para habilitar la síntesis de fotogramas en aplicaciones basadas en datos adicionales proporcionados por la aplicación.

v3

XR_QCOM_trackables_image_operations

Proporciona operaciones de seguimiento de imágenes de Qualcomm para objetos rastreables.

v3

XR_QCOM_trackables_qr_code_operations

Proporciona operaciones de seguimiento de códigos QR de Qualcomm para objetos rastreables.

v3

XR_EXT_user_presence

Esta extensión introduce un nuevo evento para notificar cuando el sistema detectó el cambio de presencia del usuario.

v3

XR_KHR_extended_struct_name_lengths

Esta extensión amplía los tamaños máximos de los nombres de struct y proporciona una nueva función para acceder a estos nuevos nombres extendidos.

v3

XR_EXT_interaction_profile_battery_state_display

XR_EXT_interaction_profile_battery_state_display proporciona un mecanismo para que las aplicaciones consulten el tiempo de ejecución para obtener información sobre el estado de la batería de los dispositivos que se usan con perfiles de interacción.

v3


OpenXR™ y el logotipo de OpenXR son marcas comerciales propiedad de The Khronos Group Inc. y están registradas como marcas comerciales en China, la Unión Europea, Japón y el Reino Unido.