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 export

Drop your texture here

PNG, JPG, WebP or AVIF · up to 16 MB

Or try a source

Normal map

RGB · +Y

Your lavender-blue normal map appears here

Choose your image or try a sample above.

8-bit RGB normal data in a PNG. Import as non-color/data, and match the Y convention to your material setup.

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

  1. 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.

  2. 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.

  3. 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.