Guides spécifiques à la plate-forme
En tant que développeur d'applications de RA, vous souhaitez que vos utilisateurs puissent combiner facilement le virtuel et le réel. Lorsqu'un utilisateur place un objet virtuel dans sa scène, il veut qu'il semble appartenir au monde réel. Si vous créez une application permettant aux utilisateurs d'acheter des meubles, vous devez leur donner la certitude que le fauteuil qu'ils s'apprêtent à acheter s'adaptera à leur espace.
L'API Depth aide la caméra d'un appareil à comprendre la taille et la forme des objets réels d'une scène. Il crée des images de profondeur ou des cartes de profondeur, ce qui ajoute une couche de réalisme à vos applications. Vous pouvez utiliser les informations fournies par une image de profondeur pour proposer des expériences utilisateur immersives et réalistes.
Cas d'utilisation du développement avec l'API Depth
L'API Depth peut permettre l'occlusion d'objets, une meilleure immersion et des interactions inédites qui améliorent le réalisme des expériences de RA. Voici quelques façons de l'utiliser dans vos propres projets. Pour voir Depth en action, explorez les exemples de scènes de l'atelier Depth ARCore, 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 essentiel pour une expérience de RA immersive. Imaginons qu'un utilisateur souhaite placer un Andy virtuel dans une scène contenant un coffre à côté d'une porte. Si l'affichage est effectué sans occlusion, Andy se superposera de manière irréaliste au bord du coffre. Si vous utilisez la profondeur d'une scène et que vous comprenez la distance à laquelle se trouve Andy virtuel par rapport à son environnement, comme le tronc en bois, vous pouvez le représenter avec précision avec l'occlusion, ce qui le rend beaucoup plus réaliste dans son environnement.
Transformer une scène
Transportez votre utilisateur dans un nouveau monde immersif en affichant des flocons de neige virtuels qui se déposent sur les accoudoirs et les coussins de son canapé, ou en enveloppant son salon d'une brume. Vous pouvez utiliser la profondeur pour créer une scène dans laquelle des lumières virtuelles interagissent, se cachent derrière et rééclairent des objets réels.
Distance et profondeur de champ
Vous devez montrer que quelque chose est éloigné ? Vous pouvez utiliser la mesure de la distance et ajouter des effets de profondeur de champ, comme flouter l'arrière-plan ou l'avant-plan d'une scène, avec l'API Depth.
Permettre aux utilisateurs d'interagir avec les objets RA
Permettez aux utilisateurs de "toucher" le monde à travers votre application en leur permettant d'interagir avec le monde réel via des collisions et des données physiques. Faites passer des objets virtuels au-dessus d'obstacles réels ou faites en sorte que des billes de paintball virtuelles frappent et éclaboussent un arbre réel. En combinant la collision basée sur la profondeur à la physique du jeu, vous pouvez donner vie à une expérience.
Améliorer les tests de positionnement
La profondeur peut être utilisée pour améliorer les résultats des tests de contact. Les tests de collision de plan ne fonctionnent que sur les surfaces planes avec texture, tandis que les tests de collision de profondeur sont plus détaillés et fonctionnent même sur les zones non planes et à faible texture. En effet, les tests de collision 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 Andys verts représentent les tests de collision d'un plan standard, et les Andys rouges les tests de collision de profondeur.
Compatibilité avec les appareils
L'API Depth n'est compatible qu'avec les appareils disposant de la puissance de traitement nécessaire pour prendre en charge la profondeur. Elle doit être activée manuellement dans ARCore, comme décrit dans la section 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 disposant d'un capteur de profondeur matériel compatible, tel qu'un capteur ToF.
Images de profondeur
L'API Depth utilise un algorithme de profondeur à partir du mouvement pour créer des images de profondeur, qui donnent une vue 3D du monde. Chaque pixel d'une image de profondeur est associé à une mesure de la distance de la scène par rapport à l'appareil photo. Cet algorithme prend plusieurs images de l'appareil sous différents angles et les compare pour estimer la distance de chaque pixel lorsque l'utilisateur déplace son téléphone. Il utilise sélectivement le machine learning pour améliorer le traitement de la profondeur, même en cas de mouvement minimal de l'utilisateur. Il exploite également tout matériel supplémentaire dont l'appareil de l'utilisateur peut disposer. Si l'appareil dispose 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 l'image de profondeur existante et active la profondeur même lorsque l'appareil photo ne bouge pas. Il offre également une meilleure profondeur sur les surfaces peu détaillées ou sans détails, 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 couloir avec un vélo sur le mur, ainsi qu'une visualisation de l'image de profondeur créée à partir des images de l'appareil photo. Les zones en rouge sont plus proches de la caméra, tandis que les zones en bleu sont plus éloignées.
Profondeur à partir du mouvement
Les données de profondeur sont disponibles lorsque l'utilisateur déplace son appareil. L'algorithme peut obtenir des estimations de profondeur fiables et précises de 0 à 65 mètres de distance. Les résultats les plus précis sont obtenus lorsque l'appareil se trouve à un demi-mètre à environ cinq mètres de la scène réelle. Les expériences qui encouragent l'utilisateur à bouger davantage son appareil génèrent des résultats de plus en plus intéressants.
Acquérir des images de profondeur
L'API Depth vous permet de récupérer des représentations de profondeur correspondant à chaque image de l'appareil photo. Une image de profondeur acquise a le même code temporel et les mêmes paramètres intrinsèques de champ de vision que la caméra. Les données de profondeur valides ne sont disponibles que lorsque l'utilisateur commence à bouger son appareil, car la profondeur est acquise à partir du mouvement. Les surfaces présentant peu ou pas de caractéristiques, comme les murs blancs, seront associées à une profondeur imprécise.
Étapes suivantes
- Consultez l'atelier de profondeur ARCore, qui présente différentes façons d'accéder aux données de profondeur.