Présentation Générale
Le format OBJ est un standard largement adopté pour l'échange de maillages 3D entre différents logiciels de modélisation. Il est supporté par la quasi-totalité des applications 3D professionnelles pour l'import et l'export.
Lors de l'exportation, deux fichiers sont généralement générés : un fichier .obj contenant la géométrie du maillage et un fichier .mtl associé qui référence les matériaux appliqués aux surfaces.
Exemple de Fichier OBJ
Voici un exemple simplifié décrivant un cube avec ses coordonnées de texture et ses normales :
# Cube de base avec matériaux
mtllib cube_materials.mtl
o MonCube
# Sommets
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 1.0 0.0
v 0.0 1.0 0.0
v 0.0 0.0 1.0
v 1.0 0.0 1.0
v 1.0 1.0 1.0
v 0.0 1.0 1.0
# Coordonnées de texture
vt 0.0 0.0
vt 1.0 0.0
vt 1.0 1.0
vt 0.0 1.0
# Normales de sommet
vn 0.0 0.0 -1.0
vn 0.0 0.0 1.0
vn 1.0 0.0 0.0
vn -1.0 0.0 0.0
vn 0.0 1.0 0.0
vn 0.0 -1.0 0.0
# Faces avec matériau
usemtl plastique_bleu
# Face avant
f 1/1/1 2/2/1 3/3/1
f 3/3/1 4/4/1 1/1/1
# Face arrière
f 6/2/2 5/1/2 8/4/2
f 8/4/2 7/3/2 6/2/2
# ... (autres faces)
Caractéristiques du Format
Les fichiers OBJ sont des fichiers texte pur ne nécessitant pas d'en-tête spécial. La structure est basée sur des lignes, où les commentaires commencent par le symbole #. Les espaces et les lignes vides sont autorisés à des fins de lisibilité.
Chaque ligne significative est identifiée par un mot-clé (ou commande). Il est possible de continuer une commande sur plusieurs lignes en utilisant un caractère d'échappement \ en fin de ligne, sans aucun espace ou tabulation après celui-ci.
Classification des Mots-clés
Les commandes OBJ peuvent être regroupées ainsi :
- Données Géométriques :
v(sommets),vt(textures),vn(normales),vp(sommets d'espace paramétrique). - Éléments de Maillage :
f(face/polygone),l(ligne),p(point). - Organisation et Apparence :
o(nom d'objet),g(nom de groupe),s(groupe de lissage),usemtl(assignation de matériau),mtllib(référence à une bibliothèque de matériaux). - Courbes et Surfaces (Avancé) :
deg,bmat,step,cstype,curv,surf, etc.
Détail des Éléments Principaux
1. Les Sommets (v)
Chaque ligne commençant par v définit un sommet dans l'espace 3D. Le format est v x y z, où x, y et z sont les coordonnées cartésiennes du point.
v 2.5 -1.0 3.25
v -0.75 0.0 1.5
2. Les Coordonnées de Texture (vt)
Ces lignes (vt u v [w]) définissent un point dans l'espace UV utilisé pour appliquer une texture. u et v varient généralement de 0.0 à 1.0. Le paramètre optionnel w est rarement utilisé (textures volumétriques).
vt 0.25 0.75
vt 0.8 0.2
3. Les Normales de Sommet (vn)
Ces vecteurs (vn i j k) définissent la direction perpendiculaire à la surface en chaque sommet, cruciale pour l'éclairage et l'ombrage.
vn 0.0 1.0 0.0
vn 0.707 0.0 -0.707
4. Les Faces (f)
La commande f définit une face (polygone) du maillage. Elle liste les indices (commençant à 1) des sommets qui la composent. Les formats courants sont :
f v1 v2 v3: Seulement les indices de sommets.f v1/vt1 v2/vt2 v3/vt3: Sommets avec coordonnées de texture.f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3: Sommets, textures et normales.
# Face triangulaire avec texture et normale
f 1/1/1 2/2/1 3/3/1
# Face quadrangulaire (souvent décomposée en deux triangles par les moteurs)
f 5/4/2 6/5/2 7/6/2 8/7/2
Remarque Importante : Un même sommet géométrique (v) peut être référencé avec différentes coordonnées de texture (vt) ou normales (vn) dans différentes faces. Cela permet d'avoir des coutures de texture ou des angles vifs. L'interpolation des couleurs et de l'éclairage à travers une face est calculée à partir des attributs de ses sommets.