Normal Map Generator
Generate normal maps from any texture image for 3D rendering, game assets, and PBR workflows. The Sobel filter extracts surface gradients and maps them to RGB normals.
🔒 Your image is processed entirely in your browser. Nothing is uploaded to any server.
1. Upload Image
2. Adjust & Preview
Controls how pronounced the surface detail appears. Higher values exaggerate depth; lower values produce subtler normals.
Inverts the green channel. Enable for DirectX-style engines like Unreal Engine or 3ds Max; leave off for OpenGL-style tools like Blender, Unity, or Godot.
Normal Map Preview
Complete PBR Map Set
Generated from the same image: grayscale height, ambient occlusion, and roughness maps to pair with the normal map in any PBR material.
How It Works
The Normal Map Generator converts your texture to a grayscale heightmap, then applies a Sobel filter to compute horizontal and vertical gradients at each pixel. These gradients are combined into a 3D normal vector and mapped to the standard tangent-space RGB encoding where R = X, G = Y, and B = Z. The result can be used directly in game engines like Unity, Unreal Engine, Godot, or any PBR rendering pipeline.
Edge pixels wrap around to the opposite side, so the generated normal map tiles seamlessly if your source texture also tiles. Increase the strength for highly detailed surfaces like brick or stone, and use lower values for smoother materials like fabric or paper.
Tips for Better Normal Maps
- Feed the generator a flat-lit, shadow-free image. Height is derived from luminance, so baked-in highlights and shadows read as bumps and dents instead of lighting.
- Strength 1–3 suits subtle materials like paper, plaster, or fabric; 4–7 works for brick, stone, and bark; anything above 7 is best reserved for stylized, exaggerated relief.
- Make the source seamless first — edge pixels wrap to the opposite side, so a tileable input produces a tileable normal map with no lighting seam.
- Match your engine's convention with the Flip Y toggle: off for OpenGL-style tools (Blender, Unity, Godot), on for DirectX-style engines (Unreal Engine, 3ds Max).
- Judge the result on an actual mesh, not just the preview — the render shows whether the depth reads correctly, and whether bumps appear pushed out rather than carved in.
Normal Map Generator — FAQ
Next steps: make your source image tileable first with the Make Seamless tool, then see the guides on PBR materials, Unity, and Unreal Engine for wiring the map into your workflow.