Développer avec OpenXR

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

 

Logo textuel OpenXR

Android XR est compatible avec les applications créées avec OpenXR grâce à sa compatibilité avec la spécification OpenXR 1.1 et certaines extensions de fournisseurs. OpenXR est un standard ouvert qui vous permet de créer des expériences immersives et interactives à l'aide d'un ensemble commun d'API sur un large éventail d'appareils XR.

Fonctionnalités

Android XR est compatible avec des fonctionnalités qui vous permettent de créer des applications exploitant pleinement les capacités uniques des appareils XR, à l'aide d'OpenXR. Ces fonctionnalités incluent les suivantes :

Framework d'entités spatiales
Une base unifiée pour la compréhension des scènes et le raisonnement spatial. Permet aux applications de découvrir, d'interroger et de suivre les entités spatiales physiques de l'environnement (y compris les plans, les maillages 3D, les cadres de délimitation, les images, les repères et les annotations), de filtrer la découverte à l'aide de limites spatiales, d'interroger les archétypes d'entités, de créer des ancres spatiales associées aux entités, d'effectuer un raycasting d'entités spatiales et de maillages, et de conserver les entités spatiales d'une session d'application à l'autre.
Conteneurs spatiaux
Une API de fenêtrage spatial multiplate-forme (XR_EXT_spatial_container et XR_EXT_spatial_container_self_rendering) qui permet aux applications de créer et d'afficher des conteneurs spatiaux 3D (limités et immersifs) à l'aide de chaînes d'échange et de couches de composition OpenXR, ce qui permet aux utilisateurs d'utiliser plusieurs conteneurs spatiaux simultanément.
Ancrages géospatiaux
Permet aux applications de suivre les poses relatives à la Terre à l'aide du service de positionnement visuel (VPS) et du GPS de Google, de s'authentifier auprès des services Google Cloud et de placer des ancres géospatiales et des ancres de surface à des latitudes, longitudes et altitudes spécifiques.
Éléments traçables
Prise en charge de la détection de plans, qui permet d'identifier et de suivre les surfaces planes dans l'environnement, ce qui permet de placer des objets virtuels par rapport au monde réel, et des ancres, qui sont des points de référence virtuels pouvant être associés à des objets ou des lieux réels, afin que le contenu virtuel reste positionné et orienté avec précision, même lorsque l'utilisateur se déplace.
Raycasting
Technique utilisée pour déterminer le point d'intersection entre un rayon virtuel et des objets ou des maillages du monde dans la scène, ce qui facilite les interactions telles que la sélection et la manipulation d'éléments virtuels.
Persistance des ancres
La possibilité d'enregistrer et de restaurer des ancres sur plusieurs sessions, ce qui permet de placer du contenu virtuel de manière persistante et cohérente dans l'environnement.
Suivi des objets
La possibilité de suivre la souris, le clavier et d'autres objets physiques dans le monde réel.
Suivi d'images et de repères
Capacité à détecter et à suivre des images de référence planes et des repères physiques (tels que les AprilTags et les repères ArUco) dans l'environnement.
Suivi par QR code
La possibilité de suivre les QR codes dans l'environnement physique et de décoder leurs données.
Textures de profondeur
La génération de cartes de profondeur qui fournissent des informations sur la distance entre la caméra et les objets de la scène, ce qui permet d'obtenir des effets d'occlusion et d'interaction plus réalistes.
Passthrough
La possibilité de fusionner des images de caméra du monde réel avec du contenu virtuel, créant ainsi une expérience de réalité mixte qui combine de manière fluide les mondes physique et numérique.
Réduction globale de la luminosité de la caméra réelle
Permet aux applications de définir et d'interroger le niveau d'atténuation global du passthrough pour fusionner le contenu virtuel avec l'environnement physique, et de recevoir des événements lorsque le niveau d'atténuation change.
Adoucissement de la fenêtre d'affichage
Expose la zone périphérique de fondu appliquée par l'environnement d'exécution afin que les applications puissent disposer les éléments d'interface utilisateur dans la zone de sécurité non affectée par le fondu périphérique.
Maillage de scène
La possibilité d'acquérir un maillage 3D de l'environnement, qui peut être utilisé pour la physique, l'occlusion et d'autres interactions tenant compte du monde.
Passthrough de la couche de composition
Permet de découper une couche de composition de passthrough de polygone, et peut être utilisé pour intégrer des objets du monde réel dans une scène.
Suivi du visage
La capacité de suivre les caractéristiques du visage de l'utilisateur à partir de sources de données visuelles et audio, ce qui permet de créer des avatars et des personnages virtuels plus réalistes et expressifs.
Oculométrie
Fournit la position et l'orientation de l'œil de l'utilisateur, ce qui permet de rendre la pose des yeux des avatars plus réaliste.
Suivi des mains
La possibilité de suivre la position et le mouvement des mains de l'utilisateur.
Maillage de la main
Fournit une représentation précise des mains de l'utilisateur sous la forme d'un maillage low poly. Optimisé pour la diffusion de la plate-forme à l'application afin de vous garantir les meilleures performances possibles. Il s'agit d'une alternative aux autres extensions qui utilisent une pose de liaison et des pondérations de fusion.
Suivi du corps
Estime les positions et les proportions des articulations du corps de l'utilisateur à l'aide des données de suivi de la tête et des mains.
Estimation de la luminosité
Utilisé pour les modèles d'éclairage (y compris l'éclairage directionnel, ambiant, les harmoniques sphériques et l'éclairage cubemap) afin de correspondre aux conditions d'éclairage réelles de l'utilisateur.

