Normal Map Generator
Turn any texture or photo into a normal map, right in your browser. Tune the strength, watch a light sweep across the surface in real time, and download the normal, height and ambient occlusion maps together — free, nothing uploaded.
Drop a texture or photo here, paste it, or
Your images never leave your browser — everything runs locally.
How it works
- Drop a texture or photo onto the tool — brick, stone, fabric and wood work especially well.
- Raise the strength until the surface has the depth you want; the lit preview updates as you go.
- Add smoothing if the source is noisy — it stops grain from turning into fake bumps.
- Pick OpenGL or DirectX for the green channel to match your engine.
- Download the normal map on its own, or all three maps — normal, height and ambient occlusion — in one ZIP.
Frequently asked questions
How do I make a normal map from an image?
Drop your image onto the tool. It reads the brightness of every pixel as height, then measures how steeply that height changes to work out which way the surface faces. Adjust the strength slider until the lit preview looks right and download the PNG.
What do OpenGL and DirectX mean here?
They disagree on which way the green channel points. Unity, Godot and Blender expect OpenGL; Unreal and most DirectX games expect the green channel flipped. If your surface looks inverted in-engine — bumps reading as dents — switch this setting and re-export.
Why is my normal map mostly purple-blue?
That colour is a flat surface: it is the vector pointing straight out of the texture, encoded as red 128, green 128, blue 255. Anywhere the map drifts from that shade is a slope, so a mostly flat texture is supposed to look mostly purple.
What is the difference between a normal map and a bump or height map?
A height map — also called a bump map — stores one grey value per pixel: how high that point sits. A normal map stores a full direction per pixel, which is why it fakes lighting far more convincingly. This tool gives you both, from the same image.
What is the ambient occlusion map for?
It marks the crevices that stay in shadow even in open light — mortar lines between bricks, gaps between planks. Multiplying it into your material adds contact shadows that lighting alone will not produce.
Is my image uploaded anywhere?
No. Every map is generated in your browser and nothing is sent to a server. Working with pixel art instead? Try our Image to Pixel Art Converter.
All tools
- Minecraft Banner Maker — Design a banner layer by layer, then get the loom steps and the /give command.
- Minecraft Circle Generator — Count the blocks before you place them — circles, ovals and round towers.
- Minecraft Circle Chart — Block counts for every circle size from 1 to 100.
- Minecraft Sphere & Dome Generator — Build spheres and domes layer by layer, with a 3D preview.
- Pixel Circle Generator — Pixel-perfect circles and ovals for sprites, tilesets and icons.
- Image to Pixel Art Converter — Turn any photo into pixel art with retro palettes and dithering.
- Minecraft Pixel Art Generator — Turn any image into a block build with a material list and build guide.
- Sprite Sheet Maker — Pack PNG frames into one sprite sheet with a JSON atlas.
- Sprite Sheet Splitter — Cut a sprite sheet into individual frames and download them as a ZIP.
- Sprite Sheet to GIF Converter — Preview and export a sprite sheet as an animated GIF.
- GIF to Sprite Sheet Converter — Turn an animated GIF into a sprite sheet plus JSON atlas.
- Minecraft Texture Pack Maker — Restyle every texture in a pack at once, then download it ready to install.