Créer des applications avec des extensions OpenXR compatibles

Appareils XR concernés
Ces conseils vous aideront à créer des expériences pour ces types d'appareils XR.
Casques XR
Lunettes XR filaires

Android XR est compatible avec OpenXR via la spécification OpenXR 1.1 et une longue liste d'extensions de fournisseurs tiers. L'utilisation de ces extensions vous offre une expérience familière lorsque vous développez pour la XR. Certaines de ces fonctionnalités nécessitent des autorisations d'exécution Android. Si vous souhaitez créer directement sur les API OpenXR, vous trouverez les fichiers d'en-tête requis dans le dépôt jetpack-xr-natives.

Extensions de fournisseur Android XR

Nom de l'extension

Description

Version de l'API Spatial

XR_ANDROID_anchor_sharing_export

Les ancres créées par une application via XR_ANDROID_trackables, XR_EXT_spatial_anchor et XR_ANDROID_spatial_anchor_space sont liées à une session spécifique et ne sont donc pas visibles par les autres applications. Cette extension permet aux applications de partager des ancres avec d'autres applications en cours d'exécution.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_body_tracking

Utilise la cinématique inverse pour déterminer la position du corps en fonction de la position de la tête et des mains.

Autorisations : BODY_TRACKING

v2

XR_ANDROID_composition_layer_passthrough_mesh

Pour les appareils compatibles avec plusieurs modes de fusion de l'environnement.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

Cette extension permet à l'application de demander des cartes de profondeur de l'environnement réel autour du casque et d'interroger les résolutions de profondeur compatibles lors de la création.

Autorisations : SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_device_anchor_persistence

Cette extension permet à l'application de persister.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_enumerate_system_extension_properties

Cette extension permet aux applications de déterminer quelles extensions sont compatibles avec la configuration système actuelle.

v3

XR_ANDROID_eye_tracking

Cette extension permet aux applications d'obtenir la position et l'orientation des yeux de l'utilisateur, ainsi que l'état du suivi oculaire.

Autorisations : EYE_TRACKING_FINE

v1

XR_ANDROID_face_tracking

Cette extension permet aux applications d'obtenir les pondérations des formes de fusion et d'afficher les expressions faciales dans les expériences XR.

Autorisations : FACE_TRACKING

v1

XR_ANDROID_face_tracking_data_source

Cette extension permet aux applications d'obtenir des données de suivi du visage à partir de plusieurs sources de données.

Autorisations : FACE_TRACKING, RECORD_AUDIO

v3

XR_ANDROID_geospatial

Cette extension fournit le suivi géospatial pour l'API Geospatial de Google.

Autorisations : ACCESS_FINE_LOCATION

v4

XR_ANDROID_geospatial_anchor

Cette extension fournit des ancres géospatiales et des ancres de surface positionnées dans l'espace par rapport à la Terre à une latitude, une longitude et une altitude données.

Autorisations : ACCESS_FINE_LOCATION

v4

XR_ANDROID_global_passthrough_dimming

Cette extension permet aux applications de définir et d'interroger le niveau d'atténuation global du passthrough, et de recevoir des événements lorsque le niveau d'atténuation change.

v4

XR_ANDROID_google_cloud_auth

Cette extension permet d'utiliser des extensions basées sur Google Cloud en permettant à l'application de fournir des identifiants d'authentification pour les API Google Cloud.

v4

XR_ANDROID_hand_mesh

Cette extension permet d'utiliser les entrées de suivi des mains représentées sous la forme d'un maillage dynamique des mains.

Autorisations : HAND_TRACKING

v1

XR_ANDROID_light_estimation

Cette extension permet à l'application de demander des données représentant l'éclairage de l'environnement réel autour du casque.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_light_estimation_cubemap

Cette extension s'appuie sur l'extension de base XR_ANDROID_light_estimation.

Autorisations : SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_mouse_interaction

Cette extension fournit un XrPath pour obtenir la saisie à la souris et définit une pose d'action couramment utilisée pour les profils de souris utilisateur, y compris les souris et les pavés tactiles.

v1

XR_ANDROID_passthrough_camera_state

Le démarrage de la caméra Passthrough peut prendre un certain temps et elle peut ne pas être immédiatement disponible.

