Skip to content
Back to Blog
format-comparisons

STL vs OBJ vs glTF : Comparaison des formats de fichiers 3D

2026-05-17 9 min read

Pourquoi le choix de ton format est si important

Choisis le mauvais format de fichier 3D et tu passeras des heures à te battre avec des textures manquantes, une géométrie cassée ou un slicer qui refuse tout simplement d'ouvrir ton modèle. STL, OBJ et glTF sont les formats que tu rencontreras le plus souvent, mais ils sont nés à des décennies différentes pour des raisons totalement distinctes. Le STL a été standardisé en 1987, à l'époque des premières imprimantes 3D. L'OBJ est apparu vers 1992 comme un format d'échange flexible de Wavefront Technologies. Et le glTF 2.0 ? Il a été ratifié par le Khronos Group en 2017, conçu de A à Z pour le rendu en temps réel sur le web. Ce gouffre de 30 ans entre le format le plus ancien et le plus récent explique presque toutes les différences pratiques. Un fichier qui s'imprime parfaitement dans PrusaSlicer peut ressembler à une masse grise informe dans un visualiseur web, et un modèle prêt pour le jeu vidéo est souvent complètement démesuré pour une simple imprimante FDM de bureau. Ce guide décortique la structure, les fonctionnalités et la taille de fichier typique de chaque format, pour t'aider à faire le bon choix avant même de penser à la conversion, ou avant de demander à un outil comme CocoConvert de le faire pour toi.

STL : Le cheval de bataille de l'impression 3D

STL signifie Standard Tessellation Language, bien que tu l'entendras aussi appelé STereoLithography. Le format est d'une simplicité brutale : il représente une surface 3D comme un maillage de triangles. C'est tout. Pas de couleur, pas de textures, pas de matériaux, juste de la géométrie pure. Chaque triangle est défini par ses trois sommets et un vecteur normal pointant vers l'extérieur. Dans un fichier STL binaire, cette information est compactée en 50 octets bien serrés : 12 pour la normale, 36 pour les sommets, et 2 octets pour un compteur d'attributs qui est presque universellement ignoré. Cette efficacité signifie qu'un modèle avec un million de triangles pèse un poids raisonnable de 50 Mo. Il existe une version ASCII qui est lisible par un humain, mais elle est 5 à 6 fois plus volumineuse, donc le binaire est la seule voie à suivre. Pour l'impression 3D, la simplicité du STL est sa plus grande force. Les slicers comme PrusaSlicer, Cura, Bambu Studio et Chitubox ouvrent tous les STL nativement, sans poser de questions. Quand tu exportes depuis un programme comme Fusion 360 (Fichier → Exporter → .stl), tu peux affiner le niveau de détail, en définissant une tolérance de corde aussi basse que 0,001 mm. Ce chiffre dicte à quel point les triangles plats épousent la surface courbe idéale. Une tolérance plus faible crée plus de triangles et un fichier plus gros, mais c'est la clé pour obtenir des courbes lisses sur ton impression finale. Mais les limites du format sont tout aussi claires. Comme il ne gère que la géométrie, il ne peut traiter aucune information visuelle. Si ton modèle a besoin de plusieurs couleurs ou de finitions de matériaux différentes, le STL ne te sera d'aucune aide. Il n'a également aucune notion d'unités. Une valeur de '1.0' pourrait être un millimètre ou un pouce, une source de frustration classique pour quiconque a déjà importé un modèle pour découvrir qu'il a la taille d'un grain de poussière ou d'un gratte-ciel.

OBJ : Géométrie et matériaux, mais à quel prix

Par défaut, les fichiers OBJ sont des fichiers texte ASCII qui listent les sommets (v), les coordonnées de texture (vt), les normales (vn) et les faces (f) sur des lignes individuelles. Un fichier compagnon séparé, le MTL (Material Template Library), définit les matériaux et pointe vers des images de texture externes comme des JPEG ou des PNG. Cette structure multi-fichiers est le plus gros casse-tête quand on travaille avec l'OBJ. Si tu envoies juste le fichier .obj à quelqu'un, il recevra un modèle sans aucune information de couleur. Tu dois être rigoureux et regrouper le .obj, le .mtl et toutes les textures référencées dans un fichier Zip ou un dossier partagé, sinon ton destinataire ne verra qu'un objet gris et plat. Ce qui sauve l'OBJ, c'est son support logiciel massif. Blender, Maya, Cinema 4D, ZBrush, Rhino... quasiment toutes les applications 3D existantes peuvent le lire et l'écrire. Il a aussi quelques avantages clés par rapport au STL, comme le support de plusieurs objets nommés dans un seul fichier, ce qui le rend meilleur pour les scènes complexes. De plus, il peut définir des faces en utilisant des quads et des n-gons, pas seulement des triangles. C'est un avantage énorme pour les artistes qui utilisent des workflows de modélisation par subdivision, car cela préserve la topologie propre qu'ils ont mis tant d'efforts à créer avant qu'elle ne soit triangulée pour le rendu final ou l'impression. La taille des fichiers peut vite grimper. Un modèle architectural détaillé peut avoir un OBJ de 200 Mo, un minuscule MTL de 5 Ko et 800 Mo de textures haute résolution. Le format n'a pas de compression intégrée, bien que certains outils proposent une variante compressée .objz. L'OBJ manque aussi totalement de support pour les fonctionnalités modernes comme l'animation, le rigging de squelette ou les hiérarchies de scène complexes. Cela en fait un mauvais choix pour les assets de jeux vidéo ou toute expérience interactive. Pour livrer des modèles statiques et visuellement riches entre différents logiciels, l'OBJ reste un mal nécessaire. Souviens-toi juste de garder tous ses petits compagnons dans le même dossier.

