Table of Contents

Affichage de contenu en 3D

Lors de l'utilisation de la RA, il est souvent nécessaire d'afficher des objets virtuels. Dans des exemples de test simples, des formes géométriques simples peuvent être utilisées, mais pour développer des applications destinées aux consommateurs, il est généralement nécessaire d'afficher des modèles 3D et des animations de haute précision, et des événements et interactions peuvent être déclenchés lors du clic sur les nœuds du modèle.

Modèles

Les modèles 3D populaires actuels sont généralement constitués d'un maillage triangulaire (triangle mesh). Pour que le modèle paraisse réaliste, nous devons attribuer un matériau (material) à chaque triangle. Le matériau implémente généralement un modèle d'éclairage, dont le contenu est constitué de textures et de paramètres du modèle d'éclairage.

  • La texture (texture) détermine la couleur de base de chaque point du triangle. Toutes les textures des triangles sont placées dans une ou plusieurs textures de diffusion. Dans des utilisations avancées, des textures peuvent également être utilisées pour représenter la direction de la normale ou d'autres paramètres pour chaque point.
  • Le modèle d'éclairage (lighting model) définit comment l'objet interagit avec la lumière, le PBR étant courant. Les modèles d'éclairage sont généralement implémentés à l'aide de shaders. Les paramètres du modèle d'éclairage PBR comprennent la couleur, la métallicité, la rugosité, etc.

Dans le développement d'applications, les modèles 3D ne sont généralement pas chargés directement sur OpenGL / Metal / Vulkan / Direct3D, mais à l'aide d'un moteur 3D. Le moteur 3D nécessite l'utilisation de formats de modèles 3D spécifiques, comme le format historique et relativement lisible obj/mtl, ou le format actuellement populaire glTF.

Animation

Pour animer un modèle, une animation squelettique est nécessaire. Le squelette fait référence aux gros nœuds du modèle 3D qui se déplacent de manière cohérente lors d'un mouvement rigide.

Pour afficher une animation, il est nécessaire de mettre à jour en permanence la position et l'orientation (matrice de transformation) des nœuds du modèle lors de l'exécution. La plupart des moteurs 3D fournissent des fonctionnalités d'animation ; il suffit d'éditer l'animation dans un logiciel de création d'animations et de l'exporter dans un format supporté par le moteur 3D pour l'utiliser dans celui-ci. Le format glTF mentionné ci-dessus inclut également des fonctionnalités d'animation.

Interaction

Lorsqu'un utilisateur clique sur un nœud du modèle, il peut parfois être nécessaire de déclencher des événements et des interactions. Généralement, les os de l'animation squelettique sont nommés, et une détection de collision ou une détection par rayons est utilisée pour déclencher un événement lors du clic, renvoyant le nom de l'os cliqué. Le traitement des événements peut être effectué à l'aide de scripts ou du code de l'application.

Note

Si vous manquez d'expérience dans l'utilisation d'un moteur 3D, il est fortement recommandé d'envisager d'utiliser Unity pour développer votre application. L'EasyAR Sense Unity Plugin offre un bon support pour Unity. Si vous utilisez un autre moteur 3D, vous pourriez faire face à un support et à des ressources disponibles limités.