La profondeur ajoute du réalisme

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 voulez qu'ils soient sûrs 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 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 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. Dans un rendu sans occlusion, Andy chevauchera de manière irréaliste le bord du tronc. Si vous utilisez la profondeur d'une scène et que vous comprenez la distance de l'Andy virtuel par rapport à son environnement, comme le tronc en bois, vous pouvez le représenter avec précision avec occlusion, ce qui le rend beaucoup plus réaliste dans son environnement.

Transformer une scène

Montrez à l'utilisateur un nouvel univers immersif en affichant des flocons de neige virtuels pour qu'ils s'installent sur les bras et les coussins de leur canapé, ou en jetant leur salon dans 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 et é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 positionnement. 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, l'icône "Andy" verte représente les tests de positionnement de l'avion standard, tandis que l'image rouge représente les tests de positionnement 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 de mouvements pour créer des représentations de profondeur, qui donnent une vue en 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 d'appareils sous différents angles et les compare pour estimer la distance à chaque pixel lorsqu'un 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 est équipé d'un capteur de profondeur dédié, tel que 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 avec peu ou pas de caractéristiques, 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, et celles 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 représentation de profondeur acquise possède les mêmes fonctionnalités intrinsèques de code temporel et 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

  • Suivez l'atelier ARCore Depth qui présente différentes façons d'accéder aux données de profondeur.