Préparation et optimisation de modèles 3D
Cet article explique en détail comment préparer des modèles 3D conformes aux exigences d'EasyAR, couvrant les spécifications de format, les outils recommandés et le dépannage des problèmes courants, afin d'aider les développeurs à améliorer le taux de réussite du suivi dès la source.
Format et spécifications des modèles
Le suivi d'objets 3D d'EasyAR ne supporte que le format Wavefront OBJ. Les exigences et spécifications suivantes doivent être respectées lors de son utilisation.
Structure des fichiers de modèle
Un modèle 3D complet doit contenir les fichiers suivants :
- Fichier .obj : données géométriques du modèle (incluant sommets, faces, coordonnées UV, etc.).
- Fichier .mtl : définition des matériaux (couleur, chemin des textures).
- Textures : au moins une image au format JPEG ou PNG (résolution recommandée : 512×512 à 2048×2048).
Exigences des fichiers
- Tous les fichiers doivent être placés dans le même dossier, avec des références utilisant des chemins relatifs (par exemple
texture.jpg). Les chemins absolus (commeC:\Models\texture.jpg) sont interdits. - Les noms de fichiers et chemins internes ne doivent pas contenir d'espaces. L'utilisation d'anglais ou de chiffres est recommandée.
- L'encodage des fichiers doit être UTF-8 (pour éviter les échecs de chargement dus à des caractères illisibles).
Exigences minimales du fichier OBJ (.obj)
- Doit contenir
vertex
Sommets géométriques, représentés par des coordonnées \((x, y, z [, w])\). \(w\) est optionnel, par défaut 1.0. Les paramètres de couleur des sommets ne sont pas obligatoires ; s'ils sont fournis, le système ne les chargera pas. - Doit contenir
texture coordinates
Coordonnées de texture, représentées par \((u, v [,w])\). \(w\) est optionnel, par défaut 0. Généralement, \(u\) et \(v\) doivent être compris entre 0 et 1. Pour les valeurs inférieures à 0 ou supérieures à 1, le système traitera par défaut en modeREPEAT(la partie entière est ignorée, créant un motif répété à l'infini, identique àGL_REPEATdansOpenGL). - Doit contenir
face
Éléments de face, devant inclure au minimum les indices des sommets et les indices des coordonnées de texture. Les polygones à plus de 3 sommets (ex: quadrilatères) sont également supportés. - Doit contenir
mtllib
Référence au fichier de matériaux, nécessitant au moins un fichier MTL externe. Le chemin doit être relatif, jamais absolu. - Doit contenir
usemtl
Le matériau référencé par l'élément du modèle doit spécifier un nom correspondant à celui défini dans le fichier MTL externe.
Exigences minimales du fichier MTL (.mtl)
- Un fichier MTL doit définir au moins un matériau.
- Une texture est obligatoire.
Généralement, seule la texture ambiante ou diffuse (map_Ka,map_Kd) doit être spécifiée ;
Le chemin de la texture doit être relatif, jamais absolu. - Les paramètres optionnels supplémentaires des textures ne sont pas obligatoires ; s'ils sont fournis, le système ne les utilisera pas.
Préparation du modèle
Vous pouvez préparer des fichiers de modèle au format OBJ conformes aux spécifications de plusieurs manières.
Exporter à partir d'un modèle existant
Utilisez des outils professionnels comme Autodesk Maya / 3ds Max pour importer des modèles existants (FBX ou autres formats). À l'exportation, sélectionnez "OBJ Export" et assurez-vous que les options "Materials" et "UVs" sont activées.Créer un nouveau modèle
Utilisez des outils de modélisation comme Autodesk Maya / 3ds Max pour créer/dessiner un modèle 3D et l'exporter au format OBJ.Scanner un objet réel et reconstruire en 3D
Utilisez des logiciels de modélisation par scan 3D comme Autodesk ReCap ou Bentley ContextCapture, ou un scanner laser pour reconstruire numériquement un objet réel, puis exporter le résultat au format OBJ.
Important
La texture du modèle doit reproduire fidèlement les caractéristiques visuelles de l'objet réel, sans quoi les fonctions de reconnaissance et de suivi ne fonctionneront pas correctement.
Bonnes pratiques pour les modèles
Voici des problèmes et exemples couramment rencontrés lors de la préparation des modèles, pour une vérification rapide.
Assurer des détails de texture riches
Les textures du modèle doivent présenter des détails riches.
Réf. gauche : Peut être détecté et suivi par EasyAR. Réf. droite : Impossible à détecter et suivre, texture insuffisante.
Forme du modèle
Le modèle peut avoir différentes formes, mais sa structure principale doit être convexe.
Les deux objets peuvent être détectés et suivis par EasyAR.
Vérifier les chemins référencés dans le fichier
Les chemins référencés dans le fichier du modèle doivent être relatifs, pas absolus.
Le modèle à droite ne peut pas être chargé car EasyAR ne trouve pas les fichiers utilisant un chemin absolu.
Les chemins référencés dans le fichier du modèle ne doivent pas contenir d'espaces ou de caractères spéciaux.
Le modèle à droite ne peut pas être chargé car le chemin référencé contient des espaces.
Vérifiez le format d'encodage des fichiers
Les fichiers de modèle doivent utiliser le format d'encodage UTF-8.
Le modèle de droite ne peut pas être chargé en raison d'une erreur de décodage lors de la lecture, causée par un problème d'encodage du fichier.
Vérifiez les normales du modèle
Les normales des faces du modèle doivent suivre la règle de la main droite.
Dans le deuxième cube, les faces ombrées ont des normales orientées négativement. Ces faces seront traitées comme invisibles dans EasyAR. Si on regarde depuis l'intérieur du modèle, cela ressemblera au troisième cube.
Le modèle doit éviter toutes les faces avec des normales orientées négativement.Nombre de faces du modèle
Le nombre de faces du modèle doit être aussi faible que possible tout en préservant la forme géométrique de l'objet, et ne doit généralement pas dépasser 100 000 triangles. Un nombre excessif de faces entraîne :- Un temps de chargement du modèle trop long, affectant l'expérience utilisateur au démarrage de l'application.
- Une augmentation des calculs de projection de texture sur les faces, affectant le taux de rafraîchissement (fps) de l'application lors du suivi.
La qualité du modèle 3D détermine directement le taux de réussite du suivi. Les développeurs doivent strictement respecter les spécifications de format, optimiser les détails des textures et garantir des formats de fichiers corrects.