NormalMap

Normal Map for Blender - Generate & Use It Correctly

Generate normal maps and plug them into a Blender Principled BSDF the right way.

Drop an image or click to upload

Height map or photo → normal map. Runs locally.

OpenGL (Blender, Unity) uses Y+ up (default). DirectX / Unreal may need the green channel flipped.

Input

No image

Normal map

What is Normal Map for Blender?

Blender reads tangent-space normal maps in the OpenGL convention, where the green channel points up (Y+). This page generates maps in exactly that convention and explains how to wire them into a Principled BSDF so bumps catch light correctly in EEVEE and Cycles.

Common Uses for Normal Map for Blender

  • Add surface detail to a low-poly glTF/GLB model exported from Blender
  • Use a procedural height composite as the source for a normal map
  • Generate tileable normal maps for architectural interiors

The exact Blender node setup

Open the Shading workspace, select your material, and add an Image Texture node (Shift+A, Image Texture). Load your normal map and, in the node's Image settings, set Color Space to Non-Color. Connect its Color output to a Normal Map node's Color input, then connect the Normal Map node's Normal output to the Principled BSDF Normal input. The Normal Map node's Strength field is where you fine-tune intensity without re-baking.

EEVEE vs Cycles normal map behaviour

Both engines light normal maps the same way, but EEVEE is more sensitive to tangent space. If a map looks correct in Cycles but inverted in EEVEE, the mesh likely has flipped tangents or a wrong UV orientation - recalculate normals and check the UV map. For export, remember glTF uses OpenGL convention, so no green flip is needed.

Frequently Asked Questions

Should I flip the green channel for Blender?
No. Blender uses OpenGL (Y+ up), which is this tool's default. Leave 'Flip green' off; enable it only for DirectX assets imported from other engines.
Where do I connect the normal map in Blender?
Add an Image Texture node, load the PNG, set Color Space to Non-Color, and connect its Color output to the Normal input of the Principled BSDF (through a Normal Map node if you want to control strength).
Why is my normal map washed out in Blender?
The image colour space is usually the culprit - a normal map must be Non-Color, not sRGB. Loading it as sRGB makes the surface look soft and wrong.

More Normal Map Tools