glTF : Le JPEG des formats 3D

Le Khronos Group a cette fameuse formule pour le glTF 2.0 : le 'JPEG de la 3D'. Et l'analogie est parfaite. C'est un format conçu pour une distribution efficace et un chargement rapide, pas pour l'édition active. Un fichier glTF est basé sur du JSON et peut référencer des données binaires externes (.bin) et des textures. Mieux encore, il peut être empaqueté dans un seul fichier binaire autonome avec l'extension .glb. Pour tout type de distribution, tu devrais toujours utiliser le GLB. C'est un seul fichier, aucun risque d'avoir des assets manquants, et il est souvent 20 à 40 % plus petit que le pack OBJ équivalent une fois les textures intégrées. Le glTF 2.0 a été conçu en pensant au matériel graphique moderne, c'est pourquoi il supporte les matériaux PBR (physically-based rendering) dès le départ. Son modèle de matériau de base utilise des paramètres metallic-roughness qui correspondent directement à ce que des moteurs comme Three.js, Babylon.js, Unity et Unreal attendent. Règle la valeur metallic à 1.0 et roughness à 0.1, et tu obtiens un chrome convaincant. Mets metallic à 0.0 et roughness à 0.8, et tu as un plastique mat et plat. Ces propriétés sont stockées directement dans le fichier, garantissant que le modèle ait le même aspect partout sans que tu aies à réassigner manuellement les matériaux dans chaque application. C'est aussi là que le glTF prend une large avance sur les anciens formats. Il supporte les morph targets, l'animation squelettique, plusieurs caméras et une hiérarchie de scène complète. Des extensions ajoutent même le support d'effets visuels avancés comme le verre (transmission) et les matériaux cireux (subsurface scattering). Un seul fichier GLB peut alimenter un configurateur de produit sur un site web, un aperçu en AR dans une application mobile, et un personnage dans un jeu sur navigateur. Mais le glTF est un format terrible pour l'édition itérative. Tu ne modéliserais pas directement en glTF, pas plus que tu n'éditerais un roman dans un PDF. Chaque fois que tu exportes en glTF, la géométrie est généralement triangulée et les shaders de matériaux complexes sont 'bakés' en textures PBR simples. Faire des allers-retours avec un modèle via ce processus le dégradera. Donc, considère le glTF comme le format de livraison final pour les projets web et temps réel, mais conserve toujours tes fichiers sources originaux dans un format natif comme `.blend`.

Comparaison directe : Un guide pratique

Voici comment les trois formats se comparent sur les critères qui comptent vraiment dans un flux de production. **Support de la géométrie :** Les trois peuvent gérer un maillage de triangles de base. L'OBJ est plus flexible, ajoutant le support des quads et des n-gons, ce qui est utile pour la modélisation. Le glTF se concentre sur les données prêtes pour le rendu, supportant les triangles et les ensembles de lignes (pour les wireframes). **Couleur et matériaux :** Le STL est daltonien ; il n'a aucun support natif. L'OBJ utilise des fichiers MTL externes pour définir des matériaux de base avec un ombrage de Phong. Le glTF est le grand gagnant ici, avec un modèle de matériau PBR complet intégré directement dans le format. **Textures :** Encore une fois, le STL n'en a aucune. L'OBJ dépend de fichiers image externes référencés depuis son fichier compagnon MTL. Le glTF peut soit référencer des textures externes, soit, dans le format GLB, les intégrer directement. Il dispose d'emplacements dédiés pour les maps de couleur de base, de normale, de metallic-roughness, d'occlusion et d'émission. **Animation :** C'est facile. Le STL et l'OBJ n'ont aucun support d'animation. Le glTF supporte à la fois l'animation squelettique et par morph-target, ce qui en fait le seul choix des trois pour du contenu animé. **Taille de fichier typique :** Pour un modèle de complexité moyenne (environ 500k triangles, un matériau), un STL binaire fera environ 25 Mo. L'équivalent en OBJ avec son MTL et ses textures pourrait peser entre 35 et 120 Mo selon la taille des textures. Un GLB, grâce à la compression moderne, peut réduire cela à seulement 8–25 Mo. **Compatibilité logicielle :** Le STL est le langage universel des outils d'impression 3D et de fabrication. L'OBJ est le format d'échange classique, supporté par presque tous les outils de création de contenu numérique (DCC). Le glTF est maintenant la force dominante pour tout ce qui est temps réel et web, avec un support dans les applications DCC qui s'améliore de jour en jour. **Cas d'usage principal :** Envoie un STL à ton imprimante 3D FDM, SLA ou SLS. Utilise l'OBJ pour déplacer un modèle statique entre différents programmes de modélisation et de rendu. Choisis le glTF (spécifiquement le GLB) pour les visualiseurs web, l'AR/VR, les moteurs de jeu et l'e-commerce. Si tu imprimes une pièce physique, exporte un STL. Si tu envoies un modèle architectural détaillé à un artiste de rendu, l'OBJ est une valeur sûre (bien que le FBX soit parfois meilleur). Si tu mets un produit sur un site web ou dans une appli AR, le GLB est la seule réponse.

