← Back to posts

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.

Blog image

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

Blog image

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.
Blog image

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.

Enjoyed This Article?

Get more insights like this delivered to your inbox. No spam, just valuable content to help grow your business.