v1

XR_ANDROID_performance_metrics

Cette extension fournit des API pour énumérer et interroger différents compteurs de métriques de performances de l'appareil XR actuel.

v1

XR_ANDROID_raycast

Cette extension permet à l'application d'effectuer des lancers de rayons sur les éléments traçables de l'environnement.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

Cette extension permet à l'environnement d'exécution d'informer l'application lorsque la résolution recommandée change.

v1

XR_ANDROID_recommended_settings

L'environnement par défaut de l'utilisateur peut se trouver dans différents états en utilisant une combinaison de mode de fusion et de modalité de saisie.

v1

XR_ANDROID_scene_meshing

Cette extension est destinée à fournir des maillages qui représentent approximativement les objets physiques de l'environnement de l'utilisateur.

Autorisations : SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_spatial_anchor_space

La fonction xrCreateSpatialAnchorEXT définie dans l'extension XR_EXT_spatial_anchor permet aux applications de créer des ancres spatiales avec un handle XrSpatialEntityEXT pour les représenter.

En revanche, cette extension crée un ancrage spatial représenté par un handle XrSpace.

Autorisations : SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

Cette extension fournit la fonctionnalité de suivi des annotations pour l'extension XR_EXT_spatial_entity afin de suivre différentes annotations dans la scène. Elle permet aux applications de placer des superpositions sur des objets physiques ou virtuels définis par des références d'exécution.

Autorisations : SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_component_subsumed_by

Cette extension s'appuie sur XR_EXT_spatial_entity et fournit un nouveau composant pour XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT afin d'exposer l'XrSpatialEntityIdEXT qui englobe l'entité actuelle.

Autorisations : SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_discovery_bounds

Cette extension ajoute des définitions pour les limites spatiales qui permettent aux applications de filtrer les entités spatiales découvertes.

Autorisations : SCENE_UNDERSTANDING_COARSE

v4

XR_ANDROID_spatial_discovery_raycast

Cette extension s'appuie sur XR_EXT_spatial_entity et fournit une fonctionnalité de raycast pour les fonctionnalités spatiales existantes.

Autorisations : SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_entity_bound_anchor

Cette extension permet aux applications de créer et d'associer des ancres à des entités spatiales.

Autorisations : SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_object_tracking

Cette extension s'appuie sur XR_EXT_spatial_entity et définit une fonctionnalité spatiale permettant de suivre un ensemble d'objets physiques prédéfinis sans nécessiter d'ensemble de données d'entrée de l'application.

Autorisations : SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables

Cette extension permet à l'application d'accéder aux éléments traçables de l'environnement physique.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

Cette extension permet de suivre les images planes, comme spécifié par les ensembles d'images de référence d'entrée.

Autorisations : SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables_marker

Cette extension permet de suivre les repères physiques.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_object

Cette extension permet de suivre les objets physiques.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_qr_code

Cette extension permet de suivre les QR codes physiques et de décoder les données des QR codes.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

Cette extension permet aux applications de créer un espace de référence XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID.

v1

XR_ANDROID_viewport_feathering

Cette extension expose la zone de fondu appliquée par l'environnement d'exécution afin qu'une application puisse disposer les éléments d'interface utilisateur dans la zone de sécurité.

v4

Extensions tierces

Nom de l'extension

Description

Version de l'API Spatial

XR_MND_headless

Certaines applications peuvent avoir besoin d'accéder aux appareils d'interaction XR sans présenter de contenu d'image sur l'écran ou les écrans.

v1

XR_KHR_binding_modification

Cette extension ajoute une structure facultative qui peut être incluse dans la chaîne XrInteractionProfileSuggestedBinding::next transmise à xrSuggestInteractionProfileBindings pour spécifier des informations supplémentaires afin de modifier le comportement de liaison par défaut.

v1

XR_EXT_debug_utils

En raison de la nature de l'interface OpenXR, le développeur et l'application disposent de très peu d'informations sur les erreurs.

v1

XR_EXT_hand_tracking

Cette extension permet aux applications de localiser les articulations individuelles des entrées de suivi des mains.

Autorisations : HAND_TRACKING

v1

