Two formats from different eras doing the same job differently: GLB is a binary container built for the web - compact, packed, ready for PBR - while OBJ is plain text that every application from ZBrush to an ageing CNC suite can open without being asked twice. Moving between them takes one export dialog. The two files disagree about what a model even is, and that disagreement is the whole job.
What each format carries
| Layer | GLB | OBJ |
|---|---|---|
| Geometry | Yes, as one bundle | Yes, as one or many files |
| UVs | Yes | Yes |
| Textures | Embedded in the binary | External files beside the model |
| Materials | PBR: base colour, metallic, roughness | MTL: diffuse colour, bump slot, no PBR |
| Animation and rigs | Yes | No |
| Node hierarchy | Full scene graph | Flat groups |
The conversion, step by step
01 - Import and inspect. File, Import, glTF 2.0. Before touching anything, read three things in the sidebar: dimensions (metres is the convention), the material panel (is a base-colour image attached?), and the outliner, where nested empties from the glTF node tree are normal - select the mesh, not the wrapper.
02 - Get the textures onto disk. GLB keeps its images inside the binary; Blender reads them from memory, but OBJ cannot reference what is not a file. Use File, External Data, Unpack Resources so every image lands in a textures folder next to the model.
03 - Read the materials before they change. Open each material and note what the exporter will and will not find: base colour and a normal map survive the trip; metallic and roughness sliders do not. Knowing which materials lean on them tells you whether a bake is worth the time.
04 - Export with intent. File, Export, Wavefront OBJ: include materials so the MTL is written, set path mode to Copy so the exporter duplicates the textures next to the file, keep scale at 1.0 when the scene is already honest, and leave triangulation off unless the receiving application is fussy. OBJ keeps quads; most consumer apps do not care.
05 - Deliver three things, together. The OBJ is geometry, the MTL is the material map, the texture folder is the paint. Ship them zipped with the relative paths intact; separate them and the receiver gets grey.
The three traps
The PBR downgrade. OBJ materials predate physically based rendering. A brushed-metal panel that reads beautifully in GLB arrives as flat grey with a bump map. If the OBJ is for previewing or printing, shrug and move on; if it is heading into a renderer, bake the base colour with lighting and AO into the texture and carry what OBJ can actually hold.
Texture paths. The MTL stores relative paths to the images. Rename the folder or move one file and every material breaks silently. The Copy path mode is the fix: it re-writes the images beside the export and re-points the MTL at them.
The silent flattening. Animation, armatures and the node hierarchy do not just get skipped - they disappear without complaint. If the GLB came from a store page promising a rigged character, converting it to OBJ throws the rig away. Export FBX or glTF instead; save OBJ for static geometry.
When OBJ is still the right answer
Sculpting tools, CNC and CAD pipelines, modding communities and print preparation all still expect OBJ, and its plain-text nature means it opens in more places than anything else on disk. When the receiving application wants OBJ, converting in Blender - where you can see the scale, the materials and the mesh - beats every online converter that asks you to upload a client's asset to a stranger server.
One habit worth keeping: when the GLB arrived from an AI generator, run the health pass before exporting. Check scale, check that the material actually has an image, and decimate the mesh if it is leaving for a game engine. The conversion is never the hard part - the assumptions are.
