gamedev2 min read
What Is a Normal Map and How to Generate One Free
Normal maps add realistic lighting and depth to 3D game surfaces without extra polygons. Learn what they are and how to create them online.
## What Is a Normal Map?
A normal map is a special texture that tricks the lighting system into thinking a flat surface has bumps and depth — without adding any extra geometry. It stores surface direction information as RGB color data.
- **Red channel** = X direction (left/right)
- **Green channel** = Y direction (up/down)
- **Blue channel** = Z direction (depth)
The characteristic blue-purple color of normal maps comes from flat surfaces pointing straight up (0, 0, 1 = RGB 128, 128, 255).
## Why Normal Maps Matter
A rock wall in a game could have millions of polygons to look realistic — or it could use a flat quad with a normal map. Normal maps let you achieve photorealistic lighting detail at a fraction of the performance cost.
## DirectX vs OpenGL Normal Maps
This is the most common source of confusion:
- **DirectX (Unreal Engine):** Green channel is flipped. If your normal map looks inverted, enable "Invert R channel" in the generator.
- **OpenGL (Unity, Godot, Blender):** Standard orientation. Enable "Invert G channel" if you see lighting going the wrong way.
## How to Generate a Normal Map Free
Use the [ToolPix Normal Map Generator](/tools/normal-map-generator):
1. Upload your diffuse/albedo texture (or a grayscale heightmap)
2. Set strength (2-4 is good for most textures, higher for rough surfaces)
3. Adjust smoothness to reduce noise
4. Select DirectX mode for UE5, OpenGL for Unity/Godot
5. Download the normal map PNG
## Importing Normal Maps
**Unreal Engine 5:**
- Import PNG → set Compression Settings to "Normalmap"
- In your Material, connect to the Normal input
**Unity:**
- Import PNG → set Texture Type to "Normal map"
- Unity auto-converts to its internal format
**Godot:**
- Import PNG → enable "Normal Map" in import settings
- Use in StandardMaterial3D → Normal Map
## Related Tools
- [Texture Converter](/tools/texture-converter) — convert your normal map to the right format
- [Sprite Sheet Generator](/tools/sprite-sheet-generator) — pack multiple textures including normal maps
#normal map#game dev#pbr#texture#unreal engine#unity#godot#3d
Try it free
Normal Map Generator
Generate normal maps from diffuse/albedo textures for 3D game assets. Add depth and lighting detail without extra polygons.
Open Normal Map Generator →