Free online normal map generator
This normal map generator turns any photo or grayscale height texture into an RGB normal map you can plug into Blender, Unreal Engine, or Unity. Upload an image, tune strength and detail, then download a PNG — processing runs entirely in your browser, so nothing is uploaded to our servers.
How image-to-normal conversion works
The tool treats brightness as height and estimates surface slopes with a Sobel or Scharr filter. Sobel is the classic choice for game assets; Scharr is slightly smoother on noisy photos. The result is encoded in tangent space (purple-blue look) so real-time engines can relight the surface without extra geometry.
DirectX vs OpenGL (invert Y)
Normal maps store the green channel as surface “up” in tangent space. DirectX and OpenGL disagree on the Y axis. Enable Invert Y (DirectX) when your target is DirectX-style (many Unreal and game pipelines); leave it off for typical OpenGL / Blender workflows.
Normal map vs bump map
A bump map only fakes height in shading; a normal map stores full 3D direction per pixel for sharper highlights. For real mesh displacement, use a displacement map or 16-bit height map. Read the full comparison in our normal map vs bump map guide, the primer what is a normal map, and displacement vs normal vs bump.
Need every PBR channel at once? Try the full PBR map generator for normal, roughness, AO, height, and metallic from a single image.
Frequently Asked Questions
A normal map encodes surface directions in RGB colors, allowing 3D models to appear detailed without extra geometry.
Upload any grayscale or color image, adjust the strength slider (0.1-3.0), optionally invert Y for DirectX compatibility, choose tiling (1x1, 2x2, or 3x3), and preview the result in both 2D plane view and 3D sphere/cube preview. Use advanced settings like detail scale, blur, sharpen, and levels adjustment for fine-tuning. Click 'Download PNG' when satisfied with the result.
Normal maps store more lighting information, producing more realistic shading and detail than traditional bump maps.
Sobel is the default for most game and real-time work — fast and predictable. Scharr uses a wider kernel and can look slightly smoother on noisy photos. Try both on your source; the 3D preview updates instantly.
It flips the green channel so the normal map matches DirectX-style tangent space (common in Unreal and many game pipelines). Leave it off for OpenGL / Blender-style normal maps.
Yes. There is no account, no file upload to our servers, and no watermark. The tool runs entirely in your browser at full resolution.
You can download your normal maps as PNG files, ensuring compatibility with engines like Unity, Unreal, and Blender.
Yes, processing is done locally in your browser — your images never leave your device.
Related texture tools
Free, browser-based generators — same workflow, no upload to our servers.
- Bump to NormalConvert bump or height maps into tangent-space normals.Open tool
- Texture to NormalTurn any texture or photo into a normal map online.Open tool
- Normal to BumpDerive a grayscale bump map from an RGB normal map.Open tool
- Bump MapGrayscale bump from any photo for cheap surface detail.Open tool
- Full PBR SetNormal, roughness, AO, height, and metallic from one upload.Open tool
- Seamless TextureMake any image tileable online.Open tool