Tips for Normal Mapping?

Hi all! I’ve been having issues with normal mapping. I have a UV mapped model that I created a bump map for. When applying the bump map, it generally looks correct, buts it’s not smooth, so I wanted to use a normal map instead. I used an online Bump->Normal Map converter, but when applying the converted normal map to my model, certain sections seem to get inverted, and large swaths that weren’t painted get highlighted or darkened. Does anyone have any pointers?

Hi, may have a look into this document. DirectX vs OpenGL Normal Map
There a two different implementations of how a normal map is created. The difference lies in the green color channel of the image. Blender uses the OpenGL format for normal maps.

Did you try blurring the bump map. That may be the smoothing you want.


I have, it comes out really crusty. I think whats happening is that Blender isnt interpolating from one value pixel to the next, so where our eyes see a gradient Blender sees lots of little steps.

Just looked into it, and I can say with confidence my normal map is properly set up for OpenGL. I actually fixed the crazy discoloration by setting the Normal node to Non-Color instead of sRGB, but the main issue of some sections pop out when they need to recede, or vice versa. My current guess is that this has to do with how the normal maps are generated and how the UV mapping effects it.

I made a simple bump map with the words “Deeper” in black and “Higher” in white color on a middle gray background. I made it 32 bit color (instead of 8 bit, which makes visible steps). Then I used a slight gaussian blur to make the edges have a softer transition towards the backgroud gray.

In Blender you can easily render (or bake) a normal map from this. Your normal map has some very thin edges, which only make for a barely notable effect.

Maybe you can check this workflow against your bump map and try to bake an normal map of it in Blender.

Normal maps can’t pop out or recede. Normal maps have only angle data, they don’t have any depth data. When you make a normal map, you want to make sure you have angled/bevelled transitions between the different parts of the texture, or the normal map will just not capture the edges properly.

Are you sending the image through a normal map node?

The map you baked is a “tangent space” normal map, like it should be?

Have you tried setting the image’s filtering to cubic on the image texture node? It has a higher quality and might look smoother.

Does your model have its UVs mapped with the islands rotated in different directions?

I must say, I have never tried to generate a model specific (UV layout) normal map by converting from a height map. That technique works for a seamless texture that doesn’t have to conform to specific UVs, but I’m not sure it would work if you are baking on an existing UV layout. It would be better to bake a normal map from a high-res model if possible.