XR_EXT_performance_settings

Cette extension définit une API permettant à l'application de fournir des indications de performances à l'environnement d'exécution, et à l'environnement d'exécution d'envoyer des notifications liées aux performances à l'application. Cela permet aux deux parties de trouver un compromis adapté entre les performances requises du processeur et du GPU, la durabilité thermique et une expérience utilisateur toujours satisfaisante tout au long de la session.

v1

XR_FB_display_refresh_rate

Sur les plates-formes compatibles avec l'ajustement dynamique de la fréquence d'actualisation de l'écran.

v1

XR_FB_swapchain_update_state

Cette extension permet à l'application de modifier et d'interroger un état modifiable spécifique associé à une chaîne d'échange.

v1

XR_FB_foveation

Dans le contexte de la XR, le rendu fovéal est une technique de rendu qui permet d'afficher la zone d'une image proche du point focal ou de la fovéa de l'œil à une résolution plus élevée que les zones périphériques.

v1

XR_FB_foveation_configuration

Sur les casques de réalité virtuelle Facebook, les développeurs peuvent créer des profils de fovéation générés par l'environnement d'exécution pour les propriétés optiques et les performances.

v1

XR_FB_foveation_vulkan

L'API graphique Vulkan nécessite qu'une image soit appliquée à la swapchain pour appliquer un motif de fovéation.

v1

XR_FB_space_warp

Cette extension permet d'activer la technologie Space Warp dans l'application.

v1

XR_KHR_opengl_es_enable

Cette extension doit être fournie par les environnements d'exécution compatibles avec les applications qui utilisent les API OpenGL ES pour l'affichage.

v1

XR_KHR_android_create_instance

Lorsque l'application crée un objet XrInstance sur les systèmes Android.

v1

XR_KHR_android_surface_swapchain

Une activité courante en XR consiste à afficher un flux d'images.

v1

XR_KHR_android_thread_settings

Pour que la XR soit confortable, il est important que les applications fournissent des images rapidement et de manière cohérente.

v1

XR_KHR_composition_layer_color_scale_bias

L'échelle et le biais de couleur sont appliqués à une couleur de calque lors de la composition, après sa conversion en représentation alpha prémultipliée.

v1

XR_KHR_composition_layer_cube

Cette extension ajoute un type de calque supplémentaire qui permet d'échantillonner directement à partir de cubemaps.

v1

XR_KHR_composition_layer_cylinder

Cette extension ajoute un type de calque supplémentaire dans lequel l'environnement d'exécution XR doit mapper une texture provenant d'une chaîne d'échange sur l'intérieur d'une section de cylindre. On peut l'imaginer de la même manière qu'un écran de télévision incurvé pour un spectateur.

v1

XR_KHR_composition_layer_depth

Cette extension définit un type de calque supplémentaire qui permet aux applications d'envoyer des images de profondeur ainsi que des images en couleur dans les calques de projection.

v1

XR_KHR_composition_layer_equirect

Cette extension ajoute un type de calque supplémentaire dans lequel l'environnement d'exécution XR doit mapper une image codée équirectangulaire provenant d'une swapchain à l'intérieur d'une sphère.

v1

XR_KHR_composition_layer_equirect2

Cette extension ajoute un type de calque supplémentaire dans lequel l'environnement d'exécution XR doit mapper une image codée équirectangulaire provenant d'une swapchain à l'intérieur d'une sphère.

Cette extension utilise une paramétrisation différente, plus conforme à la formulation de XR_KHR_composition_layer_cylinder, mais elle est fonctionnellement équivalente à XR_KHR_composition_layer_equirect.

v1

XR_KHR_convert_timespec_time

Cette extension fournit deux fonctions permettant de convertir le temps monotone timespec en XrTime.

v1

XR_KHR_vulkan_enable

Cette extension permet d'utiliser l'API graphique Vulkan dans un environnement d'exécution OpenXR.

v1

XR_KHR_vulkan_enable2

Cette extension permet d'utiliser l'API graphique Vulkan dans un environnement d'exécution OpenXR.

v1

XR_KHR_loader_init

Sur certaines plates-formes, avant de pouvoir charger, le chargeur doit être initialisé avec des paramètres spécifiques à la plate-forme.

