Skip to main content

Normal to Displacement Map

Turn any normal map back into the height it came from, as a 16-bit displacement map. OpenGL or DirectX is detected from the map, the slopes are joined into one consistent surface, and the 3D sphere shows it pushing out real geometry.

Sample: Skin

Your normal map
Normal map of crocodile scales, the sample input
Displacement map
Displacement map rebuilt from the normal map, raised scales in white
3D preview
Gray ball pushed out by the rebuilt displacement
Your map
Detail, roughness and AO

Bump detail

Size

Roughness and AO

Image mode: brightness becomes height, best for clean texturesRuns in your browser. Images never leave your device.

All maps from this image

Click a map to view it, or download it on its own

  • Normal
  • Displacement
  • Roughness
  • AO
  • Curvature
More formats

Why You Cannot Just Desaturate a Normal Map

A common shortcut for normal to displacement map conversion is to turn the normal map gray and call it height. The result is a picture of lighting: one edge of every stone bright, the opposite edge dark, the tops flat. Rebuilding finds the one surface whose slopes match every pixel, so the stones come out raised and the gaps sunk. Both made from the same cobblestone normal map.

  • Cobblestone normal map turned gray, looking like a lit relief with flat stonesDesaturated
    Displacement map rebuilt from the same normal map, white stones and dark gapsRebuilt

How a Normal Map Becomes Height

Cobblestone normal map, the input

Slopes in, one surface out

Each pixel of a normal map says which way the surface leans: red holds the left to right tilt, green the up and down tilt. The normal to displacement map converter integrates all of them at once in the frequency domain (the Frankot and Chellappa method), which finds the height whose slopes match the map best, with no drift from one corner to the other. Large shapes stay, so a dome comes back as a dome.

  • OpenGL or DirectX detected from the map itself
  • 16-bit output for smooth displacement
  • Strength and detail sliders shape the depth

What a Rebuilt Displacement Map Is For

Many assets ship with a normal map and nothing else. A normal to displacement map conversion gives them real depth.

  • Sculpting in ZBrush

    Apply it to a subdivided mesh as a displacement map, or use it as an alpha to stamp the same detail elsewhere.

  • Blender and Cycles

    Feed it to a Displacement node with Midlevel 0.5 on a subdivided mesh, and the surface gets a real silhouette.

  • Game assets

    Add parallax or Nanite tessellation in Unreal to a material that came with only a normal map.

How to Convert a Normal Map to a Displacement Map

Four steps, all in your browser. The crocodile skin normal map is already open in the normal to displacement map converter.

  1. 1

    Upload the normal map

    PNG, JPG or WebP, from a bake, a scan, a texture pack or this site. Drop, paste or pick the file.

  2. 2

    Check the format

    Auto reads OpenGL or DirectX from the map and the line under the tool says which. If the shape looks inside out, pick the other one.

  3. 3

    Set the depth

    Strength scales the height; Large, Medium and Fine under Detail decide which shapes dominate. Watch the sphere outline change.

  4. 4

    Save the 16-bit displacement

    Download the displacement map, or the ZIP with height, AO and curvature maps from the same surface.

Normal to Displacement Map FAQ

Cobblestone material ballCrocodile skin material ballBrick material ballWood planks material ballLeather material ball

Turn Your Normal Map into Height

Drop in a normal map and the normal to displacement map converter rebuilds a 16-bit displacement map from its slopes. Free, in your browser.

Upload a normal map