Skip to content

OBJ + MTL

OBJ + MTL is the old reliable. Every mesh tool reads it. Prompt2CAD ships a Wavefront OBJ alongside its MTL companion file, packaged as a single .zip so the importer finds the materials next to the geometry.

Use OBJ when:

  • You're going into Blender, Modo, Maya, Cinema 4D, Houdini.
  • You're handing the model to a renderer (V-Ray, Corona, Cycles).
  • You want textures and geometry in one go, but the destination tool isn't a web/AR viewer.

How to export

Export → OBJ (.obj + .mtl). A .zip file downloads containing:

  • <project-name>.obj — geometry.
  • <project-name>.mtl — materials.

The OBJ has an mtllib <project-name>.mtl directive at the top; keep both files in the same folder when importing.

What's in the OBJ

Standard Wavefront OBJ — vertices, faces, normals, UV coordinates, with usemtl <name> directives switching between materials. Your importer turns each usemtl group into a sub-object so you can select parts individually after import.

What's in the MTL

One newmtl <name> block per material slot in the model. Each block carries:

MTL fieldSource
Kd (diffuse)The material's color
Ks (specular)Computed from metalness (pure-metal mirrors its diffuse; dielectric reflects neutral grey)
Ns (Phong exponent)Mapped from roughness (rough → low; smooth → high)
d (opacity)1 - transmission (glass becomes translucent)
Tr (transparency)transmission
Ke (emissive)emissive * emissiveIntensity (for self-illuminated materials)
Ni (IOR)ior if set (glass, marble)
illum2 (Blinn) for dielectric, 3 (raytraced reflection) for metallic

Units and orientation

OBJ files are written in meters with no coordinate remap. Three.js Y-up matches OBJ's convention (Y-up is the OBJ default).

What's preserved

AspectPreservedNotes
GeometryFaithful mesh, faces, normals, UVs.
Materials (PBR approximation)Diffuse / specular / emission. PBR collapsed to Blinn-Phong.
TexturesColor, roughness, normal maps as referenced KTX2 files.
Sub-object namesOne per material group.
AnimationOBJ is a static format.

PBR → MTL approximation

OBJ's MTL is a Blinn-Phong format from 1990. The library materials in Prompt2CAD are PBR (Cook-Torrance). The exporter maps as best it can, but renderers that import OBJ will see a Blinn-Phong approximation, not the original PBR.

If you want true PBR fidelity, export GLB instead — that's the modern format and matches the viewport exactly.

Blender workflow

  1. Unzip the downloaded archive into a folder.
  2. In Blender: File → Import → Wavefront (.obj).
  3. Pick the .obj; Blender finds the .mtl automatically because they share a folder.
  4. In Blender 4+, the importer creates Principled BSDF materials from the MTL — close to the original PBR, though not pixel-identical.

If you have the texture files (KTX2) referenced by the MTL, Blender 4+ will load them; older Blender versions may need you to convert KTX2 → PNG manually first.

When NOT to use OBJ

  • For web 3D / AR. GLB is the right format — it's PBR-native, smaller, and self-contained.
  • For SketchUp Free. Use DAE.
  • For CAD. Use STEP — OBJ is a mesh, not a solid.
  • For 3D printing. Slicers can read OBJ but STL is more universal.

Next: GLB, DAE, STL.

Docs for Prompt2CAD — derived from the source code at the commit that built them.