Local material workflow
Metal Surface Normal Map Generator
Use a subtle preset to study scratches, brushed lines or weathered metal. This is image-based surface conversion: it creates local shading maps and does not infer the physical metalness or reflectance of a photographed object.
Try the preset and upload a textureInspect under light
Drag the light · Arrow keys for precise movement
Remove reflections from the height source
A shiny metal photograph often contains more information about the room reflected in it than about the surface itself. A bright window reflection can become a raised rectangle; a dark reflected object can become a pit. Prefer a flat, evenly lit surface crop or a carefully prepared grayscale scratch pattern when making a normal-map source.
A metallic digital paper may be useful for stylized work, but its painted shine will also influence the result. Keep the original color design separate and inspect the height map before deciding that the converted material is usable. The procedural brushed example is original test artwork, not a photographed or measured alloy sample.
Keep scratches below the main object shape
The metal preset starts with strength 0.75, blur radius 1, height contrast 0.75, AO intensity 0.4 and roughness adjustment 0.5. The low strength is intentional: small marks should usually modulate the light rather than turn the panel into corrugated sheet. Increase it only after checking the material at the final scene scale.
Brushed lines should be consistent enough to read as a finish. If compression noise creates dots between the lines, prepare a cleaner image or increase blur slightly. A broad dent or bent panel belongs to the geometry of the object; this normal map only affects the local shading and will not change the silhouette.
Do not confuse roughness with metalness
The four-map pack contains an estimated roughness map, but no metalness map, calibrated specular response or anisotropic shader. A darker roughness input is an artistic adjustment inside this converter, not a measurement of the surface. Set the appropriate material model and metalness value in the destination renderer using a trustworthy reference.
Rust and painted areas can require separate material masks because they behave differently from exposed metal. This tool cannot identify those regions reliably from a decorative texture. If your source mixes rust, polished metal and paint, make separate masks or materials in your authoring tool rather than expecting one global preset to recover the correct physics.
Test both the border and the normal direction
The preset clamps the edges of the source by default. For a repeating brushed panel, check that the direction, line spacing and exposure match at opposite borders. Wrapped sampling changes how the edge is calculated, while an edge blend can visibly soften scratches. Neither should be treated as proof that the material tiles cleanly.
Export the normal direction expected by the shader and inspect it under a moving light. If grooves appear raised, compare OpenGL and DirectX using the same source, strength and camera. Keep all four exported PNGs together so their pixel dimensions remain aligned. Test a small material swatch before replacing a production material in a larger scene.
What you can download
Upload a PNG, JPEG or WebP up to 24 MB. Local processing reads the pixels in your browser and does not send the image to a server. The four map tabs show normal, height, ambient occlusion and roughness output. Download the selected 8-bit PNG or export all four maps in a ZIP. The free limit is 2048 pixels on the longest side; smaller images are not made more detailed by this conversion.
Pro Local unlocks individual PNGs up to 8K and ZIP or batch sources up to 4K, subject to the browser and archive limits shown in the workbench. The sample is only 384 by 384 pixels, so it remains that size when exported. Choose your own adequately sized source if you need a larger result. Higher resolution does not repair lighting or perspective errors in the source.
A short verification routine before using the pack
First compare the source and height map for false relief caused by color or shadows. Next move the preview light and check the normal direction. Then inspect opposite borders if the material will repeat. Finally open the downloaded PNGs or ZIP, check their dimensions and import a small test material into your renderer. The preview is a shading aid, not a measurement of physical material properties.
If a file cannot be decoded, choose a valid image or reload the procedural sample. Local exports continue to work when account services are temporarily unavailable; paid features require a verified entitlement. A failed local task shows a status message and can be cancelled or retried manually. Avoid running several large exports at once, especially on a phone. Keep the original source and test render so you can compare revisions rather than guessing from memory.