Understanding Normals in 3D Textures (Normal Maps Explained)
Published: 8/19/2025
Before we dive into normal maps and their use case, let's firstly understand what a normal is, in vectors.
A normal is a vector that is perpendicular to the surface.(see the image below). That blue line is a normal vector.

So now we know what is normal. Lets see why we use normal texture, so you will also get the clarity of what normal maps are
Say we have a texture as follow, a brick texture

If we have to make it using geometry (adding more polygons) it will make it too big in size and make the performance lag.
So to solve this we use normal maps which mimics these surface bumps, wrinkles. Each pixel of this texture contains a little arrow that says "pretend the surface is facing this way here.” Meaning each pixel has a direction.
So how we get these bluish purplish colors?
- Pure blueRGB(0,0,1) means the surface points straight “out of the polygon.”
- Variations towardred/greenmean the surface normal tilts left/right or up/down.
- The blue channel is usually strong (close to 1) because normal mostly point outward.

And then the GPU reads the normal texture at each pixel and uses those directions along with the lighting equations doing their work to mimic the bumps, wrinkles.
The role of lighting: -
- If the normal points towards the light, the pixel is bright
- If the normal points away from the light, the pixel is dark.
This is how normal maps work.