Foundations

PBR Metallic-Roughness Materials Explained

Build predictable glTF materials by understanding base color, Fresnel reflectance, metalness, roughness, environment lighting, and common authoring errors.

Physically based rendering, or PBR, is a family of shading practices that uses physically meaningful inputs and energy-aware light behavior. It does not make a render automatically photorealistic. It makes material values more portable: a plausible plastic should remain recognizably plastic under a studio environment, outdoor daylight, or a dim interior instead of being painted for one light rig.

glTF 2.0 standardizes a metallic-roughness material model for real-time exchange. Its compact set of inputs works across web viewers, engines, and DCC tools, but only when authors understand what those inputs represent. The fastest way to create unstable materials is to adjust every slider until one preview looks attractive.

The four questions the core model answers#

For each shaded point, the core material roughly describes:

  • what color the surface reflects;
  • whether it behaves as a conductor or dielectric;
  • how microscopically smooth or rough it is;
  • whether it contributes visible emissive color.

Lighting, view direction, surface normal, and environment complete the calculation. Occlusion can attenuate indirect contribution, and a normal map can change the local shading direction. Transparency and double-sided state control how the surface enters the render pipeline rather than what substance it represents.

The glTF material specification defines defaults as well as ranges. If no material is assigned, implementations use a default material. If baseColorFactor is omitted, its default is white with alpha 1.0; metallicFactor and roughnessFactor each default to 1.0. Omitted does not mean zero.

Dielectrics and conductors#

Most everyday nonmetals are dielectrics: paint, plastic, wood, skin, stone, glass, and ceramic. They reflect a small portion of light at the surface and scatter or absorb the rest within the material. Their specular reflection near a straight-on view is often around 4% for an index of refraction near 1.5, though real substances vary.

Metals are conductors. Visible light does not travel through them in the same way; their reflection is colored by the metal. In the metallic-roughness model, base color supplies that colored reflectance when metallic is 1. A gold surface therefore needs a warm base color and metallic value of 1, not yellow diffuse paint with an arbitrary bright highlight.

The metallic control is best treated primarily as a classification:

  • 0 for dielectric material;
  • 1 for exposed metal;
  • values between 0 and 1 mainly at blended boundaries, antialiased masks, dirt, oxidation, or layered transitions.

A broad region at metallic 0.43 rarely corresponds to a homogeneous real substance. It may look interesting in one environment, but it makes authoring intent ambiguous. Painted steel is dielectric where paint covers it and metallic where scratches reveal steel; use a mask that describes those regions.

Base color is not one universal paint channel#

For a dielectric, base color describes diffuse reflectance. Avoid values at exact 0 or 1 over large real-world areas. Pure black absorbs all represented diffuse light and pure white reflects all of it, leaving no room for plausible response or texture variation. Calibrated capture or trusted reference values are better than an eyedropper from a photograph whose exposure and lighting are unknown.

For metal, base color describes the colored specular response. Dirt or coating above metal may change the visible layer into a dielectric; that is not the same as darkening a fully metallic base color.

The texture and factor multiply. If a base-color texel decodes to linear RGB 0.6, 0.4, 0.2 and the factor is 0.5, 1.0, 1.0, the shader receives 0.3, 0.4, 0.2 before later lighting operations. Exporters sometimes bake the factor into pixels and reset it to white; others preserve both. Check the final GLB when exact values matter.

Roughness controls highlight distribution#

Roughness represents microscopic surface variation, not the brightness of a highlight. A low value concentrates reflection into a sharp lobe; a high value spreads it broadly. The total reflected energy should remain controlled by the model, so making a surface rough does not simply “remove specular.”

This distinction is visible on a black plastic sphere. At roughness 0.1, a window reflection may be crisp and small. At 0.5, it becomes broad and soft. At 0.9, it may be difficult to recognize, yet grazing angles can still reflect the environment.

