TA Toolbox Home / Tool Tutorial
How to Generate PBR Maps: Complete Guide to Normal, Roughness, Metallic
Introduction
Physically Based Rendering (PBR) requires a specific set of maps to accurately simulate real-world materials. Among them, Normal, Roughness, and Metallic maps are the most essential components. This tutorial will guide you on how to generate these maps.
Normal Map Generation
Normal maps store surface normal direction, used to add visual complexity of geometric details. Generation methods include:
Baking from High-Poly Model
Use modeling software (such as Blender, Maya, ZBrush) to bake high-poly model details onto a low-poly model.
- Create low-poly and high-poly models.
- In Blender, select the low-poly model, enter the Shading workspace, add an Image Texture node, and create a new normal map.
- Use the "Bake" function of the Cycles renderer, set Bake Type to "Normal", and select the high-poly model as the target.
- Bake to obtain the normal map.
- Import a color texture or grayscale height map.
- Adjust parameters such as strength and blur.
- Export the normal map.
- Open a surface photo in an image editing software (such as Photoshop).
- Convert to grayscale, adjust contrast so rough areas are brighter and smooth areas are darker.
- Use high-pass filtering or inversion to extract roughness information.
- Based on material properties, use selection tools or color range to select metal areas.
- Fill with white, and fill non-metal areas with black.
- Use feathering or gradients for transition areas.
- **Blender**: Free and open-source, supports baking normals from high-poly.
- **Substance Suite**: Industry standard, offers Designer and Painter with powerful procedural and hand-painting capabilities.
- **CrazyBump / ShaderMap**: Designed for generating normal, roughness and other maps from photos.
- **Materialize**: Free tool that can generate multiple PBR maps from a single photo.
- **AwesomeBump**: Open-source alternative.
- **Color Space**: Normal maps should use linear color space; roughness and metallic maps usually use linear or grayscale, avoiding sRGB correction.
- **Map Resolution**: Decide based on target platform and model complexity, typically 1024x1024 or 2048x2048.
- **Seamless Tiling**: If the material needs to tile, ensure the generated maps are seamless.
- **Consistency**: Ensure all maps are aligned with consistent texture coordinates.
Generating from Photos
Use normal map generation tools (such as CrazyBump, ShaderMap, AwesomeBump) to generate normal maps from diffuse maps or height maps.
Procedural Generation
In node-based tools like Substance Designer, combine noise, shapes and other nodes to generate normal maps.
Roughness Map Generation
Roughness maps control the micro-roughness of the surface, affecting the blurriness of reflections. White indicates rough (strong diffuse reflection), black indicates smooth (strong specular reflection).
Extracting from Photos
Procedural Generation
In Substance Designer, use Grunge Maps, Noise and other nodes to generate roughness variation, combined with blend nodes for control.
Manual Painting
For specific materials, manually paint roughness in texture painting software (such as Substance Painter, Mari).
Metallic Map Generation
Metallic maps specify which areas are metal (white) or non-metal (black), usually only 0 or 1, but gray values can be kept for transition areas.
Creating Masks from Photos or Textures
Procedural Generation
In Substance Designer, use ID maps or material blending to define metal areas.
Manual Painting
In Substance Painter, use fill layers and masks to precisely control metalness.
Tool Recommendations
Notes
Summary
There are multiple methods to generate PBR maps, choose according to project needs and resources. Baking from high-poly offers highest quality but is time-consuming; generating from photos is fast but limited in accuracy; procedural generation is flexible but requires expertise. It is recommended to combine multiple methods.
FAQ
I only have a diffuse color map, can I generate complete PBR maps?
Yes, but with limited quality. Tools like Materialize, ShaderMap can infer normal, roughness, etc. from diffuse maps, but results may be inaccurate and require manual adjustment.
Is it normal for a normal map to appear bluish?
Yes. Normal maps are stored in tangent space by default, where the Z axis (blue channel) typically points outward, so the overall appearance is blue.
What is the difference between roughness and glossiness?
Roughness is the inverse of glossiness. In roughness maps, white indicates rough and black indicates smooth; in glossiness maps, it is the opposite. Many engines use roughness.
Does the metallic map have to be pure black and white?
Not necessarily. For most materials, the boundary between metal and non-metal is clear, but transition areas (e.g., rusted metal) can use grayscale values.
How to ensure baked normal map details are correct?
Ensure the high-poly and low-poly models match well, UVs are properly unwrapped, and use sufficient sampling and cage settings during baking.