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 aient facilement accès au virtuel et au 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 sont sur le point d'acheter s'intégrera à 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 images de profondeur, ou cartes de profondeur, et ajoute ainsi une couche de réalisme à vos applications. Vous pouvez utiliser les informations fournies par une représentation 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 permet d'effectuer l'occlusion des 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 obtenir des exemples de profondeur en action, explorez les scènes de l'ARCore Depth Lab, 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, c'est-à-dire le rendu précis d'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 peut vouloir placer dans une scène contenant un coffre à côté d'une porte. Rendu sans occlusion, l'Andy chevauchera de manière irréaliste le bord du tronc. Si vous utilisez la profondeur d'une scène et comprenez à quelle distance se trouve Andy virtuel par rapport à son environnement (par exemple, le tronc en bois), vous pouvez rendre l'Andy avec précision avec une occlusion, pour un rendu beaucoup plus réaliste dans son environnement.

Transformer une scène

Faites découvrir aux utilisateurs un nouveau monde immersif en posant des flocons de neige virtuels sur les bras et les oreillers de leur canapé, ou en projetant leur salon dans un brouillard brumeux. Vous pouvez utiliser la fonctionnalité Depth 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 avez besoin de montrer que quelque chose ne se trouve pas loin ? Vous pouvez utiliser la mesure des distances et ajouter des effets de profondeur de champ, par exemple pour flouter l'arrière-plan ou le premier plan d'une scène, avec l'API Depth.

Permettre les interactions des utilisateurs avec les 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 par le biais de collisions et de mécanismes physiques. Faites en sorte que des objets virtuels dépassent des obstacles du monde réel, ou que des billes de paintball virtuelles frappent et éclaboussent un arbre du monde réel. En combinant des mécanismes de collision basés sur la profondeur avec la physique du jeu, vous pouvez donner vie à l'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 en avion ne fonctionnent que sur les surfaces planes comportant de la texture, tandis que les tests de positionnement de profondeur sont plus détaillés et fonctionnent même sur les zones non planes et à faible texture. En effet, les tests de profondeur 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, le personnage Andy en vert représente les tests de positionnement standards des avions, tandis que le rouge Andy 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 traiter la profondeur. Elle doit être activée manuellement dans ARCore, comme décrit dans Activer la fonctionnalité Depth.

Certains appareils peuvent également fournir un capteur de profondeur matériel, par exemple un capteur de temps de vol. Consultez la page Appareils compatibles 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.

Images 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 du monde en 3D. Chaque pixel d'une profondeur de champ est associé à une mesure de l'éloignement entre la scène et la caméra. Cet algorithme prend des images de plusieurs appareils sous différents angles et les compare pour estimer la distance par pixel lorsque l'utilisateur déplace son téléphone. Elle utilise le machine learning de manière sélective pour augmenter le traitement de la profondeur, même avec un minimum de mouvements de la part de l'utilisateur. Il tire également parti de tout matériel supplémentaire dont l'appareil 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 améliore la profondeur de champ existante et active la profondeur même lorsque la caméra est immobile. Elle offre également une meilleure profondeur sur les surfaces avec peu ou pas d'éléments géographiques, 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 un 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 prises avec l'appareil. Les zones en rouge sont plus proches de la caméra et les zones en bleu sont plus éloignées.

Profondeur résultant du mouvement

Les données de profondeur deviennent 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 entre 0,5 et 5 mètres de la scène réelle. Les expériences qui encouragent l'utilisateur à plus de bouger son appareil obtiennent de meilleurs résultats.

Obtenir des représentations de profondeur

L'API Depth vous permet d'extraire 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 fonctionnalités 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 qui présentent peu ou pas d'éléments, comme des murs blancs, seront associées à une profondeur imprécise.

Et ensuite ?

  • Rendez-vous sur l'atelier ARCore Depth Lab, qui présente différentes manières d'accéder aux données de profondeur.