Roughness variation often carries more material identity than noisy base color. Fingerprints, sanding direction, worn edges, and molded texture change highlight shape. Author them at scales that the final texture and mip chain can preserve. A one-pixel roughness pattern in a 4096 source disappears or averages once the viewer uses a 512 mip level.

Do not invert gloss maps blindly. If glossiness is defined as 1 minus roughness in the source workflow, inversion is a valid starting conversion. But differing response curves, remapping, and channel color spaces can make a literal 1 − value visually wrong. Compare standardized spheres under the same environment.

Fresnel behavior and viewing angle#

Fresnel behavior makes surfaces more reflective at grazing angles. Look across a calm lake and the sky reflection strengthens; view nearly straight down and more of the water below is visible. The same principle affects plastic, varnish, skin, and glass.

Core metallic-roughness glTF fixes much of the dielectric specular behavior to keep the model portable. Extensions such as KHR_materials_ior and KHR_materials_specular add control when a target supports them. Use extensions for a material requirement, not merely because the exporter exposes a checkbox. Unsupported extensions can be ignored or approximated by viewers.

An index of refraction of 1.5 corresponds to normal-incidence reflectance of about 4% using ((1.5 − 1) / (1.5 + 1))². Raising IOR to 2.0 gives about 11.1%. This nonlinear relationship explains why arbitrary “specular brightness” intuition can be misleading.

Environment lighting is part of the test#

A reflective material cannot show information absent from its lighting environment. A perfectly smooth metal rendered against an empty black environment will mostly look black. That is not evidence that metallic is broken; the surface has little to reflect.

Use an image-based lighting environment with:

  • bright and dark regions that reveal reflection shape;
  • a neutral reference so color casts are understandable;
  • enough dynamic range for strong highlights;
  • a known exposure;
  • a visible background or reference spheres when debugging.

PBR validation should include at least two environments. A material tuned to a single dramatic studio HDR may hide excessive roughness, crushed base color, or baked lighting. A neutral studio and an outdoor environment expose different problems.

Tone mapping and output color management also alter appearance after shading. If two viewers disagree, compare their environment, exposure, tone mapper, output transfer function, extension support, and texture decoding before changing material values.

Normal and occlusion inputs#

A normal map changes the shading frame but does not add displaced geometry. Its scale controls how strongly the encoded X and Y deviations affect the final normal. Excessive scale can create inverted-looking highlights and reveal UV seams. Evaluate the map under a rotating light and at grazing angles.

Occlusion is intended for indirect light visibility. A value of 1 means unoccluded; smaller values reduce relevant indirect contribution. Baking deep black into exposed corners can make a model look convincing under flat light but implausible under strong illumination. Keep the bake clean, control intensity through the material, and inspect it without the base-color texture.

The common ORM packing places occlusion in red, roughness in green, and metallic in blue. It saves image bindings and can improve compression locality, but the channels still have separate meanings. If occlusion uses UV1 while roughness uses UV0, one packed image cannot represent both mappings without changing the asset.

Alpha, transmission, and glass#

Reducing base-color alpha does not create physically complete glass. Alpha blending composites a surface; it does not by itself model refraction, thickness, absorption, or reflection from two interfaces. Core glTF can represent blended transparency, while material extensions add transmission, volume, and IOR behavior.

For a thin window in a broad-compatibility viewer, alpha blend may be an acceptable approximation. For a colored liquid container seen close up, transmission and volume support may be essential. Define fallback behavior and test the exact target. A valid file can use an extension that a particular viewer does not implement.

A disciplined authoring sequence#

  1. Assign the correct metal or dielectric classification before adding texture noise.
  2. Establish base-color values from calibrated references or plausible ranges.
  3. Set roughness using a neutral, information-rich environment.
  4. Add large-scale roughness variation, then smaller detail that survives delivery mips.
  5. Add normal detail and verify tangent orientation.
  6. Add occlusion conservatively and inspect it separately.
  7. Configure alpha or extensions only when the substance requires them.
  8. Export and validate the GLB.
  9. Compare in at least two target-compatible viewers.
  10. Test under the production tone mapping and exposure.

