depth-map blender how-to

Make a depth map from an image for Blender (free, 16-bit)

Turn a photo into a depth map and use it with Blender's Displace modifier: a free 16-bit PNG, the right colour space, and settings that avoid stair-steps.

Aman Jha·September 25, 2026·7 min read

You have one photo and you want it as a relief in Blender: the dog standing up off the field, the face pushing forward. You don't need an add-on or a depth camera. You need a depth map, a plane with enough vertices, and the Displace modifier. The depth map comes from the free depth map generator, which runs in your browser.

The short answer

Make a 16-bit depth map of the photo, import the photo with Add, Image, Mesh Plane, subdivide it, then add a Displace modifier that reads the depth PNG as a Non-Color image through UV coordinates. Set Midlevel to 0 and raise Strength until the relief looks right. The whole thing takes about five minutes.

1. Make the depth map

Open the depth map generator, add your photo and wait for the map. The first run downloads the model, about 50 MB, and your browser keeps it for next time. Leave Sharpen edges on for now and Invert off, so white is near and black is far. That is the way round Blender wants it with the settings below.

Download the 16-bit PNG. It's bigger than the 8-bit one, and for displacement it's the one that matters (the reason is further down). The PNG comes out at your photo's size, up to 2,048 pixels on the long edge, so it lines up with the photo pixel for pixel.

2. Bring the photo in as a plane

In the 3D Viewport, choose Add ▸ Image ▸ Mesh Plane and pick the original photo, not the depth map. Blender's manual says this operator creates a plane sized to the image's aspect ratio and applies a material with the image as its texture. So the colour is already on the plane, and its UVs cover the whole photo, which is what lets the depth map line up later.

3. Give it enough vertices

Displace moves vertices, so a plane with four corners has nothing to move. You need a grid roughly as fine as the detail you want. Two steps get you there:

  1. In Edit Mode, select all and Subdivide, with Number of Cuts around 100.
  2. Back in Object Mode, add a Subdivision Surface modifier and set it to Simple, with 2 or 3 levels. The manual suggests Simple mode for exactly this, raising mesh resolution for displacement maps, and unlike the default it doesn't round off the plane's corners.

That gives about 400 to 800 vertices across, enough for a 1,000-pixel map. Keep the Subdivision Surface modifier above Displace in the stack, because modifiers run top to bottom and the displacement needs the extra vertices to exist first.

4. Add the Displace modifier

  1. Add a Displace modifier and click New to give it a texture.
  2. Go to the texture's settings in the Texture Properties tab, set the type to Image or Movie, and open the depth PNG.
  3. Set the image's Color Space to Non-Color. The depth map is data, and Blender's manual says images like that should never get a colour conversion. On sRGB, the mid-greys get pushed around and the relief's proportions come out wrong.
  4. Back on the modifier, set Coordinates to UV, so the map is read through the same UVs as the photo on the plane.
  5. Set Direction to Normal (or Z, for a plane lying flat).

5. Set Midlevel and Strength

The manual gives the maths: the offset for each vertex is the texture value minus Midlevel, times Strength, with greys running from 0.0 to 1.0. Two consequences worth knowing:

  • Midlevel 0 means black doesn't move at all. The far background stays on the plane and everything nearer rises out of it, which is what most people picture for a relief.
  • With Midlevel at 0, pure white rises by exactly Strength, in Blender units. So Strength is simply the height of the nearest point.

Start low, around a tenth of the plane's width, and raise it while you orbit the view. The relief looks right well before it looks dramatic. Too much, and the photo starts to look like it was printed on a lumpy sheet.

Fixing what goes wrong

What you seeWhyFix
Terraces on smooth slopes8-bit map: only 256 heightsUse the 16-bit PNG
Blocky, faceted reliefToo few verticesMore cuts or another Simple level
Background pushes toward youMap is the wrong way roundInvert in the tool, or a negative Strength
Proportions look off, mid-tones too tall or flatColor Space left on sRGBSet the image to Non-Color
Stretched streaks down the subject's edgesA sudden jump in depth becomes a wallLower Strength, or remake the map with Sharpen edges off for softer edges
Map shifted or mirrored against the photoCoordinates not set to UVSet Coordinates to UV

The stretched edges deserve a word. A depth map is a height field: one height per pixel, seen from the front. Where the dog meets the field, the height jumps, and the mesh has to build a wall to get there, so the photo's edge pixels smear down it. That's not a setting you've got wrong. It's the limit of turning one photo into geometry, and the fixes above only soften it. Views close to straight-on hide it best.

Why the 16-bit file matters here

Say Strength is 0.5 m. An 8-bit map can only express 256 heights, so the relief moves in steps of about 2 mm (0.5 ÷ 255). Nobody notices 2 mm on a steep edge. On a gentle slope under a raking light, every step catches the light and you get contour lines across a face.

A 16-bit PNG has 65,536 levels, so the same slope moves in steps of well under a hundredth of a millimetre. Blender reads 16-bit PNGs, and with Non-Color set, it uses the values as they are. The depth itself still comes from the model working at 518 or 770 pixels, so 16-bit doesn't add detail. It removes the steps. For how the file is built, see how the depth map tool works.

One alternative if you render in Cycles: the material's Displacement output can displace at render time instead. This guide sticks with the modifier because you see the relief in the viewport as you adjust it. Making the map for a laser instead? The depth map for laser engraving page covers LightBurn. And if what you want is the photo moving on a web page rather than a model in Blender, that's the 3D photo maker.

FAQ

Do I need an add-on to make a depth map for Blender?

No. Make the depth map in the browser with Gifsy's free generator, then use Blender's built-in Displace modifier. There are paid add-ons that run a depth model inside Blender; this route needs nothing installed.

Why set the depth map to Non-Color?

Because it holds data, not colour. Blender's manual says images such as normal, bump or stencil maps should never have a colour conversion applied, and a depth map is the same kind of image. Left on sRGB, the greys get curved and the relief comes out with the wrong proportions.

Why does my displaced mesh look stair-stepped?

Usually because the map is 8-bit. It has 256 grey levels, so every slope is made of 256 flat steps. Use the 16-bit PNG, which Blender reads, and the steps go away. Too few vertices cause a similar blocky look.

The background is coming toward me. How do I flip it?

The map is the wrong way round for your setup. Either tick Invert in the depth map generator before downloading, or give the Displace modifier a negative Strength, which Blender's manual says inverts the effect.

Can I 3D print the result?

You can apply the modifiers and export the mesh from Blender like any other model. Remember it's a height field from one photo: it has a front and no back, and the depth is relative, so treat it as a relief rather than a scan.