Guides spécifiques à la plate-forme
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
En tant que développeur d'applications de RA, vous souhaitez que vos utilisateurs puissent mélanger de manière transparente le virtuel et le réel. Lorsqu'un utilisateur place un objet virtuel dans sa scène, il veut qu'il ait l'air de faire partie du monde réel. Si vous créez une application permettant aux utilisateurs d'acheter des meubles, vous voulez qu'ils soient sûrs que le fauteuil qu'ils sont sur le point d'acheter s'intégrera dans leur espace.
L'API Depth aide l'appareil photo d'un appareil à comprendre la taille et la forme des objets réels d'une scène. Elle crée des représentations de profondeur, ou cartes de profondeur, ajoutant ainsi une couche de réalisme à vos applications. Vous pouvez utiliser les informations fournies par une représentation de profondeur pour offrir des expériences utilisateur immersives et réalistes.
Cas d'utilisation du développement avec l'API Depth
L'API Depth peut alimenter l'occlusion d'objets, améliorer l'immersion et créer de nouvelles interactions qui renforcent le réalisme des expériences de RA. Voici quelques exemples d'utilisation dans vos propres projets. Pour voir des exemples d'utilisation de l'API Depth, explorez les scènes d'exemple dans l'atelier ARCore Depth, qui présente différentes façons d'accéder aux données de profondeur. Cette application Unity est Open Source sur GitHub.
Activer l'occlusion
L'occlusion, ou le rendu précis d'un objet virtuel derrière des objets réels, est essentielle pour une expérience de RA immersive. Prenons l'exemple d'un Andy virtuel qu'un utilisateur souhaite placer dans une scène contenant un coffre à côté d'une porte. Sans occlusion, l'Andy se chevauchera de manière irréaliste avec le bord du coffre. Si vous utilisez la profondeur d'une scène et que vous comprenez la distance entre l'Andy virtuel et son environnement, comme le coffre en bois, vous pouvez rendre l'Andy avec précision grâce à l'occlusion, ce qui le rendra beaucoup plus réaliste dans son environnement.

Transformer une scène
Faites découvrir à votre utilisateur un nouveau monde immersif en rendant des flocons de neige virtuels qui se déposent sur les accoudoirs et les coussins de son canapé, ou en enveloppant son salon d'un brouillard brumeux. Vous pouvez utiliser la profondeur pour créer une scène dans laquelle des lumières virtuelles interagissent, se cachent derrière des objets réels et les éclairent à nouveau.
Distance et profondeur de champ
Vous devez montrer que quelque chose est loin ? Vous pouvez utiliser la mesure de distance et ajouter des effets de profondeur de champ, comme le floutage de l'arrière-plan ou du premier plan d'une scène, avec l'API Depth.
Permettre aux utilisateurs d'interagir avec des objets de RA
Permettez aux utilisateurs de "toucher" le monde via votre application en permettant au contenu virtuel d'interagir avec le monde réel grâce à la collision et à la physique. Faites passer des objets virtuels au-dessus d'obstacles réels ou faites en sorte que des billes de peinture virtuelles touchent un arbre réel et s'y éclaboussent. Lorsque vous combinez la collision basée sur la profondeur avec la physique du jeu, vous pouvez donner vie à une expérience.
Améliorer les tests de détection
La profondeur peut être utilisée pour améliorer les résultats des tests de détection. Les tests de détection de plan ne fonctionnent que sur des surfaces planes avec une texture, tandis que les tests de détection de profondeur sont plus détaillés et fonctionnent même sur des zones non planes et à faible texture. En effet, les tests de détection de profondeur utilisent les informations de profondeur de la scène pour déterminer la profondeur et l'orientation correctes d'un point.
Dans l'exemple suivant, les Andy verts représentent les tests de détection de plan standard et les Andy rouges représentent les tests de détection de profondeur.
Compatibilité avec les appareils
L'API Depth n'est compatible qu'avec les appareils dont la puissance de traitement est suffisante pour prendre en charge la profondeur. Elle doit être activée manuellement dans ARCore, comme décrit dans Activer la profondeur.
Certains appareils peuvent également fournir un capteur de profondeur matériel, tel qu'un capteur de temps de vol (ToF). Consultez la page Appareils compatibles avec ARCore pour obtenir la liste à jour des appareils compatibles avec l'API Depth et la liste des appareils équipés d'un capteur de profondeur matériel compatible, tel qu'un capteur ToF.
Représentations de profondeur
L'API Depth utilise un algorithme de profondeur à partir du mouvement pour créer des représentations de profondeur, qui offrent une vue 3D du monde. Chaque pixel d'une représentation de profondeur est associé à une mesure de la distance entre la scène et l'appareil photo. Cet algorithme prend plusieurs images de l'appareil sous différents angles et les compare pour estimer la distance par rapport à chaque pixel lorsque l'utilisateur déplace son téléphone. Il utilise sélectivement le machine learning pour augmenter le traitement de la profondeur, même avec un mouvement minimal de l'utilisateur. Il tire également parti de tout matériel supplémentaire dont l'appareil de l'utilisateur peut disposer. Si l'appareil est équipé d'un capteur de profondeur dédié, tel qu'un capteur ToF, l'algorithme fusionne automatiquement les données de toutes les sources disponibles. Cela améliore la représentation de profondeur existante et permet d'obtenir une profondeur même lorsque l'appareil photo ne bouge pas. Il offre également une meilleure profondeur sur les surfaces avec peu ou pas de fonctionnalités, comme les murs blancs, ou dans les scènes dynamiques avec des personnes ou des objets en mouvement.
Les images suivantes montrent une image de l'appareil photo d'un couloir avec un vélo sur le mur, ainsi qu'une visualisation de la représentation de profondeur créée à partir des images de l'appareil photo. Les zones en rouge sont plus proches de l'appareil photo, et les zones en bleu sont plus éloignées.

Profondeur à partir du mouvement
Les données de profondeur deviennent disponibles lorsque l'utilisateur déplace son appareil. L'algorithme peut obtenir des estimations de profondeur robustes et précises entre 0 et 65 mètres. Les résultats les plus précis sont obtenus lorsque l'appareil se trouve à une distance comprise entre 50 centimètres et environ cinq mètres de la scène réelle. Les expériences qui encouragent l'utilisateur à déplacer davantage son appareil obtiendront des résultats de plus en plus précis.
Acquérir des représentations de profondeur
Avec l'API Depth, vous pouvez récupérer des représentations de profondeur qui correspondent à chaque image de l'appareil photo. Une image de profondeur acquise possède le même code temporel et les mêmes caractéristiques intrinsèques de champ de vision que l'appareil photo. Les données de profondeur valides ne sont disponibles qu'une fois que l'utilisateur a commencé à déplacer son appareil, car la profondeur est acquise à partir du mouvement. Les surfaces avec peu ou pas de fonctionnalités, comme les murs blancs, seront associées à une profondeur imprécise.
Étapes suivantes
- Consultez l'atelier ARCore Depth, qui présente différentes façons d'accéder aux données de profondeur.