Le
format OBJ n'est vraiment pas compliqué pour créer une surface divisée en triangles.
Chaque sommet est décrit sur une ligne séparée débutant par la lettre
v suivie des valeurs x y z
Puis chaque triangle est décrit sur une ligne débutant par
f suivie de 3 indices des sommets précédemment définis (le premier sommet a pour indice 1).
Par exemple, le code suivant définit un carré composé de deux triangles :
Code: Select all
v 0 0 0
v 0.5 0 0
v 0.5 0.5 0
v 0 0.5 0
f 1 2 3
f 3 4 1
Attention à l'orientation des faces ! Le vecteur normal d'une face doit être orienté vers l'observateur pour que la face soit visible (ou alors doublez les faces).
Si vous voulez définir le tout avec des couleurs différentes, il faudra rassembler les faces par couleur et précéder chaque groupe de faces d'une ligne débutant par la lettre
o ou
g suivie d'un nom unique, et d'une ligne
usemtl qui référence le nom d'une couleur définie dans un
fichier mtl, ce fichier mtl étant déclaré en début de fichier avec une ligne
mtllib.
Par exemple, le code suivant définit un carré composé de deux triangles dont une face est bleue et l'autre verte :
Code: Select all
mtllib carre.mtl
v 0 0 0
v 0.5 0 0
v 0.5 0.5 0
v 0 0.5 0
g faceBleue
usemtl bleu
f 1 2 3
f 3 4 1
g faceVerte
usemtl vert
f 1 3 2
f 3 1 4
le fichier carre.mtl pouvant être aussi simple que :
Code: Select all
newmtl bleu
Kd 0 0 1
newmtl vert
Kd 0 1 0