Normal Map Generator
Convert grayscale height images or textures into normal maps. Choose strength, blur and OpenGL or DirectX format, and move a light with your mouse to check the depth instantly.
Normal map settings
How to use
When it helps
A normal map is a texture that stores which way each point of a surface is facing, encoded as color. Without adding polygons, it lets light and shadow fall on brick gaps, wood grain and rocky surfaces so they look much more three-dimensional. In 2D games, giving sprites a normal map lets them react to dynamic lights.
This tool treats image brightness as height and computes slopes with a Sobel filter to build the normal map. Higher strength makes the bumps deeper, and blur smooths out fine noise.
Engines differ in the direction of the green channel, so using the wrong one makes light look like it comes from the opposite side. Choose OpenGL for Unity and Godot, and DirectX for Unreal.
FAQ
Can I use a photo?
Yes, but brightness in a photo is not always real height. Shadowed areas can look carved in, so evenly lit texture photos give the most natural results.
The light looks reversed.
Switch between OpenGL and DirectX. If it still looks wrong, try turning on invert height.
What does seamless mean here?
At the edges, pixels from the opposite side are used in the calculation. This prevents visible seams on textures that tile.
Can it handle large images?
If the longest side is over 2048px, the image is scaled down to 2048px to keep processing fast.