La profondeur ajoute du réalisme

Guides spécifiques à chaque plate-forme

En tant que développeur d'applications de RA, vous voulez que le virtuel et le réel soient parfaitement intégrés à vos utilisateurs. 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 l'appareil photo d'un appareil à comprendre la taille et la forme des objets réels d'une scène. Il crée des représentations de profondeur, ou cartes de profondeur, et ajoute ainsi un niveau 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 optimiser l'occlusion des objets, une meilleure immersion et de nouvelles interactions qui améliorent le réalisme des expériences de RA. Voici quelques façons de l'utiliser dans vos propres projets. Pour voir des exemples de profondeur en action, explorez les exemples de scènes dans l'atelier ARCore Depth, qui montre différentes façons d'accéder aux données de profondeur. Cette application Unity est Open Source sur GitHub.

Activer l'occlusion

Une occlusion, qui consiste à rendre avec précision un objet virtuel derrière des objets du monde réel, est essentielle pour une expérience de RA immersive. Prenons l'exemple d'un Andy virtuel qu'un utilisateur pourrait vouloir placer 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 à quelle distance se situe l'emplacement virtuel d'Andy par rapport à son environnement, comme le tronc en bois, vous pouvez restituer avec précision l'Andy par 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 souhaitez montrer que quelque chose est éloigné ? Avec l'API Depth, vous pouvez utiliser la mesure de distances et ajouter des effets de profondeur de champ, comme flouter l'arrière-plan ou le premier plan d'une scène.

Activer les interactions des utilisateurs avec les objets en RA

Permettez aux utilisateurs de "toucher" le monde via votre application en permettant au contenu virtuel d'interagir avec le monde réel par le biais de collisions et de phénomènes physiques. Faites passer des objets virtuels au-dessus d'obstacles du monde réel ou faites tomber des balles de paintball virtuelles sur un arbre du monde réel. En combinant collision basée sur la profondeur et physique des jeux, 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 positionnement planes ne fonctionnent que sur des surfaces planes avec texture, tandis que les tests de positionnement de profondeur sont plus détaillés et fonctionnent même sur des zones non planes et à faible texture. En effet, les tests de positionnement 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 d'une puissance de traitement suffisante et doit être activée manuellement dans ARCore, comme décrit dans Activez l'option "Profondeur".

Certains appareils peuvent également fournir un capteur de profondeur matériel, tel qu'une indication de la durée de vol (ToF). Consultez la page Appareils compatibles ARCore pour découvrir une liste à jour des appareils compatibles avec l'API Depth et une liste des appareils compatibles disposer 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 représentation de profondeur est associé à une mesure de la distance entre la scène et 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 le machine learning de manière sélective pour augmenter le traitement de la profondeur, même avec un mouvement minimal de l'utilisateur. Elle exploite également tout matériel supplémentaire dont l'appareil d'un utilisateur pourrait 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 permet d'améliorer la profondeur de champ existante et d'activer cette fonctionnalité même lorsque l'appareil photo est immobile. 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 prise par la caméra d'un couloir avec un vélo accroché au mur, ainsi qu'une visualisation de la profondeur créée à partir des images de la caméra. Les zones rouges sont plus proches de la caméra, et les zones bleues sont plus éloignées.

Profondeur par rapport aux mouvements

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 jusqu'à une distance de 0 à 65 mètres. Pour obtenir les résultats les plus précis, l'appareil doit se trouver à environ cinq mètres de la scène réelle. Les expériences qui encouragent l'utilisateur à bouger davantage sur son appareil obtiendront de meilleurs résultats.

Obtenir des représentations de profondeur

L'API Depth vous permet d'obtenir 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 qu'une fois que l'utilisateur a commencé à déplacer son appareil, car la profondeur est acquise par le mouvement. Les surfaces qui comportent peu ou pas d'éléments géographiques, comme des 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.