Obj

Un article de Wikipédia, l'encyclopédie libre.

OBJ est un format de fichier contenant la description d'une géométrie 3D. Il a été défini par la société Wavefront Technologies dans le cadre du développement de son logiciel d'animation Advanced Visualizer. Ce format de fichier est ouvert et a été adopté par d'autres logiciels 3D (tels que Poser de e-frontier, Maya de Autodesk, Blender, MeshLab, 3D Studio Max, Lightwave de Newtek, GLC_Player etc) pour des traitements d'import / export de données.

Les formes géométriques peuvent être définies par des polygones ou des surfaces lisses telles que des surfaces rationnelles et non rationnelles.

[modifier] Structure du fichier

Les fichiers OBJ sont au format ASCII (une version binaire existe, identifiée par l'extension MOD).

Un commentaire peut être placé en faisant débuter la ligne par le caractère #.

Une surface polygonale est décrite par un ensemble de sommets (accompagné de coordonnées de texture et de normales en chaque sommet) et d'un ensemble de faces.

Un sommet est défini de la manière suivante:

v 1.0 0.0 0.0 

Une coordonnée de texture est définie de la manière suivante:

vt 1.0 0.0

Une normale est définie de la manière suivante:

vn 0.0 1.0 0.0

Chaque face est ensuite définie par un ensemble d'indices faisant référence aux coordonnées des points, de texture et des normales définies précédemment.

Par exemple, la face suivante

f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3

définit un triangle constitué des sommets d'indices v1, v2 et v3 dans la liste des sommets v. Chacun de ces sommets possède une coordonnée de texture identifiée par son indice dans la liste des coordonnées de texture vt et une normale identifiée dans la liste des normales vn.

Lorsque plusieurs objets cohabitent dans le même fichier, la section définissant les faces est précédée par

g [nom de l'objet]

Des matériaux peuvent être référencés en important des fichiers mtl (material template library)

usemtl [nom de matériau]

[modifier] Exemple

A titre d'exemple, un cube[1] est défini de la manière suivante

# cube.obj
#
 
g cube
 
v  0.0  0.0  0.0
v  0.0  0.0  1.0
v  0.0  1.0  0.0
v  0.0  1.0  1.0
v  1.0  0.0  0.0
v  1.0  0.0  1.0
v  1.0  1.0  0.0
v  1.0  1.0  1.0

vn  0.0  0.0  1.0
vn  0.0  0.0 -1.0
vn  0.0  1.0  0.0
vn  0.0 -1.0  0.0
vn  1.0  0.0  0.0
vn -1.0  0.0  0.0
 
f  1//2  7//2  5//2
f  1//2  3//2  7//2 
f  1//6  4//6  3//6 
f  1//6  2//6  4//6 
f  3//3  8//3  7//3 
f  3//3  4//3  8//3 
f  5//5  7//5  8//5 
f  5//5  8//5  6//5 
f  1//4  5//4  6//4 
f  1//4  6//4  2//4 
f  2//1  6//1  8//1 
f  2//1  8//1  4//1 

[modifier] Liens externes

Autres langues