Appearance
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 field | Source |
|---|---|
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) |
illum | 2 (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
| Aspect | Preserved | Notes |
|---|---|---|
| Geometry | ✓ | Faithful mesh, faces, normals, UVs. |
| Materials (PBR approximation) | ✓ | Diffuse / specular / emission. PBR collapsed to Blinn-Phong. |
| Textures | ✓ | Color, roughness, normal maps as referenced KTX2 files. |
| Sub-object names | ✓ | One per material group. |
| Animation | ✗ | OBJ 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
- Unzip the downloaded archive into a folder.
- In Blender: File → Import → Wavefront (.obj).
- Pick the
.obj; Blender finds the.mtlautomatically because they share a folder. - 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.