If you are looking at a metallic map and wondering whether metal should be black or white, the short answer is simple: white means metal, black means non-metal.
In a standard metallic/roughness PBR workflow, the metallic map is closer to a mask than a normal grayscale texture. Bare steel, aluminum, copper, brass, or another exposed metal should usually be white. Wood, stone, plastic, rubber, ceramic, paint, dust, rust, and most other materials should be black.
The part that trips people up is everything in between. A metallic map can technically contain gray values, but for most real materials the useful values are close to 0 or 1. The interesting work is deciding which parts of the surface are actually exposed metal.
Metallic map black or white?
The basic convention is:
| Metallic value | Meaning |
|---|---|
| Black / 0.0 | Non-metal, also called a dielectric |
| White / 1.0 | Raw metal, also called a conductor |
| Gray / between 0 and 1 | A blend between the two models, usually only useful around transitions or layered contamination |
Epic's Unreal Engine documentation recommends treating metalness as a black-and-white mask for typical materials. Adobe's PBR guide describes the same convention: black represents non-metal and white represents raw metal.
That makes metallic different from roughness. Roughness is expected to use a wide range of grayscale values because a surface can be slightly rough, moderately rough, or very rough. Metalness is usually answering a more binary question: is this pixel exposing metal or not?
Why metallic maps are mostly binary
The metallic input changes how the shader interprets the material.
For a non-metal, the base color behaves like diffuse surface color and the material has a mostly neutral specular reflection. For a metal, the diffuse component disappears and the base color contributes to the color of the reflection instead.
That is a major switch in shading behavior, which is why a constant 0.5 metallic value across an object usually does not represent a physically believable material. It tells the shader to blend halfway between two different surface models.
Blender's current Principled BSDF describes the same behavior. Metallic 0 uses the dielectric model, while Metallic 1 gives a fully metallic reflection tinted by the base color.
You can absolutely create stylized materials with intermediate values. But if you are trying to make a physically grounded PBR surface, start with black or white and only introduce gray where the surface itself gives you a reason.
Painted metal is black where the paint is intact
A painted steel panel is one of the easiest examples to understand.
The substrate may be steel, but paint is not metal. If the paint fully covers the steel, those pixels should be black in the metallic map. Where the paint chips off and exposes bare steel, those pixels should be white.
This is why a useful metallic map for a worn metal object often looks like a mask of chipped edges and scratches rather than a grayscale copy of the base color.
The same logic applies to powder coating, lacquer, primer, stickers, thick dirt, or other non-metallic layers sitting on top of metal. The shader should describe what is visible at the surface, not what the object is made from underneath.
A prompt like worn painted steel panel, chipped industrial paint, exposed bare metal edges, light grime and scratches gives the material generator enough information to distinguish the coating from the exposed substrate. We still recommend checking the metallic result visually, especially around chipped transitions where the material changes from paint to bare metal.
Rust is not metallic
Rust comes from metal, but rust itself is not a metal surface in the PBR sense.
If iron or steel has oxidized into a visible rust layer, that rust should generally be non-metallic. The remaining exposed raw metal can stay white in the metallic map, while the rusted areas become black.
This matters because making the entire object metallic just because it started as steel often produces the wrong look. Rust should respond more like a rough dielectric material than polished or exposed metal.
The same idea applies to corrosion, patina, heavy oxidation, and many surface deposits. Ask what the renderer is actually seeing at that pixel.
What about dirt, dust, grease, and fingerprints?
Thin contamination is where the answer becomes less perfectly binary.
A thick layer of dry dirt or dust can be treated as non-metallic because the dirt is now the visible surface. Very thin grime, fingerprints, oil, or worn transitions can sometimes justify intermediate values, especially when the pixel represents a blend between exposed metal and a non-metallic layer.
That does not mean you should paint broad gray noise across the whole metallic map. Most of the map should still have a clear material identity.
If a steel plate has light fingerprints, we would usually keep the steel metallic and let the roughness map carry most of that variation. Fingerprints often change how sharp the reflection is more than they change the underlying material class.
Metallic is not the same as reflective
This is one of the most common PBR mistakes.
A surface does not need to be metallic to reflect light. Plastic, glass, varnished wood, ceramic, paint, and many other non-metals can have strong reflections.
The metallic map is not a reflection-strength map. It tells the shader whether the surface behaves as a metal or a dielectric.
If you want polished plastic to look shinier, changing roughness is usually the right move. Turning the metallic value up will change the material model and can make the plastic look physically wrong.
This is also why a rough metal is still metallic. A cast iron surface can have Metallic = 1 and a high roughness value at the same time. It is still metal, but its reflections are broad and broken up.
Our roughness map vs gloss map guide goes deeper on that distinction.
How to use a metallic map in Blender
In Blender, connect the metallic texture to the Metallic input of the Principled BSDF.
Set the Image Texture node to Non-Color. A metallic map is data, not display color, so it should not be interpreted through the same color transform as your base color texture.
For a material made entirely from one substance, you may not need a texture at all. A clean steel material can simply use Metallic = 1. A wood or concrete material can use Metallic = 0.
A texture becomes useful when one material contains both metallic and non-metallic regions, like chipped paint over steel, metal hardware embedded in plastic, or a label sitting on aluminum.
Blender's Principled BSDF documentation explains the metallic input and how it switches between dielectric and metallic shading models.
How to use a metallic map in Unreal Engine
Unreal uses the same convention: 0 is non-metal and 1 is metal.
Import the texture as linear data with sRGB disabled, then connect it to the Metallic input. Epic specifically recommends black and white values for most metalness masks, using black for paint or other non-metal coverings and white where raw metal is exposed.
If your metallic object looks unexpectedly black in Unreal, that does not automatically mean the metallic map is inverted. Metals depend heavily on reflected environment lighting. A metallic surface in a dark scene with nothing useful to reflect can look much darker than the same material in Substance Painter or Blender under a bright HDRI.
Before changing the map, check the environment, reflection setup, roughness, and color-space settings.
Epic's Physically Based Materials documentation covers the metallic input in more detail.
Should a metallic map contain gradients?
Usually not across a single clean material.
A steel region should not fade slowly from Metallic 0.2 to 0.8 just to create visual variation. That variation belongs more naturally in roughness, normal, color, or surface layering.
Gradients can make sense where the pixel footprint genuinely contains a transition between metal and non-metal, or when a thin coating partially covers the substrate. Antialiasing at boundaries will also naturally create a few intermediate pixels.
The mistake is using gray as decoration rather than as a description of mixed material coverage.
Why generated metallic maps need a sanity check
Generated PBR materials make it easy to get a complete map set quickly, but metallic is one map where a simple visual check is valuable.
If you generated concrete, wood, fabric, plaster, leather, soil, or another non-metal surface, the metallic map should be mostly or entirely black. If you generated clean exposed steel or copper, it should be mostly white. A worn painted steel surface should contain both.
That quick test catches a lot of problems before the material even reaches the renderer.
At twirl, we generate metallic alongside albedo, normal, roughness, and height. We think of the maps as a set, not isolated images. The metallic map defines the material class, while roughness, color, normal, and height provide the surface variation that makes the material actually feel convincing.
If you are still getting familiar with the full set, our guide to PBR maps explains what each one contributes.
A simple rule to remember
If you are unsure whether a pixel in your metallic map should be black or white, ask one question: is the visible surface at this point raw metal?
If yes, make it white. If no, make it black.
Then use roughness and the other maps to describe whether that metal is polished, scratched, oxidized, dusty, brushed, or worn. Keeping those jobs separate makes PBR materials much easier to reason about and much more predictable when you move them between Blender, Unreal Engine, Unity, or another renderer.