v1

XR_KHR_loader_init_android

Sur Android, certaines implémentations de chargeur nécessitent que l'application fournisse des informations supplémentaires lors de l'initialisation.

v1

XR_KHR_swapchain_usage_input_attachment_bit

Cette extension permet à une application de spécifier que les images de la chaîne d'échange doivent être créées de manière à pouvoir être utilisées comme rattachements d'entrée. Au moment de la rédaction de ce document, ce bit n'affecte que les swapchains Vulkan.

v1

XR_EXT_dpad_binding

Cette extension permet à l'application de lier une ou plusieurs actions numériques à un pavé tactile ou à un stick analogique comme s'il s'agissait d'un pavé directionnel en définissant des chemins de composants supplémentaires pour lesquels suggérer des liaisons.

v1

XR_EXT_uuid

Cette extension définit un identifiant unique universel (UUID) conforme à la norme RFC 4122.

v1

XR_FB_composition_layer_depth_test

Cette extension permet de composer des calques avec test de profondeur.

v1

XR_EXT_eye_gaze_interaction

Cette extension fournit un XrPath pour obtenir l'entrée du regard d'un outil de suivi oculaire afin d'activer les interactions par le regard.

Autorisations : EYE_TRACKING_FINE

v1

XR_EXT_hand_interaction

Cette extension définit quatre poses d'action couramment utilisées pour tous les profils d'interaction manuelle de l'utilisateur, y compris les appareils de suivi des mains et les contrôleurs de mouvement.

v1

XR_KHR_visibility_mask

Cette extension permet de fournir un masque de dessin par vue pour les applications.

v1

XR_META_foveation_eye_tracked

Le rendu fovéal avec suivi oculaire affiche une densité de pixels plus faible à la périphérie du regard de l'utilisateur.

Autorisations : EYE_TRACKING_FINE

v1

XR_FB_hand_tracking_aim

L'extension XR_EXT_hand_tracking fournit une liste de poses d'articulations de la main qui représentent la configuration actuelle des mains suivies. Cette extension ajoute une couche de reconnaissance gestuelle utilisée par le système.

Autorisations : HAND_TRACKING

v1

XR_EXT_palm_pose

Cette extension définit un nouvel "identifiant de pose standard" pour les profils d'interaction, nommé "palm_ext".

v1

XR_VARJO_foveated_rendering

Les casques Varjo offrent une densité de pixels extrêmement élevée au centre de l'écran.

Autorisations : EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

Cette extension ajoute un nouveau type de configuration de vue, XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO, à XrViewConfigurationType, qui peut être renvoyé par xrEnumerateViewConfigurations pour indiquer que l'environnement d'exécution est compatible avec quatre fenêtres d'affichage.

v1

XR_META_vulkan_swapchain_create_info

Cette extension permet à une application basée sur Vulkan de transmettre des VkImageCreateFlags ou VkImageUsageFlags supplémentaires en associant une structure XrVulkanSwapchainCreateInfoMETA à XrSwapchainCreateInfo lors de l'appel de xrCreateSwapchain.

v1

XR_FB_hand_tracking_mesh

L'extension XR_EXT_hand_tracking fournit une liste de poses d'articulations de la main, mais aucun mécanisme pour afficher un maillage de main avec skinning.

Autorisations : HAND_TRACKING

v1

XR_FB_composition_layer_image_layout

Cette extension ne définit pas de nouveau type de couche de composition.

v1

XR_KHR_maintenance1

XR_KHR_maintenance1 ajoute un ensemble de fonctionnalités mineures qui ont été intentionnellement laissées de côté ou oubliées dans la version initiale d'OpenXR 1.0.

v1

XR_FB_composition_layer_settings

Cette extension permet aux applications de demander l'utilisation d'options de traitement telles que la netteté ou le super-échantillonnage sur une couche de composition.

v1

XR_KHR_locate_spaces

Cette extension introduit la fonction xrLocateSpacesKHR.

v1

XR_EXT_local_floor

La spécification OpenXR de base contient deux types d'espaces de référence XrSpace verrouillés sur le monde dans XrReferenceSpaceType.

v1

