Image to normal map
Normal Map Generator
Upload a texture or grayscale height map, tune the surface relief, and download a tangent-space normal map. Free, with no account and no image upload to a server.
Normal Map Generator
On-device processing · No credits · PNG exportDrop your texture here
PNG, JPG, WebP or AVIF · up to 16 MB
Normal map
RGB · +YYour lavender-blue normal map appears here
Choose your image or try a sample above.
Lighting comparison
Inspect the surface under a movable light
Choose your image or try a sample above.
Choose your image or try a sample above.
A 2D lighting preview, available without WebGL. Light and surface-color settings do not change the exported normal map.
Sources above 2048px are reduced to a 2048px longest edge for processing. Aspect ratio is preserved. Images above 64 megapixels are not accepted. Transparent pixels are composited against white before conversion.
From source image to a usable normal map
- 01
Choose the right source
A grayscale height map gives the clearest interpretation. For photos, use a flat, evenly lit surface with fine material detail. Cast shadows, paint colors and reflections can be mistaken for depth.
- 02
Tune and inspect
Start with modest strength. Add smoothing if fine noise overwhelms the material, then move the preview light across the surface. Compare the flat reference with the normal-mapped result.
- 03
Export and test in your material
Save a PNG, set the texture to non-color/data in your renderer, and use the correct normal-map node or import type. Check the green-channel convention and strength in the destination scene.
What this conversion can and cannot infer
Brightness is an estimate
The tool treats image brightness as relative height and calculates local surface directions. A dark painted mark can become a false dent. It is not a calibrated scan or AI reconstruction of physical geometry.
Normals change shading
Normal maps make light respond to apparent bumps and grooves. They do not move vertices, change silhouettes, or create a displacement map.
Tileability starts with the source
Wrapped sampling is useful for an already tileable texture. It does not remove a color seam or repair clipped motifs. Repair the source separately when the material must repeat.
Normal map generator FAQ
Is this normal map generator free?
Yes. This standalone tool creates and exports normal maps locally without an account or credits. It does not call the paid image-repair or AI-generation services.
Are my images uploaded?
Your chosen image is decoded and processed in this browser tab. It is not uploaded by this tool or saved to browser storage. A sample image is downloaded from this site only when you select it.
Can I use a photograph instead of a height map?
Yes, but the result is an approximation based on brightness. Even lighting and surface-like detail work best. Cast shadows, color changes and reflections can produce misleading relief.
Should I choose OpenGL or DirectX?
These options reverse the normal map’s green (Y) channel. Match the convention expected by your renderer and import settings. If raised details appear recessed, inspect the channel convention and height interpretation before increasing strength.
Does this make the image seamless?
No. Wrap edge sampling changes how neighboring pixels are sampled; it does not repair the source tile. Use the separate seamless texture converter when the photo has visible joins.
What resolution can I export?
Choose a maximum longest edge of 512, 1024 or 2048px. The original aspect ratio is preserved and small images are not upscaled. Sources are limited to 16 MB and 64 megapixels; processing is capped at a 2048px longest edge.
Continue only with the tools you need
Repair a repeating texture
Match the borders of an existing photo or texture before building a repeating material.
Explore a full PBR map set
Use the separate signed-in workflow for approximate aligned base color, roughness, height, AO and metalness maps.
Check the repeat
Inspect a source tile as a larger repeated surface before you use it in a scene.