In Blender, normal maps are one of several ways to add detailed bumps, ridges and other realism to materials. Other methods include bump maps and displacement maps. Each have their own pros and cons. The benefit of normal maps is they don’t add extra geometry to our objects.

This page may contain affiliate links which pay me a commission if used to make a purchase. As an Amazon Associate I earn from qualifying purchases Privacy Policy

We can find high-quality PBR materials with normal maps at Poliigon.com.

We obtain a lot of realism from normal maps with very little sacrifice in performance or render times. This guide will cover everything we need to know about using normal maps in Blender. I have a YOUTUBE VIDEO on normal maps as well.

Normal Maps in BLENDER - Instant Realism to Materials

What Are Normal Maps in Blender?

To understand normal maps, we probably need to understand a little about Normals in 3D software. Every face, vertex and edge in an object faces a specific direction.

This direction is known as the “normal” and it’s used to calculate how light interacts with a surface. Often when we experience problems with shading, it’s because the normals are not aligned or have been flipped.

The normals of an icosphere are shown emitting from each face.
A visualization of normal (directions) extruding from each face of an icosphere.

A normal map is an image that tells Blender (or other 3D programs) to adjust the normal direction slightly on a per-pixel basis. This allows very fine details to be calculated just by adjusting how the light interacts with a surface.

Normal maps require three dimensional information. That means they need information about how a normal is to be adjusted along the X, Y and Z axes. Normal maps use a clever method of coding information for each axis into red, green and blue – also known as RGB – color information.

Then all of the information can be saved into a simple image file that can be interpreted by the render engine. It’s actually quite genius.

A normal map of a brick wall is displayed.
A normal map is a combination of red, blue and green data that represents X, Y and Z vector information.

If you’ve bought or downloaded a PBR material, you’ve received a series of image files. One of those files is a purplish-looking one. This is the normal map. That purplish-color is the combination of red, green and blue which represents normal information for the x, y and z axis of the material.

A plane with sections of red, green and blue materials is used as a normal map to demonstrate the effects of each color.
As an experiment, here’s an image with pure red, green and blue being used as a normal map. Each color affects the normal of the plane differently.

As an experiment, I took an image and painted it with pure red, green and blue. I plugged the image in as a normal map. Each of the three colors adjusts the normal in a slightly different way. A full normal map uses complicated calculations to map out the adjustments to an object’s normal.

How to Use Normal Maps in Blender?

So we have a PBR texture that came with a normal map. You can get these from Poliigon and may other sites. In the Shader Editor, we will set up our PBR material. I have a full video on setting these up if you need it.

Before adding PBR textures, we may have to UV unwrap the object.

We will usually use the Principled BSDF shader which has many inputs for different types of maps that come with PBR materials. Down on the bottom is the “Normal” input. It’s purple which indicates it accepts vector information.

Add the normal map into the Shader Editor by either:

  • Adding an Image Texture Node and loading the image
  • Dragging the normal map image directly into the Shader Editor
The normal map can be brought into the Blender shader editor by dragging and dropping it from a folder on your computer.

Because the normal map is adding data that isn’t meant to affect the color of the material, we need to change the “Color Space” from “sRGB” to “Non-Color” on the image texture node.

Next we need to connect the “Color” output from the Image Texture Node to the “Normal” input of the Principled BSDF Shader.  Because the “Color” output is a yellow (color information) socket and the “Normal” is a purple (vector information) socket, we need to convert the data to vector data.

In the shader editor, a normal map image is plugged into a normal map node which is plugged into a Principled BSDF shader.
This is how a normal map would be plugged into the Principled BSDF Shader.

There is a node designed specifically for this and it’s called the Normal Map Node. It can be found in the “Vector” category when we press “Shift+A” to add a node. Place the Normal Map Node between the color output of the Image Texture and the normal input of the Principled BSDF.

We should see the normal map affecting the surface of the material if we are in material preview or render preview mode. Even with the default strength of 1, it should add a fair amount of realistic shading to the material.

We can increase the strength setting on the Normal Map Node to get a stronger effect.

A brick material with a normal strength of one is compared to the same material with a normal strength of five.
A comparison of a normal map at strength 1 and 5 in Cycles.

When setting up PBR materials, we usually want to add a mapping node and texture coordinate node so all the maps use the same mapping coordinates. Again, this is covered pretty well in my PBR Materials Video.

A texture coordinate node connected to a mapping node which is then connected to several image texture nodes of a PBR material inside the Blender Shader Editor.
The mapping setup of a completed PBR material in Blender’s Shader Editor.

EEVEE vs. Cycles for Normal Maps?

Normal maps work in Eevee and Cycles render engines. They are set up the same way. My only words of advice are to keep the strength a little lower in Eevee. It starts to look fake when it gets too strong. With Cycles, stronger normal maps look great so feel free to crank the strength up.

Baking Normal Maps

Normal maps can be created in Blender by baking. This is beyond the scope of this tutorial, but I’ll cover the concept.

We sometimes create a highly detailed model – perhaps through sculpting or hard surface modeling. If we need the geometry optimized, perhaps for an animation or video game, we may need to reduce the amount of geometry in the mesh.

We can bake the physical details. Part of this process will be baking the color of the materials but we can also bake the geometry into a normal map. Then, we’d simply plug the newly baked material into a lower polygon mesh.

Blender's baking settings in the render properties tab set up for normal baking..

Again, this baking process is a little more advanced but it’s another possibility with Blender.

Final Thoughts

Normal maps are an incredibly efficient way to add realism to a material without adding any geometry. They’re used frequently in video games to add realistic shading effects without slowing down the responsiveness needed for real-time rendering.

I hope this helped. Please take a look at other tutorials on the site or YouTube channel and sign up for my e-mail list below!  I don’t spam you I promise. Thank you for reading and Stay Creative!

Get Brandon’s Newsletter

By submitting, you agree to receive periodic e-mails from me. You can unsubscribe at any time.