Vi3W
Skip to content

Materials

PBR materials

Surface descriptions built on physically based rendering, which models how real light reflects off real surfaces.

  • #materials
  • #texturing
  • #uv-mapping
  • #3d-file-formats

Quick answer

What are PBR materials?

Surface descriptions built on physically based rendering, which models how real light reflects off real surfaces. Instead of painting lighting into a texture, a PBR material stores physical properties in separate maps, such as base colour, metalness, roughness and normals, so the same asset looks correct under any lighting, in any engine that follows the model.

Why PBR replaced painted textures

Older game textures often had lighting painted into them: highlights on the top edge, shadows in the creases. That looked right under the one lighting setup it was painted for and wrong everywhere else. Move the asset into a night scene and it still glowed as if lit from above.

Physically based rendering separates the material from the light. The texture maps describe what the surface is: its colour, whether it is metal, how rough it is. The renderer works out what it looks like under whatever light is in the scene. Disney's 2012 shading course notes popularised the artist-friendly version of this model used in film, and real-time engines adopted it within a few years. Today it is the default in Blender's Principled BSDF, Unity, Unreal Engine, Godot and the glTF file format.

Metallic-roughness and specular-glossiness

There are two common ways to store the same physical idea.

Metallic-roughness is the dominant workflow. A metallic map says which parts are metal. A roughness map says how blurry reflections are. For non-metals the reflectance is fixed at a low, realistic value, so artists cannot accidentally author physically impossible surfaces. glTF 2.0 defines its core material this way.

Specular-glossiness stores reflectance colour directly in a specular map, with glossiness as the inverse of roughness. It gives more control, and more room for mistakes. It survives in older pipelines and some game projects, and assets often need converting between the two.

Getting the maps right

Most PBR problems come from a few predictable mistakes:

  • Lighting baked into base colour. Base colour should look flat and slightly dull, with no highlights or shadows. Ambient occlusion belongs in its own map.
  • Wrong colour space. Base colour is a colour image (sRGB). Metallic, roughness, normal and AO maps are data and must be read as linear. A roughness map imported as sRGB makes the whole material look wrong.
  • Mixed-up normal maps. OpenGL-style and DirectX-style normal maps flip the green channel. Blender, Unity and Godot use the OpenGL convention. Unreal Engine uses DirectX. A wrong convention makes bumps look like dents.
  • Grey metallic values. Real surfaces are metal or not. Values between 0 and 1 are for blending at edges and rust, not for "slightly metallic" plastic.

PBR maps also depend on good UV mapping: every map is sampled through the same UV layout, so stretching or mismatched texel density shows up in all of them at once.

PBR across file formats

How well materials survive export depends on the format. glTF stores metallic-roughness materials as part of the standard, so they usually arrive intact. FBX has no single agreed PBR material, so engines interpret its materials in different ways, and textures often need reconnecting. OBJ's companion MTL format predates PBR entirely. The differences are covered in 3D file formats and glTF vs FBX.

Common PBR texture maps and what they store

Common PBR texture maps and what they store
MapWhat it storesColour space
Base colour (albedo)The surface colour with no lighting or shadow baked insRGB
Metallic0 for non-metals, 1 for bare metal; rarely anything in betweenLinear
Roughness0 is mirror-smooth, 1 is fully matteLinear
NormalFine surface direction detail, faked without extra geometryLinear
Ambient occlusionSmall-scale contact shadow in creases and crevicesLinear

PBR materials in Vi3W

Vi3W generates PBR materials with every model, so the textures arrive as physical properties rather than painted-in lighting. glTF exports use the metallic-roughness model the format defines, which Godot, Three.js and Unreal read directly. See image to 3D for how materials are produced from a reference photo.

Frequently asked questions

Is the smoothness map the same map as the roughness map?

It is the same information, inverted. Smoothness is 1 minus roughness, so invert a roughness map to get a smoothness map. In Unity's HDRP mask map, smoothness goes in the alpha channel, alongside metallic in red, ambient occlusion in green and the detail mask in blue, and the texture must be imported with sRGB turned off.

Convert specular/gloss maps to metallic/roughness maps for Cycles?

Gloss converts exactly: invert it to get roughness. Specular does not convert one-to-one. Metals have a coloured specular and almost no diffuse colour, while non-metals reflect a small, colourless amount. So a metallic map has to be derived by deciding which areas are metal, and the base colour rebuilt from the diffuse map in those areas. Texturing tools can do this automatically, but check bare-metal areas by eye.

What texture maps should i include?

For a metallic-roughness asset: base colour, metallic, roughness and a normal map, with ambient occlusion and height as optional extras. You do not need a separate specular map. In this workflow, non-metal reflectance is a fixed physical constant and metal reflectance comes from the base colour, which is why texturing tools mark specular as unused. Export the normal map in the convention your engine expects (OpenGL- or DirectX-style).

Sources & further reading

From text to 3D

Create 3D models with AI in seconds.

Turn ideas into game-ready 3D models from text, a sketch or an image. No complex software — it all runs in your browser.

Last reviewed