TA Toolbox Home / TA Glossary

Metallic Roughness Workflow: A Guide to Creating PBR Materials

2026-08-24

Overview of the Metallic Roughness Workflow

The metallic roughness workflow is an implementation of PBR (Physically Based Rendering) that defines material properties through a set of texture maps, ensuring consistent appearance under various lighting conditions. It uses a Metallic map to distinguish metals from non-metals, a Roughness map to control surface smoothness, and an Albedo map to define base color. It is the standard workflow in modern game engines (like Unity, Unreal) and DCC tools (like Substance Painter).

Core Maps Explained

Albedo Map

The albedo map defines the base color of the material without any lighting information (shadows, highlights). For metals, albedo represents the metal's color; for non-metals, it's the surface color. The albedo map should not contain any baked lighting or shadows; otherwise, it breaks the physical correctness of PBR.

Metallic Map

The metallic map uses grayscale values to specify areas as metal or non-metal. White (value 1) indicates pure metal, black (value 0) indicates non-metal (wood, plastic). Metallic is usually binary but can have transition values for mixed materials (e.g., rusty metal). Metals have black diffuse and specular color from albedo; non-metals have diffuse from albedo and white specular.

Roughness Map

The roughness map controls the microscopic roughness of the surface. White (value 1) means completely rough, with strong diffuse and scattered specular; black (value 0) means completely smooth, with sharp specular. Roughness can be seen as the inverse of glossiness (roughness = 1 - glossiness).

Other Common Maps

  • **Normal Map**: Provides surface bump details for more realism.
  • **Ambient Occlusion (AO) Map**: Adds contact shadows and local darkening.
  • **Height Map**: Used for effects like parallax mapping to add depth.

Steps to Use the Metallic Roughness Workflow

  1. **Create or obtain PBR textures**: Use tools like Substance Painter, Quixel Mixer, or download from libraries.
  2. **Import into game engine**: Import the textures into Unity or Unreal and create a material.
  3. **Connect the maps**: Assign the albedo, metallic, roughness, normal, etc., to the corresponding material inputs.
  4. **Adjust parameters**: Modify tiling, offset, or material properties (e.g., metallic/roughness sliders) as needed.
  5. **Test under different lighting**: Check material appearance in multiple lighting conditions to ensure consistency.
  6. Comparison with Specular/Glossiness Workflow

    | Feature | Metallic Roughness | Specular Glossiness |

    |---------------------|--------------------|---------------------|

    | Number of maps | Fewer (metallic + roughness) | More (specular color + glossiness) |

    | Intuitiveness | Intuitive, easier | Slightly complex |

    | Edge artifacts | Possible white edges | Less common |

    | Control flexibility | Lower | Higher |

    | Modern engine support | Widely supported | Partially supported |

    In most cases, the metallic roughness workflow is recommended because it is simpler, uses fewer textures, and is less prone to physical errors.

    FAQ

    Should the metallic map be grayscale or color?

    The metallic map must be grayscale because metallic is a scalar value. Color channels would be ignored or cause errors.

    Can roughness map be replaced by glossiness map?

    Yes, roughness = 1 - glossiness. Some tools or engines use glossiness, and you can invert it to get roughness.

    Why shouldn't the metallic map have intermediate values?

    Physically, most materials are either metal or non-metal; intermediate values usually only appear in transition areas (e.g., corrosion, coatings). Therefore, it's recommended to keep the metallic map binary or with minimal transitions.

    How to avoid white edges on metallic boundaries?

    White edges are often due to incorrect albedo colors at the metal/non-metal boundary (e.g., non-metal areas using white). Ensure the albedo map is correct, or use higher resolution textures to reduce aliasing.

    Is the metallic roughness workflow suitable for all materials?

    It works for most hard-surface and character materials, but special materials (cloth, skin, car paint) may need additional maps (subsurface scattering, clear coat) to enhance realism.

FAQ

Should the metallic map be grayscale or color?

The metallic map must be grayscale because metallic is a scalar value. Color channels would be ignored or cause errors.

Can roughness map be replaced by glossiness map?

Yes, roughness = 1 - glossiness. They can be converted to each other.

Why shouldn't the metallic map have intermediate values?

Physically, materials are usually either metal or non-metal; intermediate values only appear in transition areas, so it's recommended to keep it binary or with minimal transitions.

How to avoid white edges on metallic boundaries?

Ensure the albedo map has correct colors at boundaries, or use higher resolution textures to reduce aliasing.

Is the metallic roughness workflow suitable for all materials?

It suits most materials, but special materials (skin, car paint) may need additional maps to enhance realism.