Metal Normal Map PBR Guide: Brushed Steel, Cast Iron, and Scratches

tutorialnormal-mapmetalpbrmaterialsshaders

Texturing metal surfaces in a Physically Based Rendering (PBR) pipeline poses a unique challenge that catch many 3D artists off guard. Unlike dielectric materials (wood, brick, leather) where light penetrates beneath the surface through diffuse subsurface scattering, raw conductor metals reflect 100% of light directly from their outermost electromagnetic skin. Because Metallic = 1.0 eliminates diffuse reflection, every micro-facet encoded into a metal normal map is magnified under specular highlights.

Extreme macro close-up 3D render of brushed steel plate with fine horizontal normal map grain and directional specular highlights

In conductor metals, specular glints directly trace normal map vectors, requiring clean separation between macro geometric forms and micro brushed streaks.

If your metal normal map is too strong, sharp glints shatter into distracting white static noise and harsh aliasing fringes. If it is too weak, your titanium armor or machined steel engine block looks like cheap, polished plastic wrap. Below is the production workflow for authoring, balancing, and shading high-impact metal normal maps across industrial brushed steels, heavy cast iron, and battle-worn scratched alloys.

The Dual-Layer Architecture for Metal Normal Maps

Convincing metal textures require separating low-frequency structural deformation from high-frequency surface machining:

[Dual-Layer Metal Normal Blending Architecture]
(Macro Normal: Weld seams, structural dents, stamping bevels) ──┐
                                                                 ├──> [Reoriented Normal Blend (RNM)] ──> [Principled BSDF]
(Micro Normal: Tiled brushed hairpins, lathe grooves, grit)  ──┘
  1. Macro Normal Layer (Structural / Asset-Specific): Encodes stamping bevels, stamped rivets, structural dents, hammered hammer-peen dimples, and weld beads. This layer is tied directly to the asset’s bespoke UV layout and is authored with moderate to high relief depth (Strength: 0.8 - 1.2).
  2. Micro Normal Layer (Detail / Tiled Machining): Encodes directional hairline brushing, abrasive wheel polish marks, or casting sand pit pores. This layer is usually tiled 4x to 16x across the mesh to ensure extreme crispness during first-person camera close-ups.

Why Simple Math Add Fails When Blending Metal Normals

Never blend two normal maps together using simple RGB addition or Photoshop Overlay blending. Adding RGB channels breaks vector normalization, squashes the Z component, and creates dark halos along edge transitions.

Always use Reoriented Normal Mapping (RNM) nodes (in Unreal Engine, the BlendAngleCorrectedNormals function; in Blender, the Vector Rotate or specialized normal blend group) to rotate the micro-detail vector onto the tangent plane defined by the macro normal.

PBR Metal Reference and Normal Calibration Table

The table below details calibrated PBR parameters and normal map recommendations for five representative industrial metal types:

Metal Material TypeBase Color (RGB Hex)MetallicRoughness RangeNormal Map StyleNormal Strength
Mirror Chrome / Silver#F5F5F5 (Pure tint)1.00.02 - 0.05Near flat #8080FF; ultra-subtle micro polishing wipes0.05 - 0.15
Brushed Stainless Steel#C8C9CB (Cool grey)1.00.20 - 0.35Directional horizontal hairline grooves with anisotropy0.30 - 0.60
Rough Cast Iron#454545 (Dark iron)1.00.60 - 0.80High-frequency Voronoi sand-pit dimples and pebble bumps0.80 - 1.20
Machined Weapon Steel#707378 (Gunmetal)1.00.25 - 0.45Directional lathe rings, edge wear bevels, and acute scratches0.50 - 0.80
Weathered Bronze / Copper#D28A62 (Base alloy)1.0 (0.0 under patina)0.35 - 0.65Hammered facet relief, oxidation pitting, and corrosion scaling0.70 - 1.10

Note: For rusted or heavily oxidized metals (such as green verdigris patina or orange ferric rust), paint the Metallic channel down to 0.0 in the oxidized regions. Rust is a dielectric mineral oxide, not a raw metal.

Step-by-Step: Crafting Anisotropic Brushed Metal

Brushed aluminum and stainless steel appliances display elongated specular streaks perpendicular to the direction of polishing lines. Here is how to construct a realistic brushed metal shader:

  1. Generate Directional Micro Hairlines: Create or generate a tileable normal map consisting of fine, parallel horizontal grooves with high-frequency micro variation.
  2. Align UVs to the Machining Axis: Ensure mesh UV islands are strictly aligned orthogonally to the brushing direction (X or Y axis). Any skewed UV seam will break the continuous circular reflection on lathe-turned cylindrical parts.
  3. Synchronize Roughness and Anisotropy:
    • In Blender Principled BSDF, set Anisotropic to 0.7 - 0.9 and Anisotropic Rotation to 0.0 (or 0.25 if brushing runs vertically).
    • In Unreal Engine, feed an Anisotropy float into the material input and supply a 2D tangent vector flow map to steer specular glints along complex curved panels.
  4. Modulate Scratches into Roughness: Wire the inverted red/green channel derivatives of your scratch normal map into your Roughness map. Physical abrasions that groove into metal simultaneously scatter light more diffusely, so scratch crevices must render rougher (Roughness: 0.55+) than unmarred mirror surrounds.

Generating Realistic Metal Textures in Production

Authoring individual brushed lines, sand-cast pitting, and heavy industrial armor plating by hand in 2D software is tedious and prone to noticeable seam repetition. Modern procedural and AI generators calculate mathematically accurate tangent vectors that hold up under dynamic engine illumination.

If you need to generate production-ready metal normal maps and complete PBR texture sets with calibrated roughness and metallic channels, accelerate your hard-surface pipeline with our Free Online Normal Map and PBR Generator — Try Scratched Steel Plate. You can also generate seamless modular metal surfaces for environment props using our Seamless Texture Generator Online.

Metal Normal Map Production Checklist

  • Metallic set to strictly 1.0 for bare metal, modulated to 0.0 for rust or dirt.
  • Macro structural dents separated from micro brushed detail via RNM blending.
  • Normal strength calibrated low (0.2 - 0.6) on high-gloss metals to prevent specular shimmer.
  • UV layouts straightened along machining axes for anisotropic brushed parts.
  • Scratch normal crevices coupled with increased local roughness values.

Related reading: Metallic Map Explained · Roughness Map Guide · Normal Map Creation Workflows · Flat Normal Map Color Explained

Ready to create your own materials?

Turn any image into a production-ready PBR texture in seconds.

Open NormalMap.ai Editor