MTL — PBR Material (Pr / Pm alongside Phong)
The material library for the OBJ in this group, carrying both the original Phong fields and the de-facto PBR extensions (Pr roughness, Pm metallic, Ke emissive). The file that tells you whether an importer reads MTL's PBR additions or only its 1995 subset.
# Novus Examples - MTL for pbr-sphere.obj
# Kd/Ks/Ns are the classic Phong fields; Pr/Pm/Ke are the PBR extensions most
# modern importers read. Values chosen to match the glTF metallic-roughness twin.
newmtl NovusBrushedMetal
Ka 0.000000 0.000000 0.000000
Kd 0.720000 0.740000 0.780000
Ks 0.720000 0.740000 0.780000
Ke 0.000000 0.000000 0.000000
Ns 180.000000
Ni 1.450000
d 1.000000
illum 2
Pr 0.280000
Pm 1.000000
Specifications
- Format
- Wavefront MTL
- Materials
- 1
- Name
- NovusBrushedMetal
- Roughness Pr
- 0.28
- Metallic Pm
- 1
- Illum
- 2
- Phong Fields
- Ka Kd Ks Ns Ni d
Testing contract
Expected to pass- Scenario
- Import the OBJ+MTL pair and inspect the resulting material's roughness and metalness.
- Expected result
- Roughness 0.28 and metalness 1.0 come from Pr/Pm; an importer that reads only Ns/Ks derives a different, shinier-but-non-metal material.
What is a .mtl file?
An MTL file (.mtl, Material Template Library) is the companion to a Wavefront OBJ — a plain-text list of named materials with colours, specular/opacity values, and texture-map references. The OBJ links to it via an mtllib line.
How to use this file
Use an example .mtl file to test OBJ material parsing, texture-map resolution, and OBJ+MTL import pipelines.
How to use this file for testing
“MTL — PBR Material (Pr / Pm alongside Phong)” is a deterministic Novus Examples fixture for PBR material testing, Conversion testing. Complete PBR material sets — base colour, normal, roughness, metallic, ambient occlusion, and height — for testing material-generation models and physically-based renderers channel by channel.
Documented properties for this file: Wavefront MTL. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
3D and CAD fixtures carry one small, documented solid or scene. Convert and inspect against the known geometry, units, and structure; format twins let you diff interchange fidelity, and the 3D viewer previews the actual mesh.
Related files
- glbglTF Material — doubleSided True vs False (GLB)Two open half-shells with identical geometry and opposite `doubleSided` flags. Because the shells are open you can see straight into them, which is the only way to tell backface culling from a lighting difference.

- glbglTF Material — KHR_materials_clearcoat (GLB)A rough red base under a full-strength, near-mirror clearcoat lobe — the two-layer material that car paint, lacquered wood and phone cases all need. The base and coat roughness differ by an order of magnitude, so a renderer that collapses the layers is obvious.

- glbglTF Material — KHR_materials_emissive_strength (GLB)Emission pushed past the core spec's 0-1 emissiveFactor clamp by a 6x strength multiplier — the extension that exists because HDR bloom needs values core glTF cannot express. A tone-mapping and bloom-threshold fixture.

- glbglTF Material — KHR_materials_unlit (GLB)A sphere whose material opts out of lighting entirely via KHR_materials_unlit — the shading path used for baked scenes, maps and stylised art. Renders as a flat silhouette in a conformant viewer and as a lit ball in one that ignores the extension, which makes the difference obvious.

- glbglTF Material — KHR_materials_variants (GLB)One mesh, two named material variants (Copper and Cobalt) selectable at runtime — the extension behind every product configurator that swaps a finish without reloading geometry. The primitive also carries a plain `material`, so viewers with no variant support still render something.

- glbglTF Material — Metallic-Roughness (GLB)A sphere with the glTF core metallic-roughness material — full metal, low roughness, no textures, so the numbers in the JSON are the whole material. The baseline half of the metallic-roughness vs specular-glossiness twin.

Generated by generation/models_p7.py. Free for any use, no attribution required — license.