Préparation et optimisation des modèles 3D
Cet article explique en détail comment préparer des modèles 3D répondant aux exigences d'EasyAR, en couvrant les spécifications de format, les outils recommandés et le troubleshooting courant, afin d'aider les développeurs à améliorer le succès du tracking dès la source.
Format et spécifications du modèle
EasyAR 3D object tracking prend uniquement en charge le format Wavefront OBJ. Lors de son utilisation, respectez les exigences et spécifications suivantes.
Structure des fichiers du modèle
Un modèle 3D complet doit inclure les fichiers suivants :
- Fichier .obj : données géométriques du modèle, incluant sommets, faces, coordonnées UV, etc.
- Fichier .mtl : définitions des matériaux, incluant couleurs et chemins des texture maps.
- Texture maps : au moins une image JPEG ou PNG. Une résolution de 512×512 à 2048×2048 est recommandée.
Exigences relatives aux fichiers
- Tous les fichiers doivent être placés dans le même dossier et référencés avec des chemins relatifs, comme
texture.jpg. Les chemins absolus commeC:\Models\texture.jpgne sont pas autorisés. - Les noms de fichiers et les chemins à l'intérieur des fichiers ne doivent pas contenir d'espaces. Il est recommandé d'utiliser des lettres anglaises ou des chiffres.
- L'encodage des fichiers doit être UTF-8 afin d'éviter les échecs de chargement dus à du texte corrompu.
Exigences minimales pour les fichiers OBJ (.obj)
- Doit contenir
vertex
Sommets géométriques, représentés par des coordonnées \((x, y, z [, w])\). \(w\) est facultatif et vaut 1.0 par défaut. 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 des coordonnées \((u, v [,w])\). \(w\) est facultatif et vaut 0 par défaut. En général, les valeurs de \(u\) et \(v\) doivent être comprises entre 0 et 1. Pour les valeurs inférieures à 0 ou supérieures à 1, le système les traite par défaut en modeREPEAT: la partie entière de la coordonnée est ignorée, puis un motif répété à l'infini est construit, comme le traitementGL_REPEATdansOpenGL. - Doit contenir
face
Les éléments face doivent inclure au minimum les indices de sommets et les indices de coordonnées de texture. Les structures de faces polygonales avec plus de 3 sommets, comme les quadrilatères, sont également prises en charge. - Doit contenir
mtllib
Référence à un fichier de matériau. Au moins un fichier de matériau MTL externe doit être spécifié, et le chemin du fichier doit être relatif, non absolu. - Doit contenir
usemtl
Le matériau référencé par les éléments du modèle doit spécifier un nom de matériau, et ce nom doit correspondre au nom défini dans le fichier de matériau MTL externe.
Exigences minimales pour les fichiers MTL (.mtl)
- Un fichier MTL doit définir au moins un matériau.
- Les texture maps sont obligatoires.
En général, il suffit de spécifier la texture map ambiante ou diffuse (map_Ka,map_Kd) ;
Le chemin de la texture map doit être relatif, non absolu. - Les autres paramètres optionnels de texture map 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 OBJ conformes aux spécifications de plusieurs manières.
Exporter depuis un modèle existant
Utilisez des outils professionnels comme Autodesk Maya / 3ds Max pour importer un modèle FBX existant ou d'un autre format, sélectionnez “OBJ Export” lors de l'exportation 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 ou dessiner un modèle 3D et le sortir au format OBJ.Scanner un objet réel et effectuer une reconstruction 3D
Utilisez des logiciels de scan et de modélisation 3D comme Autodesk ReCap ou Bentley ContextCapture, ou un scanner laser, pour effectuer la reconstruction 3D d'un objet réel, puis exportez le résultat au format OBJ.
Important
Les textures du modèle doivent reproduire avec précision les caractéristiques visuelles de l'objet réel, sinon recognition et tracking ne fonctionneront pas correctement.
Bonnes pratiques pour les modèles
Voici quelques problèmes et exemples courants rencontrés lors de la préparation des modèles, pour référence rapide et vérification.
Assurer des détails de texture riches
La texture du modèle doit avoir des détails de texture riches.
Image de référence gauche : peut être détectée et suivie par EasyAR. Image de référence droite : ne peut pas être détectée ni suivie, car la texture est insuffisante.
Forme du modèle
Le modèle prend en charge différentes formes, mais la structure principale doit être convex.
Ces deux objets peuvent être détectés et suivis par EasyAR.
Vérifier les path référencés dans le fichier
Les path référencés dans le fichier du modèle doivent être des relative paths, et non des absolute paths.
Le modèle de droite ne peut pas être chargé, car EasyAR ne trouve pas le fichier qui utilise un absolute path.
Les path référencés dans le fichier du modèle ne doivent pas contenir d'espaces ni de caractères spéciaux.
Le modèle de droite ne peut pas être chargé, car le path référencé contient des espaces.
Vérifier le format d'encodage du fichier
Les fichiers de modèle doivent utiliser l'encodage UTF-8.
Le modèle à droite ne peut pas être chargé, car son encodage de fichier provoque un decoding error lors de la lecture.
Vérifier les normales du modèle
La direction positive du normal vector des faces du modèle doit suivre la right-hand rule.
Les normal vectors des faces ombrées dans le deuxième cube ont une orientation négative. Ces faces sont traitées comme des invisible faces dans EasyAR. Vu depuis l'intérieur du modèle, il apparaît comme le troisième cube.
Le modèle doit éviter toutes les faces dont la normale a une orientation négative.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 triangle faces. Un trop grand nombre de faces peut entraîner :- Un temps de chargement du modèle trop long, affectant la user experience au démarrage de l'application
- Une augmentation du calcul de face texture projection, affectant le frame rate de l'application pendant tracking
La qualité du modèle 3D détermine directement le succès du tracking. Les développeurs doivent respecter strictement les spécifications de format, optimiser en priorité les détails de texture et s'assurer que le format des fichiers est correct.