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 RE. Algunas de estas funciones requieren permisos de tiempo de ejecución de Android. Si quieres 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 que crea 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 anclas con otras aplicaciones en ejecución.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_body_tracking

Usa la cinemática inversa para determinar la posición del cuerpo según 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 de entornos.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

Esta extensión permite que la aplicación solicite mapas de profundidad del entorno 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 son compatibles con 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 mezcla y rendericen expresiones faciales en experiencias de RE.

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_geospatial

Esta extensión proporciona el seguimiento geoespacial para la API de Geospatial de Google.

Permisos: ACCESS_FINE_LOCATION

v4

XR_ANDROID_geospatial_anchor

Esta extensión proporciona anclas geoespaciales y de superficie que se posicionan en el espacio en relación con la Tierra en una latitud, longitud y altitud determinadas.

Permisos: ACCESS_FINE_LOCATION

v4

XR_ANDROID_global_passthrough_dimming

Esta extensión permite que las aplicaciones establezcan y consulten el nivel de atenuación de la transferencia global, y reciban eventos cuando cambie el nivel de atenuación.

v4

XR_ANDROID_google_cloud_auth

Esta extensión habilita el uso de extensiones basadas en Google Cloud, ya que permite que la aplicación proporcione credenciales de autenticación para las APIs de Google Cloud.

v4

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 representen la iluminación del entorno 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 la 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 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 RE actual.

v1

XR_ANDROID_raycast

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

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

Esta extensión permite que el entorno 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 está diseñada para proporcionar mallas que representen de forma aproximada los objetos físicos del entorno del usuario.

Permisos: SCENE_UNDERSTANDING_FINE

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 controlador XrSpatialEntityEXT para representarlos.

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

Permisos: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

Esta extensión proporciona la capacidad de seguimiento de anotaciones para que la extensión XR_EXT_spatial_entity realice un seguimiento de varias anotaciones en la escena. Permite que las aplicaciones coloquen superposiciones 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 componente nuevo 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_bounds

Esta extensión agrega definiciones para los límites espaciales que permiten que las aplicaciones filtren las entidades espaciales descubiertas.

Permisos: SCENE_UNDERSTANDING_COARSE

v4

XR_ANDROID_spatial_discovery_raycast

Esta extensión se basa en XR_EXT_spatial_entity y proporciona la 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 anclas 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 elementos rastreables del entorno físico.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

Esta extensión permite hacer un seguimiento de las imágenes planas, según lo especificado por los 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

XR_ANDROID_viewport_feathering

Esta extensión expone el área difuminada que aplica el entorno de ejecución para que una aplicación pueda diseñar elementos de la IU dentro del área segura.

v4

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 ningún 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 error 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 entorno de ejecución y para que este envíe notificaciones relacionadas con el rendimiento a la aplicación. Esto permite que ambas partes alcancen un compromiso adecuado entre el rendimiento necesario de la CPU y la GPU, la sustentabilidad térmica y una experiencia del usuario coherente y buena 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 con una cadena de intercambio.

v1

XR_FB_foveation

La foveación en el contexto de la RE es una técnica de renderización que permite que el área de una imagen cercana al punto focal o a 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 entorno 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 deformación espacial en la aplicación.

v1

XR_KHR_opengl_es_enable

Los entornos de ejecución que admiten aplicaciones que usan las APIs de OpenGL ES para la renderización deben proporcionar esta extensió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 un flujo de imágenes.

v1

XR_KHR_android_thread_settings

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

v1

XR_KHR_composition_layer_color_scale_bias

La escala de color y el sesgo se aplican a un color de capa durante la composición, después de su conversión a una 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 cubo.

v1

XR_KHR_composition_layer_cylinder

Esta extensión agrega un tipo de capa adicional en el que el entorno de ejecución de XR debe asignar una textura que provenga de una cadena de intercambio en el interior de una sección de cilindro. Se puede imaginar de la misma manera que un espectador ve una pantalla de televisión curva.

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 entorno de ejecución de XR debe asignar una imagen codificada equirrectangular que provenga de una cadena de intercambio en el interior de una esfera.

