Free, in your browser, no sign-up
Normal Map Generator
Turn a texture, photo or sprite into normal, height, roughness, metallic, AO, edge and ORM maps. Tune them on a live 3D material, then download a set made for Unreal, Unity, Godot or Blender.
PNG, JPG or WebP. Large images are scaled to 2048 px. Transparent sprites keep their outline.
Free maps are made on your device. Nothing is uploaded unless you ask for an AI set.
Preview
AI texture set
An AI model reads the material in your photo and returns base colour, normal, roughness, metalness and height. Preview and export it like the free maps.
Sign in to get a free AI setExport for
ZIP with BaseColor, Normal (DirectX), ORM packed, Height and a setup note.
Need maps from a real photo?
The free maps are worked out from brightness, which suits clean textures. For photos of real surfaces, AI texture sets read the material itself.
Free maps
Free
Runs on your device
- 8 maps, including packed ORM
- Ready-made sets for Unreal, Unity, Godot and Blender
- Worked out from image brightness: best for clean textures and sprites
- Unlimited, no account
AI texture set
From $0.20 a set
1 free set when you sign up
- Base colour, normal, roughness, height and metalness
- Made by PATINA, an AI model built for PBR materials
- Tells metal from non-metal parts, which brightness alone cannot
- Packs of 15, 50 or 150 sets, valid for a year
What each map does
- Normal map
- Bends light across a flat surface so it reads as bumpy. The lavender-blue map engines expect. Normal map generator
- Height map
- Depth as greyscale: white is high, black is low. Drives displacement and parallax. Height map generator
- Roughness map
- Where the surface is matte or glossy. Crevices come out rougher than raised parts. Roughness map generator
- Metallic map
- Which parts are bare metal. Most textures are not metal at all, so it is usually black. PBR texture generator
- Edge map
- Raised edges light, cavities dark. Use it to add wear, dust or highlights along edges. PBR texture generator
- Ambient occlusion
- Darkens cracks and gaps that ambient light would not reach, for extra depth. PBR texture generator
Which setting for your engine?
Engines disagree on the green channel of a normal map and on how roughness, metalness and AO are packed. Pick your engine under Export and the ZIP follows its rules, with a note on where each file goes.
| Software | Normal style | What the export gives you |
|---|---|---|
| Unreal Engine | DirectX, green down | BaseColor, Normal, packed ORM, Height |
| Unity Built-in and URP | OpenGL, green up | Albedo, Normal, Metallic with smoothness in alpha, Occlusion |
| Unity HDRP | OpenGL, green up | BaseColor, Normal, Mask Map (metal, AO, detail, smoothness) |
| Godot 4 | OpenGL, green up | Albedo, Normal, packed ORM, Height |
| Blender | OpenGL, green up | Base color, Normal, Roughness, Metallic, AO, Height |
| 3ds Max, Substance | DirectX or per project | Every map separately, with the DirectX switch |
Questions
Is it free?
Yes. Making and downloading normal, height, roughness and AO maps is free, with no sign-up and no watermark.
Is my image uploaded?
Not for the free maps: your browser makes them, and the image is not sent anywhere. Only when you ask for an AI texture set is a copy, at most 1024 px, sent to the AI provider; it is deleted within 24 hours.
How is the normal map made?
The image brightness becomes a height map, optionally smoothed, and the slope at every pixel becomes the normal. Light areas count as high unless you switch on Dark is high.
Will it tile?
Switch on Make seamless (under Base color) and the edges are blended so the image and every map repeat without a seam. Check it with Tiling in the 3D view or 2 × 2 on any map.
Why does my material look inside out?
Either dark parts of your image are the raised ones (switch on Dark is high) or your engine reads the other green channel (switch DirectX).
Does it work for 2D sprites?
Yes. Drop a transparent PNG and the outline is kept in every map, and the preview switches to a 2D light you move with the pointer, the way 2D engines light sprites.
What is ORM?
One image that packs ambient occlusion in red, roughness in green and metallic in blue. Unreal, Godot and glTF read it directly, which saves two texture slots.
What size can I use?
PNG, JPG or WebP. Images larger than 2048 pixels on the long side are scaled down to keep it fast.