OBJ

Format de fichier 3D simple et universel pour échanger des meshes statiques. Stocke la géométrie et les UVs, mais pas les animations ni les rigs.

Asset Free 3D au format OBJ

Le OBJ (Wavefront Object) est un format de fichier 3D ouvert et simple, créé par Wavefront Technologies dans les années 80. C’est le format le plus universel pour échanger des Mesh Mesh Structure de base d'un objet 3D composée de vertices, edges et faces formant une surface polygonale. C'est la géométrie fondamentale de tout modèle 3D. Voir la définition complète → statiques entre logiciels. Sa simplicité est sa force : tout logiciel 3D peut lire un fichier OBJ.

Le principe

Le format OBJ est un fichier texte lisible par un humain. Il stocke :

  • Les positions des Vertex (v)
  • Les coordonnées UV (vt)
  • Les normales (vn)
  • Les Face Face Surface plane délimitée par au moins trois edges. Les faces sont les polygones visibles du mesh, ceux qui reçoivent textures, matériaux et éclairage. Voir la définition complète → s (f)
  • Les groupes d’objets (g)
  • Les références aux matériaux (usemtl)

C’est tout. Pas d’animation, pas de rig, pas de hiérarchie complexe. Juste de la géométrie pure.

Structure d’un fichier OBJ

Un fichier OBJ est du texte brut :

# Commentaire
mtllib materiau.mtl

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

vt 0.0 0.0
vt 1.0 0.0
vt 1.0 1.0
vt 0.0 1.0

vn 0.0 0.0 1.0

usemtl MonMateriau
f 1/1/1 2/2/1 3/3/1 4/4/1

Cette simplicité permet de débugger ou même d’éditer un OBJ avec un simple éditeur de texte.

Le fichier MTL (matériaux)

Le fichier OBJ est souvent accompagné d’un fichier .mtl (Material Template Library) qui décrit les matériaux :

newmtl MonMateriau
Ka 0.1 0.1 0.1
Kd 0.8 0.0 0.0
Ks 1.0 1.0 1.0
Ns 100.0
map_Kd texture_diffuse.png
map_Bump texture_normal.png
ParamètreSignification
KaCouleur ambiante
KdCouleur diffuse
KsCouleur spéculaire
NsBrillance (shininess)
map_KdTexture diffuse
map_BumpNormal/Bump map

