Normal Map Generator Online: Create Normal Maps Free

Upload a texture or photo and this free online normal map generator turns it into a normal map. The same pass can also produce displacement, ambient occlusion, and specular maps. Preview the result in 2D and 3D, then download a PNG while the source image stays in your browser.

Create and Preview Your Texture Maps

The texture to normal map workspace below lets you adjust Strength, Level, and Blur/Sharp. Switch between Normal, Displacement, AO, and Specular to inspect each result and download the selected PNG.

Use Your Maps in Blender, Unity, and Unreal Engine

What Is a Normal Map?

A normal map is a texture that stores surface direction in RGB color instead of adding extra geometry. The red channel records how far a surface leans left or right. The green channel records up and down tilt. The blue channel records how much the surface still faces the camera. Most tangent-space maps look purple because those channels record direction, not painted color.

Those colors change lighting, not shape. When a light moves across the mesh, brick joints, rock cracks, fabric weave, and fine scratches can pick up highlights and shadows. The silhouette stays the same, and the polygon count does not increase. That is why a normal map is useful when you need surface detail without a heavier model.

A displacement map works differently. It is a grayscale height image. If the renderer supports displacement and the mesh has enough subdivision, the height values can actually move vertices. Use a normal map when you only need the look of depth. Use displacement when the outline itself should change.

Brick texture beside the purple normal map generated from it

Generate Four Texture Maps from One Image

This normal map generator creates four texture maps from one image. They are not a complete PBR set, because the tool does not create base color, roughness, or metalness maps.

Normal Map

A normal map stores surface direction and mainly changes lighting detail. It does not add polygons or change the model outline. Confirm bump direction in the 2D result and 3D Preview.

Displacement Map

A displacement map stores grayscale height. Real geometric relief appears only when the renderer, material, and mesh subdivision support it. Without that setup, the image is height data, not a new mesh.

Ambient Occlusion Map

An ambient occlusion map darkens crevices and contact areas. Use it as extra shading on top of your lights. It does not replace lighting, and it should stay subtle if the scene already has contact shadows.

Specular Map

A specular map controls highlight or reflection strength by region. Many PBR materials use roughness or metalness instead, so confirm the target shader before you assign this map.

How to Generate a Normal Map from an Image

Follow this short path in the normal map generator, then inspect the result before download. The steps cover source choice, upload limits, parameter checks, and PNG export.

1

Choose a suitable source image

Prefer even lighting, clear surface detail, and little glare. Hard shadows can be mistaken for height, so a photo with a sharp cast shadow often creates false ridges in an image to normal map conversion.

2

Upload the texture

Upload a PNG or JPG up to 5MB on the free plan. Pro supports larger uploads. The file is processed in your browser, and the source image is not sent to this site's servers.

3

Adjust and inspect

Change Strength, Level, and Blur/Sharp while watching the 2D result. Use Invert Y or Invert Height if bumps look reversed, then rotate 3D Preview and move the light to confirm direction.

4

Select and download an output

After you make a normal map, open the Normal, Displacement, AO, or Specular tab. Check the current map, then download that PNG. Preview may use a smaller size for speed; download rebuilds the PNG at the source image size.

Normal Map Settings Explained

Each control changes a different part of the result. Judge values with the 2D map and 3D Preview together, then keep the setting that still matches the real surface.

Strength

Strength controls how obvious the surface-direction change is. Raise it when brick joints or scratches look too flat. Lower it if details turn sharp or unnatural once the 3D Preview light moves.

Level

Level adjusts overall depth response. There is no fixed correct value; judge it with Strength. If broad shapes look too deep, change Level first, then raise Strength only if fine edges still look weak.

Blur/Sharp

Negative values smooth noise. Positive values emphasize edges. Grainy or compressed photos usually need modest smoothing so JPEG blocks and sensor noise are not treated as surface detail.

Sobel vs Scharr

Sobel and Scharr both measure brightness change. Sobel is a solid default for most textures. Scharr can pick up finer responses; keep the preview that matches the real surface instead of the busier one.

Invert X / Invert Y / Invert Height

Invert X flips horizontal direction. Invert Y flips the green channel for another tangent-space convention. Invert Height reverses cavities and ridges. Change one control at a time and recheck the preview.

3D Preview

3D Preview lets you rotate the mesh, move the light, and check bump direction. A 2D map can still be inverted in engine, so confirm the same lighting response in your target software.

Browser Processing and Preview

This normal map generator keeps a normal map online workflow in the browser: local processing, on-page inspection, and a source-size PNG download.

The source image is read and processed in your browser and is not uploaded to this site's servers. Analytics may record events plus file type, size, and dimensions, not the image content.

Where These Maps Are Used

Downloaded maps from this normal map generator can enter common 3D workflows after you set texture type and direction.

Normal map workflow for game development in Unity and Unreal Engine

Game Development

Use a normal map for surface detail so you rely less on high-poly geometry. After import into Unity or Unreal Engine, check texture type and Y direction rather than assuming one invert setting.

Architectural visualization using detailed surface textures

3D Rendering and ArchViz

Add lighting detail to brick, stone, wood, and fabric. If the wall or prop still looks flat in silhouette, you need displacement or real modeling; a normal map will not push the outline.

PBR texture maps prepared from one source image

PBR Texture Preparation

Generate first-pass Normal, AO, Displacement, and Specular maps from the same source. Continue in your target software: modern PBR graphs may need roughness or metalness instead of specular, and height still needs a displacement setup.

Learn More About Normal and Height Maps

Start with the concept, follow the making guide, or open a dedicated generator when your workflow needs normal, displacement, AO, or specular map data.

What Is a Normal Map?

Understand RGB direction data, purple normal maps, and how normal maps differ from bump and displacement maps.

How to Make a Normal Map

Compare image conversion, high-poly baking, and AI-assisted workflows, then choose the method that fits your asset.

Displacement Map Generator

Create a grayscale height map from an image, adjust height response, preview the result, and download a PNG in your browser.

AO Map Generator

Generate an ambient occlusion map from an image, adjust contact shading, preview the result, and download a PNG.

Bump Map Generator

Create a grayscale bump map from an image, adjust bump strength and blur, then download a PNG for shading.

Specular Map Generator

Create a specular map from an image, adjust highlight response, preview the result, and download a PNG.

Common Questions

Answers about choosing a source image, local processing, download size, and software import.








Generate Your Normal Map in the Browser

Upload a texture to this normal map generator, inspect the result, and download the map you need as a PNG.

Normal Map Generator Online | Create Normal Maps Free