Convertir entre les formats : ce qui marche et ce qui ne marche pas

CocoConvert peut gérer les tâches de conversion les plus courantes : STL vers OBJ, OBJ vers STL, OBJ vers glTF/GLB, et GLB vers OBJ. Quand tu ne convertis que de la géométrie, surtout avec du STL, le processus est béton. Le STL ne contient que des données de triangles, et cette information se mappe proprement dans les sections de géométrie de l'OBJ et du glTF. Le vrai défi, c'est de passer d'un format riche à un format plus simple. Si tu convertis un OBJ entièrement texturé en STL, toutes les données de matériaux et de textures sont supprimées. Pourquoi ? Parce que le format STL n'a littéralement aucun endroit où les mettre. CocoConvert t'en avertira, mais il ne peut pas créer magiquement des fonctionnalités dans un format qui ne les supporte pas. Pour la plupart des gens, obtenir la géométrie brute pour une imprimante 3D est de toute façon exactement ce dont ils ont besoin. La conversion d'OBJ en GLB est une tâche populaire, mais ce n'est pas une correspondance 1:1 simple. CocoConvert s'efforce de traduire les anciens paramètres MTL basés sur Phong en équivalents PBR modernes. La couleur diffuse devient la couleur de base, et l'exposant spéculaire (la valeur 'Ns' dans un fichier MTL) est utilisé pour approximer la rugosité (roughness). C'est une approximation, pas une traduction parfaite. Un plastique brillant qui semblait parfait dans un moteur de rendu d'ancienne génération pourrait avoir un aspect légèrement différent dans un visualiseur PBR. Pour un travail critique, tu obtiendras les meilleurs résultats en exportant directement en glTF depuis ton application de création d'origine (comme Blender ou Maya), ce qui te donne un contrôle total sur la configuration des matériaux PBR. Il est aussi important de savoir que CocoConvert ne supporte pas actuellement les fichiers GLB animés. Si tu télécharges un GLB contenant une animation squelettique et que tu le convertis en OBJ, ces données d'animation seront perdues, te laissant avec un maillage statique dans sa pose par défaut. Nous travaillons activement sur des conversions qui prennent en charge l'animation, mais pour l'instant, l'exportateur glTF intégré de Blender (Fichier → Exporter → glTF 2.0) est l'outil le plus fiable pour gérer les assets animés.

Choisir le bon format pour ton projet

Le bon choix est en fait plus simple qu'il n'y paraît une fois que tu sais où le fichier est destiné. Ton modèle va sur une imprimante 3D ? Utilise du STL. C'est aussi simple que ça. Tous les slicers de la planète le préfèrent, les fichiers sont raisonnablement petits, et son manque de fonctionnalités n'a pas d'importance car les imprimantes ne font pas le rendu des matériaux. Assure-toi juste d'exporter un STL binaire, pas ASCII, et de régler ta tolérance de corde de manière assez stricte pour avoir des courbes lisses — 0,01 mm est un excellent point de départ pour un modèle de 200 mm de haut. Ton modèle transite entre différents programmes de modélisation 3D ou va chez un artiste de rendu ? L'OBJ est le format d'échange classique et sûr. Sois juste discipliné : garde le MTL et tous les fichiers de texture dans le même dossier avec des noms clairs. Et s'il te plaît, évite les espaces dans les noms de fichiers ; tu serais surpris du nombre d'anciens outils qui s'étouffent encore avec. Si ta scène est complexe, tu pourrais aussi envisager le FBX, qui est meilleur pour préserver les hiérarchies de scène et l'animation, bien qu'il ait son propre lot de bizarreries propriétaires. Ton modèle est destiné au web, à une appli AR, à un jeu ou à n'importe quel visualiseur temps réel ? Utilise le GLB. Il n'y a pas de meilleur choix. Le format en un seul fichier évite les assets manquants, le modèle de matériau PBR assure la cohérence visuelle, et la compression moderne comme Draco et KTX2 peut réduire un asset de 50 Mo à 5 Mo avec à peine une perte de qualité. C'est le langage natif du web 3D moderne. Si jamais tu n'es pas sûr de ce dont un client ou un collaborateur a besoin, demande-lui simplement quel logiciel il utilise. Cette seule question te donnera la réponse. Un utilisateur de Cura a besoin d'un STL. Un artiste sur Blender peut travailler avec de l'OBJ ou du GLB. Un développeur web qui construit un visualiseur de produits va très certainement te demander un GLB. Faire correspondre le format à l'outil de destination évite un mal de crâne à tout le monde.