Le format MTL est ancien et ne supporte pas les workflows PBR modernes (pas de Metallic, pas de Roughness Roughness Paramètre PBR contrôlant la rugosité d'une surface. Une valeur basse donne un aspect lisse et réfléchissant, une valeur haute un aspect mat et diffus. Voir la définition complète → ).

Ce que OBJ stocke

  • Vertices (positions 3D)
  • Coordonnées UV
  • Normales par vertex
  • Faces (triangles, quads, n-gons)
  • Groupes d’objets
  • Matériaux basiques (via MTL)

Ce que OBJ ne stocke pas

  • Animations
  • Armatures / Rigs
  • Skinning / Weight painting
  • Hiérarchie parent-enfant
  • Modifiers
  • Matériaux PBR
  • Blend Shapes / Morphs
  • Caméras et lumières

OBJ vs FBX vs glTF

CritèreOBJFBXglTF
AnimationNonOuiOui
RigNonOuiOui
PBRNonPartielOui
SimplicitéTrès simpleComplexeMoyen
Lisible humainOuiNonJSON
UniversalitéExcellenteExcellenteBonne
Taille fichierGros (texte)MoyenPetit

Quand utiliser OBJ

Bon choix pour :

  • Échange de meshes statiques simples
  • Compatibilité maximale (vieux logiciels)
  • Archivage longue durée
  • Impression 3D (alternative à STL)
  • Debug (fichier lisible)
  • Assets statiques (props, décors)

Mauvais choix pour :

  • Personnages animés
  • Tout ce qui nécessite un rig
  • Workflow PBR moderne
  • Scènes complexes avec hiérarchie
  • Fichiers volumineux (format texte = lourd)

Dans les logiciels 3D

Le format OBJ est supporté universellement :

  • Blender : Import/Export natif
  • Maya : Import/Export natif
  • 3ds Max : Import/Export natif
  • Cinema 4D : Import/Export natif
  • ZBrush : Format d’échange principal
  • Substance Painter : Import meshes
  • Unity : Import natif
  • Unreal : Import natif

Focus Blender

Exporter en OBJ

  1. File → Export → Wavefront (.obj)
  2. Configurez les options
  3. Choisissez l’emplacement
  4. Cliquez Export OBJ

Options d’export

OptionDescription
Selection OnlyExporte uniquement la sélection
Apply ModifiersApplique les modifiers avant export
Include UVsExporte les coordonnées UV
Include NormalsExporte les normales
Include MaterialsGénère le fichier MTL
Triangulate FacesConvertit tout en triangles
ScaleFacteur d’échelle
Forward / UpOrientation des axes

Paramètres recommandés

Pour l’impression 3D :

  • Apply Modifiers : Oui
  • Triangulate Faces : Oui
  • Include UVs : Non (inutile)
  • Include Normals : Oui
  • Scale : selon vos unités

Pour l’échange entre logiciels :

  • Apply Modifiers : Selon besoin
  • Include UVs : Oui
  • Include Normals : Oui
  • Include Materials : Oui
  • Forward : -Z Forward (standard)
  • Up : Y Up (standard)

Importer un OBJ

  1. File → Import → Wavefront (.obj)
  2. Naviguez vers le fichier
  3. Configurez les options d’import
  4. Cliquez Import OBJ

Options d’import

OptionDescription
Split by ObjectSépare selon les groupes « o »
Split by GroupSépare selon les groupes « g »
Smooth GroupsImporte les smoothing groups
Image SearchCherche les textures automatiquement

Problèmes courants et solutions

Mesh inversé (normales)

Problème : Le mesh apparaît retourné ou invisible.

Cause : Normales inversées ou axe Up différent.

Solutions :

  • Recalculez les normales : Mesh → Normals → Recalculate Outside
  • Vérifiez l’axe Up à l’import/export

Textures manquantes

Problème : Le mesh est gris, pas de textures.

Causes :

  • Fichier MTL absent ou mal lié
  • Chemins des textures incorrects
  • Textures dans un autre dossier

Solutions :

  • Gardez OBJ, MTL et textures dans le même dossier
  • Vérifiez les chemins dans le fichier MTL
  • Réassignez les textures manuellement

Échelle incorrecte

Problème : L’objet est trop grand ou trop petit.

Cause : Pas d’unité standardisée dans OBJ.

Solutions :

  • Ajustez le Scale à l’import/export
  • Redimensionnez après import

Fichier trop lourd

Problème : Le fichier OBJ est énorme.

Cause : Format texte = pas de compression.

Solutions :

  • Décimez le mesh avant export
  • Utilisez un format binaire (FBX, glTF) pour les gros meshes
  • Compressez le fichier (.zip)

Smoothing perdu

Problème : Le mesh apparaît facetté.

Cause : Smoothing groups non exportés ou mal interprétés.

Solutions :

  • Activez « Write Normals » à l’export
  • Utilisez Auto Smooth Auto Smooth Fonction qui lisse automatiquement les faces selon leur angle, permettant d'avoir des bords doux et des arêtes vives sur un même objet sans ajouter de géométrie. Voir la définition complète → dans Blender après import

OBJ et l’impression 3D

Le format OBJ est une alternative au STL pour l’impression 3D :

CritèreOBJSTL
Couleur/TextureOui (via MTL)Non
Taille fichierPlus grosPlus petit
UniversalitéExcellenteExcellente
SimplicitéSimpleTrès simple

Pour l’impression couleur, OBJ est préférable car il peut inclure des informations de texture.

Bonnes pratiques

Avant l’export :

  1. Appliquez les transformations (Apply)
  2. Appliquez les modifiers si nécessaire
  3. Vérifiez les normales (Face Orientation)
  4. Nettoyez le mesh (Remove Doubles)

Organisation des fichiers :

MonProjet/
├── modele.obj
├── modele.mtl
└── textures/
    ├── diffuse.png
    ├── normal.png
    └── specular.png

Gardez toujours le fichier MTL et les textures avec le fichier OBJ.

Versions et variantes

OBJ standard

  • Format Wavefront original
  • Le plus compatible

OBJ avec vertex colors

  • Extension non standard
  • Ajoute des couleurs par vertex
  • Support variable selon les logiciels

Pour aller plus loin