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:
- In Edit Mode, select all and Subdivide, with Number of Cuts around 100.
- 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
- Add a Displace modifier and click New to give it a texture.
- Go to the texture's settings in the Texture Properties tab, set the type to Image or Movie, and open the depth PNG.
- 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.
- Back on the modifier, set Coordinates to UV, so the map is read through the same UVs as the photo on the plane.
- 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 see | Why | Fix |
|---|---|---|
| Terraces on smooth slopes | 8-bit map: only 256 heights | Use the 16-bit PNG |
| Blocky, faceted relief | Too few vertices | More cuts or another Simple level |
| Background pushes toward you | Map is the wrong way round | Invert in the tool, or a negative Strength |
| Proportions look off, mid-tones too tall or flat | Color Space left on sRGB | Set the image to Non-Color |
| Stretched streaks down the subject's edges | A sudden jump in depth becomes a wall | Lower Strength, or remake the map with Sharpen edges off for softer edges |
| Map shifted or mirrored against the photo | Coordinates not set to UV | Set 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.