Choisir un moteur 3D avant le développement de réalité augmentée
La première étape du développement AR consiste à choisir un moteur 3D adapté. Ce chapitre explique pourquoi un moteur 3D est nécessaire, présente les moteurs 3D courants dans le développement AR, ainsi que leurs avantages et inconvénients respectifs.
Pourquoi AR a besoin d'un moteur 3D
La réalité augmentée ne consiste pas simplement à superposer des images 2D ou 3D à la vue de la caméra. C'est un système 3D en temps réel dont les capacités principales peuvent aussi inclure :
Modélisation de la caméra réelle
Pour que les objets virtuels rendus paraissent plus réalistes dans le monde réel, la matrice de projection de la caméra dans le moteur 3D utilisé pour le rendu doit être ajustée selon les paramètres utilisés par l'image de la caméra réelle, comme les paramètres intrinsèques, extrinsèques et le modèle de distorsion.
Gestion du système de coordonnées spatiales
Gestion unifiée de la position et de la pose des appareils, de l'environnement, du contenu AR et d'autres éléments, incluant la sélection, la configuration et la conversion entre coordonnées monde, coordonnées caméra et coordonnées appareil.
Rendu 3D en temps réel
Met en œuvre une occlusion réaliste entre les objets virtuels et l'environnement à partir de la profondeur de scène estimée en temps réel ou de la mesh reconstruite, et simule les ombres à partir d'algorithmes d'estimation de l'éclairage afin d'obtenir une fusion réaliste du virtuel et du réel.
Gestion des ressources et du lifecycle
Gère les ressources et contenus AR virtuels, couvrant le lifecycle de chargement, d'affichage et de déchargement.
Ces capacités constituent les responsabilités essentielles d'un moteur 3D typique. Par conséquent, choisir un moteur 3D approprié selon les besoins concrets du projet est l'une des conditions nécessaires pour mettre rapidement en œuvre des effets AR.
Moteurs 3D courants
EasyAR prend en charge plusieurs moteurs 3D, notamment des moteurs 3D courants tels que Unity, Unreal et le développement native. EasyAR fournit des exemples et de la documentation de développement pour Unity et Native.
Unity
Unity est positionné comme un moteur 3D temps réel polyvalent et constitue actuellement le premier choix de la plupart des développeurs AR. Unity prend nativement en charge le développement multiplateforme pour Windows/macOS ainsi que iOS/Android/visionOS. L'écosystème Unity est mature, avec une documentation et des exemples complets.
Native
Par rapport à l'utilisation de moteurs encapsulés de haut niveau comme Unity, développer AR directement avec des API graphiques native comme OpenGL, Vulkan et Metal présente les avantages suivants : moins de dépendances système, un environnement d'exécution extrêmement simplifié, et une personnalisation profonde des modèles de caméra et des algorithmes de bas niveau. Le développement avec des API native implique des coûts d'ingénierie et de maintenance élevés, manque d'éditeurs et d'outils de débogage matures, offre une faible efficacité d'itération et rend le multiplateforme difficile. Il n'est pas favorable à une livraison rapide de niveau produit et sert généralement à implémenter des fonctions simples.
Web
Web ne nécessite aucune installation et peut être utilisé directement dans le navigateur, ce qui rend les coûts de distribution et d'accès utilisateur extrêmement faibles. Il est naturellement multiplateforme, adapté au lancement rapide et à l'accès massif des utilisateurs, et présente un seuil de développement relativement bas avec un écosystème frontend mature.
Actuellement, Web reste relativement limité dans les applications AR. Les principales limites sont que les performances sont contraintes par les navigateurs et la security sandbox, que la prise en charge des capacités AR essentielles comme motion tracking, occlusion et l'éclairage précis est insuffisante, que l'accès aux capacités de l'appareil est limité, et que la stabilité et la cohérence sont difficiles à garantir. Par conséquent, Web AR convient aux présentations légères et au marketing, mais pas aux applications AR complexes à haute précision et forte interaction.