Normal maps are essential for 3D graphics and game development, adding surface detail without extra polygons. This guide explains what normal maps are and how to generate them from any image online.

โšก Try It Free โ€” No Signup

Works instantly in your browser. No account, no install.

Generate Normal Map Free โ†’

What Is a Normal Map?

A normal map is a texture that stores surface orientation information encoded as RGB colors. The RGB channels represent X, Y, Z direction vectors (normals) of a surface. When applied in a 3D renderer, normal maps simulate fine surface detail โ€” bumps, grooves, scratches โ€” using lighting calculations, without adding geometric complexity.

The neutral (flat surface) color of a normal map is #8080FF โ€” a medium blue-purple.

Normal Map Color Meaning

ChannelDirectionValue Range
Red (R)X axis (left/right)0โ€“255 (128 = neutral)
Green (G)Y axis (up/down)0โ€“255 (128 = neutral)
Blue (B)Z axis (depth)128โ€“255 (always positive)

OpenGL vs DirectX Normal Maps

There are two conventions for the Y-axis direction:

The tool has a "Flip Y" toggle to switch between conventions. If your normal map looks inverted, try toggling this.

How Normal Maps Are Generated

Our generator uses the Sobel operator โ€” a gradient-detection filter that computes rate of change in X and Y directions across the heightmap. Bright areas are treated as raised surfaces; dark areas as recessed. The gradients are normalized to tangent-space RGB.

Frequently Asked Questions

What image should I use as input?
Grayscale heightmaps work best โ€” white = high, black = low. You can also use color images; the tool converts them to luminance first.
What's the Strength setting?
Strength controls how pronounced the surface detail appears. Low values (1โ€“3) give subtle bumps; high values (10โ€“20) give dramatic surface relief.
What file format should I download?
PNG โ€” it's lossless, which is important for normal maps. JPEG compression would corrupt the precise color values that encode surface directions.
Can I use this for Blender or Unity?
Yes. For Blender, use the OpenGL convention. For Unity's HDRP/URP, also use OpenGL. For older Unity or DirectX applications, use the DirectX (Flip Y) setting.

Ready to try it?

Free, instant, and runs entirely in your browser.

Generate Normal Map Free โ†’