XR_EXT_spatial_marker_tracking

Cette extension s'appuie sur XR_EXT_spatial_entity et permet aux applications de détecter et de suivre des marqueurs dans leur environnement.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_persistence

Cette extension permet aux applications de découvrir et de mettre en corrélation des entités spatiales entre les sessions d'application.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_anchor

Cette extension s'appuie sur XR_EXT_spatial_entity et permet aux applications de créer des ancres spatiales.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_plane_tracking

Cette extension s'appuie sur XR_EXT_spatial_entity et définit la capacité spatiale de suivi de plan pour le framework d'entité spatiale.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_entity

Cette extension présente les concepts et les principes fondamentaux de la compréhension des scènes et du raisonnement spatial dans OpenXR.

v1

XR_EXT_future

Dans les systèmes XR, certaines opérations sont de longue durée et ne se terminent pas raisonnablement dans une boucle de frame normale.

v1

XR_FB_color_space

Les appareils XR peuvent utiliser un espace colorimétrique différent de celui de nombreux écrans utilisés pour le développement.

v1

XR_EXT_composition_layer_inverted_alpha

Cette extension fournit un indicateur qui, lorsqu'il est appliqué à une couche de composition, inverse l'interprétation de la valeur alpha dans les images de la chaîne d'échange de la couche.

v1

XR_EXT_spatial_entity_archetypes

La fonction xrQuerySpatialComponentDataEXT permet aux applications d'interroger les entités et les données des composants à l'aide d'un filtre des types de composants qui doivent être présents sur une entité. Cette extension introduit le concept d'archétypes (combinaisons de composants uniques) afin que les applications puissent lire toutes les données de composants pour toutes les entités sans duplication.

v4

XR_EXT_frame_synthesis

Cette extension permet d'activer la synthèse de frames sur les applications en fonction des données supplémentaires fournies par l'application.

v3

XR_QCOM_trackables_image_operations

Fournit des opérations de suivi d'images Qualcomm pour les éléments traçables.

v3

XR_QCOM_trackables_qr_code_operations

Fournit des opérations de suivi par QR code Qualcomm pour les éléments traçables.

v3

XR_EXT_user_presence

Cette extension introduit un nouvel événement pour signaler que le système a détecté un changement de présence de l'utilisateur.

v3

XR_KHR_extended_struct_name_lengths

Cette extension augmente la taille maximale des noms de structures et fournit une nouvelle fonction pour accéder à ces nouveaux noms étendus.

v3

XR_EXT_hand_tracking_data_source

Cette extension complète l'extension XR_EXT_hand_tracking.

v4

XR_EXT_spatial_container_self_rendering

Cette extension décrit l'auto-rendu dans le contexte des conteneurs spatiaux.

v4

XR_EXT_spatial_container

Cette extension définit une nouvelle classe d'entités affichables.

v4

XR_EXT_spatial_persistence_operations

Cette extension permet aux applications de conserver et de supprimer des entités spatiales d'une session à l'autre.

Autorisations : SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_mesh_tracking

Cette extension s'appuie sur XR_EXT_spatial_entity et définit des fonctionnalités spatiales pour suivre le maillage triangulaire de l'environnement.

Autorisations : SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_spatial_object_tracking

Cette extension s'appuie sur XR_EXT_spatial_entity et définit une fonctionnalité spatiale permettant de suivre un ensemble d'objets prédéfinis sans nécessiter d'ensemble de données d'entrée de l'application.

Autorisations : SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_spatial_image_tracking

Cette extension fournit la fonctionnalité de suivi d'images pour l'extension XR_EXT_spatial_entity.

Autorisations : SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_interaction_profile_battery_state_display

XR_EXT_interaction_profile_battery_state_display fournit un mécanisme permettant aux applications d'interroger l'environnement d'exécution pour obtenir des informations sur l'état de la batterie des appareils utilisés avec des profils d'interaction.

v3

XR_FB_composition_layer_secure_content

Cette extension ne définit pas de nouveau type de couche de composition.

v4


OpenXR™ et le logo OpenXR sont des marques appartenant à The Khronos Group Inc. et sont déposées en Chine, dans l'Union européenne, au Japon et au Royaume-Uni.