Des tests de positionnement placent des objets virtuels dans le monde réel

Guides spécifiques à la plate-forme

Android (Kotlin/Java)

NDK Android (C)

Unity (AR Foundation)

Le contenu RA doit être correctement placé et dimensionné pour se fondre dans une scène. Comme les objets du monde réel, les objets virtuels situés plus loin doivent apparaître plus petits. Vous pouvez effectuer un test de positionnement (ou un raycast dans RA Foundation for Unity) pour déterminer l'emplacement correct d'un objet 3D dans votre scène. Un placement correct permet de s'assurer que le contenu de la RA est affiché à la taille (apparente) appropriée.

Les tests de positionnement permettent de trouver les intersections entre la géométrie 3D réelle et un rayon virtuel composé d'une origine et d'une direction. Les rayons avec l'appareil photo de l'appareil sont les plus fréquemment utilisés, mais ARCore inclut une API permettant d'effectuer des tests de positionnement avec un rayon arbitraire dans les coordonnées spatiales mondiales.

Imaginez que la caméra de l'appareil d'un utilisateur génère un rayon qui s'étend vers l'avant jusqu'à ce qu'il touche la géométrie 3D de la scène, comme un sol, un mur ou un objet. Une liste de résultats d'appels ou d'intersections avec des géométries de scène détectées s'affiche alors. La liste est triée en fonction de la distance par rapport à l'appareil, en commençant par l'intersection la plus proche. C'est important, car vous ne pouvez généralement pas voir les objets cachés derrière d'autres objets. La plupart du temps, le premier résultat est donc le plus important.

Contenu d'un résultat d'appel

Un résultat d'appel individuel est renvoyé sous la forme d'une liste avec les informations suivantes pour chaque résultat:

  • Distance à partir de l'origine des rayons, en mètres
  • Position (position et orientation) du résultat de l'appel
  • Géométrie 3D que vous touchez, sous la forme d'un élément traçable

Vous pouvez ensuite utiliser le résultat de l'appel souhaité pour positionner votre contenu 3D de façon réaliste à l'aide d'une ancre.

Types de résultats d'appel

Il existe quatre types de résultats d'appel: profondeur, plan, point de caractéristiques et emplacements instantanés. Chacun présente ses propres cas d'utilisation et ses propres compromis, comme indiqué dans le tableau suivant.

Type de résultat du hit Description Intégration Cas d'utilisation
Précision Utilise les informations de profondeur de toute la scène pour déterminer la profondeur et l'orientation d'un point Perpendiculaire à la surface 3D Placer un objet virtuel sur une surface arbitraire (pas seulement sur les sols et les murs)
Avion Appuie sur les surfaces horizontales et/ou verticales pour déterminer la profondeur et l'orientation d'un point Perpendiculaire à la surface 3D Placez un objet sur une surface plane (plancher ou mur) en utilisant toute la géométrie de l'avion. J'ai immédiatement besoin de la bonne échelle. Remplacement pour le test de positionnement de profondeur
Point d'intérêt S'appuie sur les caractéristiques visuelles autour du point où l'utilisateur appuie pour déterminer la position et l'orientation correctes d'un point Perpendiculaire à la surface 3D Placer un objet sur une surface arbitraire (pas seulement sur les sols et les murs)
Emplacement instantané (Raycast persistant) Utilise l'espace à l'écran pour placer le contenu. Utilise initialement la profondeur estimée fournie par l'application. Le fonctionnement est instantané, mais la position et la profondeur réelle changent une fois qu'ARCore est en mesure de déterminer la géométrie réelle de la scène. +Y pointant vers le haut, à l'opposé de la gravité Placez un objet sur une surface plane (plancher ou paroi) en utilisant sa géométrie complète. Pour que l'expérience puisse tolérer une profondeur et une échelle initiales inconnues, le positionnement doit être rapide.

Compatibilité avec les appareils

Les tests de positionnement fonctionnent sur tous les appareils compatibles avec ARCore, mais les tests de positionnement de profondeur nécessitent des appareils compatibles avec la fonctionnalité Depth.

Utiliser les résultats d'appel pour placer du contenu en RA

Une fois que vous avez obtenu un résultat, vous pouvez utiliser sa posture comme entrée pour placer le contenu RA dans votre scène.