Normal map vs bump map: what's the difference?
Both normal maps and bump maps add the illusion of surface detail — scratches, pores, grooves — without adding polygons. The difference is in how much information they store, and therefore how convincing they look.
The short answer
A bump (height) map is a grayscale image where brightness means height — simple, but it only pushes detail straight in or out. A normal map is an RGB image that stores a full surface direction per pixel, so it can fake detail that catches light from the side. Normal maps are richer and are the default in modern PBR; bump/height maps are still useful for displacement and parallax.
How a bump map works
A bump map is grayscale — white is high, black is low. The renderer reads the brightness gradient and nudges the surface normal up or down to fake relief.
It's cheap and intuitive, but because it only encodes height along one axis, it can't represent detail that faces sideways — so beveled or angled detail looks softer and less defined than it should.
How a normal map works
A normal map uses the red, green, and blue channels to store an X/Y/Z direction for the surface at each pixel — which is why they look mostly blue-purple. This lets it tilt the apparent surface in any direction.
That extra information means beveled edges, angled scratches, and fine detail catch light realistically from the side, not just head-on. A normal map carries far more surface information than a grayscale bump map, which is why it became the standard.
Where height maps still fit
The grayscale “bump map” lives on as the height/displacement map in PBR — it isn't obsolete. It drives true displacement and parallax occlusion, adding real or apparent depth that a normal map alone can't.
Many materials ship both: a normal map for fine directional detail and a height map for parallax and silhouette-changing displacement. They complement each other rather than compete.
Frequently asked questions
Is a bump map the same as a height map?
Essentially yes — a classic grayscale bump map is a height map, where brightness encodes height. In PBR it's usually called the height or displacement map.
Should I use a normal map or a bump map?
For most surface detail, use a normal map — it's richer and is the modern standard. Use a height map alongside it for parallax or true displacement.
Why is my normal map blue?
Because a flat surface points straight up in tangent space, which encodes to a blue-ish color. Reds and greens appear where the surface tilts.
Generate a normal map from a photo or height detail and preview it lit in 3D — instantly, in Mixos.