Free Normal Map Generator
Create a normal-map PNG from a height map or surface image. Adjust its strength, check the lighting, and download it for your engine—or apply it to a model in the workbench.
From an image to a normal map
- Choose a PNG, JPEG or WebP, or try the height-map sample. Your image is processed locally.
- Adjust Strength and Smoothing. Use Invert height if raised details should be recessed. Wrap edges samples the opposite border; it is for textures that already tile, and does not remove seams.
- Check the normal image and the lit 3D preview. Select OpenGL (+Y) or DirectX (−Y), then download the PNG. Output keeps the image's proportions, up to 2048 pixels on the longest side.
For a model you are editing, choose Apply to a model, open it with its textures, and select a material. Apply the normal map, inspect the model, and download its GLB through the same workbench.
Use a height map when possible
The generator treats image brightness as height and converts neighboring slopes into surface directions. A grayscale height map describes that relationship directly. A photograph's painted colors, shadows and highlights can produce false bumps; the result is an approximation you should inspect under different lighting.
A normal map changes lighting, not the mesh or its silhouette. This tool does not reconstruct depth from a photograph or bake detail from a high-poly model.
Common questions
Is it free, including downloads?
Yes. Image processing and PNG downloads are local and need no account. Editing and exporting your own local models also stays free. Models produced by server rigging or TRELLIS retain their existing export allowance and plan rules.
Which normal convention should I choose?
Choose the convention your renderer or import settings expect. The two PNG options differ in the green channel. For a GLB, the workbench always assigns OpenGL normals with non-color data handling, matching the glTF specification.
Why is my material unavailable?
A tangent-space normal map needs UV coordinates and a material that responds to lighting. An unlit material or a mesh without UVs cannot use it correctly. Choose another material, or prepare the model's UVs and material before applying the map.
What are the image limits?
PNG, JPEG and WebP files up to 20 MB and 16 megapixels are supported. Larger accepted images are reduced to fit a 2048-pixel output edge, with the dimensions shown before download. This is an 8-bit image workflow, not a precision 16-bit height-map converter.
Keep working
Edit model materials · Resize model textures · Inspect a GLB · Optimize a GLB