Périphériques d'entrée compatibles

Android XR est également compatible avec les périphériques d'entrée suivants.

Interaction avec les mains
Reconnaissance de gestes de la main spécifiques, tels que le pincement, le balayage et le pointage, permettant aux utilisateurs d'interagir avec des objets virtuels à l'aide de gestes et de mouvements de la main.
Interaction par suivi oculaire
La capacité de suivre les mouvements des yeux de l'utilisateur, ce qui lui permet de sélectionner des objets virtuels et d'interagir avec eux en les regardant.
Manettes de mouvement 6 DoF
La possibilité de suivre la position et les mouvements des manettes, ainsi que les liaisons du pavé directionnel et des boutons pour déclencher des actions ou des événements de pointage dans l'application.
Interaction avec la souris
La possibilité pour les utilisateurs d'interagir avec des objets à l'aide d'un pointeur de la souris dans un espace 3D

Fonctionnalités de performances compatibles

Android XR est compatible avec les fonctionnalités suivantes liées aux performances.

Fovéation avec suivi oculaire
Permet à une application d'afficher du contenu en plus haute résolution uniquement au niveau du point focal des yeux.
Distorsion spatiale
Utilise des vecteurs de vitesse et des informations de texture de profondeur pour générer des images intermédiaires, ce qui augmente efficacement la fréquence d'images requise pour que vos utilisateurs restent immergés dans vos expériences
Synthèse d'images
Utilise les vecteurs de mouvement et les données d'images fournis par l'application pour synthétiser des images intermédiaires, ce qui améliore la fluidité visuelle et la fréquence d'images.
Métriques de performances
Fournit des métriques de performances Android XR au moment de l'exécution de l'appareil XR, du compositeur et de l'application XR actuels. Cela inclut le temps de rendu du processeur, le temps de rendu du GPU, l'utilisation du GPU, la fréquence du processeur, le nombre d'images par seconde et plus encore.

Consultez la présentation des fonctionnalités OpenXR pour obtenir la liste complète des fonctionnalités et extensions compatibles.

Moteurs compatibles

Les moteurs suivants sont compatibles avec le développement OpenXR avec Android XR.

Unity

La compatibilité d'Android XR avec Unity, basée sur OpenXR, permet aux développeurs de créer des expériences à l'aide d'Unity 6. Pour en savoir plus sur la création d'applications XR avec Unity, consultez la présentation d'Unity.

Unreal Engine

Unreal Engine est compatible avec Android XR via la norme OpenXR, ce qui vous permet d'utiliser les outils et workflows standards dans Unreal Engine 5. Pour en savoir plus sur la création d'applications XR avec Unreal Engine, consultez la présentation d'Unreal Engine.

Godot

Godot est compatible avec Android XR grâce à son intégration d'OpenXR, ce qui vous permet de créer et d'exporter des applications XR pour Android à l'aide du workflow Godot standard. Pour en savoir plus sur la création d'applications XR avec Godot, consultez la présentation de Godot.


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.