Lock lighting while comparing material versions. If exposure, camera, geometry, and material all change together, the team cannot attribute an improvement.

Measure the exported material, not the node graph#

An authoring graph may contain procedural noise, color ramps, nested groups, and renderer-specific layers that glTF cannot express directly. Exporters may bake some work to images, approximate it with core parameters, or omit it. Save a machine-readable inventory from the delivered file: material names, primitive references, factors, image indices, texture-coordinate sets, alpha modes, and extensions used.

For a regression test, render a turntable at fixed exposure and compare it with the approved export rather than the live Blender scene. Sample a few known texels and factors as numeric assertions. A metal mask expected to contain only 0 and 255 should not quietly acquire mid-gray values after a lossy conversion. A roughness factor expected to be 0.35 should not become 1.0 because a disconnected exporter node was ignored.

This separation catches a common organizational failure: approving the source file while shipping a materially different artifact. The customer sees the artifact, so it owns the acceptance criteria.

Archive the inventory beside the render so later tool upgrades can be compared numerically, not from memory.

Include the extension list and image checksums in that archive too.

A compact regression sheet might sample 5 materials under 3 lighting environments, retain 12 images, and verify 8 bits per mask channel. Those counts make missing coverage obvious: a candidate with only 4 materials or 2 environments did not run the same test.

Diagnosing a material that looks wrong#

If it appears too dark, inspect these in order:

  • whether a metal has an environment to reflect;
  • base-color texture color space;
  • metallic channel and its packing;
  • environment exposure and tone mapping;
  • vertex normals and normal-map convention;
  • unexpected occlusion strength;
  • double application of a color conversion.

If it appears like plastic instead of metal, confirm metallic reaches 1 in the exported numeric channel. JPEG artifacts, sRGB decoding of a linear mask, or a material factor can pull values away from the intended endpoint.

If highlights are too broad, inspect roughness without the roughness texture, then inspect the green channel itself. Confirm the runtime is not reading a glossiness map as roughness. If detail swims or changes across triangles, check tangents, mirrored UV handedness, and triangulation.

Portable-material checklist#

  • Metal regions use metallic 1 and dielectric regions use 0 except at real transitions.
  • Base color has the correct physical meaning for each classification.
  • Base-color and emissive images are sRGB; numeric maps are linear.
  • Roughness describes highlight spread rather than painted shadow.
  • Normal maps agree with the exported tangent basis.
  • Occlusion is not multiplied into every form of direct light.
  • Packed ORM channels and UV-set references agree.
  • Environment, exposure, and tone mapping are recorded with review images.
  • Required material extensions are supported on every target.
  • Transparent materials have an explicit fallback.
  • The exported factors and texture values match authoring intent.
  • Reference renders include neutral dielectric and metal comparison objects.

Sources and further reading#

PBR is most useful as a constraint on meaning. When each input describes a known surface property and review lighting is controlled, materials become easier to diagnose, compress, and move between runtimes without a cycle of viewer-specific guesswork.

Keep learning

Related guides

Foundations10 min

What Is a GLB File?

A practical guide to the binary glTF container: its byte layout, contents, loading behavior, inspection tools, and limits.

glbgltf3d-formats
Foundations14 min

Skeletal Rigging Basics: How Bones and Skin Weights Drive a 3D Character

Learn how joints, bone hierarchies, and skin weights make a 3D character move, and how a rigged GLB actually deforms in web and game engines.

riggingskeletal animationskin weights
Foundations10 min

Quad Retopology for Beginners: Build a Clean Mesh That Keeps the Shape

Learn what quad retopology is, why artists use it, and how to rebuild a dense sculpt or scan as a practical low-resolution mesh.

quad retopologyretopologytopology