v1

XR_KHR_composition_layer_equirect2

Esta extensión agrega un tipo de capa adicional en el que el entorno de ejecución de XR debe asignar una imagen codificada equirrectangular que provenga de una cadena de intercambio en el 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 realizar conversiones entre el tiempo monótono 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 entorno 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 entorno de ejecución de OpenXR.

v1

XR_KHR_loader_init

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

v1

XR_KHR_loader_init_android

En Android, algunas implementaciones de cargadores necesitan que la aplicación proporcione información adicional durante 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 adjuntos de entrada. En el momento de escribir este artículo, este bit solo afecta a las cadenas 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 un joystick como si fuera un pad direccional, ya que define rutas de componentes adicionales para las que se sugieren 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 habilita la composición de capas con prueba de profundidad.

v1

XR_EXT_eye_gaze_interaction

Esta extensión proporciona un XrPath para obtener la entrada de la mirada de un seguidor de ojos 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 el suministro de una máscara de dibujo por vista para las aplicaciones.

v1

XR_META_foveation_eye_tracked

La renderización foveada con seguimiento de ojos renderiza una densidad de píxeles más baja 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 a las que se les hace un seguimiento. 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 pose 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 puede devolver xrEnumerateViewConfigurations para indicar que el entorno de ejecución admite 4 viewports.

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 de forma intencional o se pasaron por alto 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 XrSpace de espacio de referencia bloqueado 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 sigan 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 todas las 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.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_entity

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

v1

XR_EXT_future

En los sistemas de RE, hay ciertas operaciones que se ejecutan durante mucho tiempo y no se completan de forma razonable dentro de un bucle de fotogramas normal.

v1

XR_FB_color_space

Es posible que los dispositivos de RE 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_spatial_entity_archetypes

La función xrQuerySpatialComponentDataEXT ofrece a las aplicaciones una forma de consultar entidades y datos de componentes con un filtro de los tipos de componentes que deben estar presentes en una entidad. Esta extensión introduce el concepto de arquetipos (combinaciones de componentes únicas) para que las aplicaciones puedan leer todos los datos de los componentes de todas las entidades sin duplicación.

v4

XR_EXT_frame_synthesis

Esta extensión proporciona compatibilidad para habilitar la síntesis de fotogramas en las aplicaciones según los datos adicionales que estas proporcionan.

v3

XR_QCOM_trackables_image_operations

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

v3

XR_QCOM_trackables_qr_code_operations

Proporciona operaciones de seguimiento de códigos QR de Qualcomm para los elementos que se pueden seguir.

v3

XR_EXT_user_presence

Esta extensión presenta un evento nuevo 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 las estructuras y proporciona una función nueva para acceder a estos nuevos nombres extendidos.

v3

XR_EXT_hand_tracking_data_source

Esta extensión aumenta la extensión XR_EXT_hand_tracking.

v4

XR_EXT_spatial_container_self_rendering

Esta extensión describe la "renderización automática" en el contexto de los contenedores espaciales.

v4

XR_EXT_spatial_container

Esta extensión define una nueva clase de entidades que se pueden mostrar.

v4

XR_EXT_spatial_persistence_operations

Esta extensión permite que las aplicaciones conserven y dejen de conservar entidades espaciales en todas las sesiones.

Permisos: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_mesh_tracking

Esta extensión se basa en XR_EXT_spatial_entity y define las capacidades espaciales para hacer un seguimiento de la malla de triángulos del entorno.

Permisos: SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_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 predefinidos sin requerir un conjunto de datos de entrada de la aplicación.

Permisos: SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_spatial_image_tracking

Esta extensión proporciona la capacidad de seguimiento de imágenes para la extensión XR_EXT_spatial_entity.

Permisos: SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_interaction_profile_battery_state_display

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

v3

XR_FB_composition_layer_secure_content

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

v4


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