20
$\begingroup$

In true stackexchange tradition. I am interested to see how people approach generating a good quality displacement map from existing 3D geometry. For completeness, list the qualities that make up a good displacement map. I'm not looking for links to external tutorials, but short descriptions of your methods are welcome.

My current method involves setting up a orthographic camera viewing the geometry, and setting the far and near clipping field to the extents of the geometry. Then render the image and extract the z-buffer by normalizing it so it becomes a grey scale and outputting that as a file from the compositor.

I will elaborate on my method as an answer, if no one offers a more convenient procedure.

enter image description here

$\endgroup$
  • 1
    $\begingroup$ Hm, I always used the other method, it is ment to do that. The problem with this is that you can only make the map in the three or maybe more camera projections (Ortho, Perspective, Panorama, maybe others). Using baking has more freedom, but limitations with more complex geometry. Hard to decide. I guess it depends on the situation what shall be used. $\endgroup$ – Róbert László Páli Jun 18 '13 at 15:51
  • $\begingroup$ @zeffii, Could you elaborate on your method? It seems to be exactly what I'm looking for to do 3d cnc milling from my blender files (some of the more tested 3D CAM workflows use heightmaps and your above picture looks most representative of what is normally used). $\endgroup$ – g19fanatic May 5 '15 at 14:39
  • $\begingroup$ @g19fanatic OK, i'll do a small writeup as an answer! $\endgroup$ – zeffii May 5 '15 at 15:25
15
$\begingroup$

The best way I know is to use Baking. You must have your plane (or whatever the low-res object is) UV mapped with a new image assigned to all the faces you want to bake to (select faces in edit mode, select/reselect the image in the Image Editor). Then in the Render settings, at the bottom is the bake panel.

Bake panel

Normalized allows you to specify a maximum distance Selected to Active is important too, enable it to ensure the displacement is baked from all selected objects to the active/last selected object.

Example: example image (Note that baking doesn't play nice with overlapping geometry - in this example the underneath of the sphere and torus was deleted, and the sphere moved up to ensure it doesn't collide with the torus. Not doing this will produce artifacts.)

$\endgroup$
  • $\begingroup$ Is the Displacement bake mode a Blender Render-only feature? I don't see it listed in the drop-down menu when I'm using Cycles. Just curious. $\endgroup$ – Mentalist Jan 22 '18 at 2:25
  • $\begingroup$ The described workflow wasn't completely clear to me. I missed that you had to have a plane above it to bake on to. See this site for the complete workflow. b3d.interplanety.org/en/baking-displace-map-from-geometry $\endgroup$ – Bryson Jack Mar 17 '18 at 19:40
5
$\begingroup$

One way to solve it is with a gradient texture, it's crude but it works. This also gives you lots control over the output. If you want to separate objects but need to have them appear on the same plane, this works. If you want to blend multiple details, this works (using translucent textures).

View your object from the side, in edit mode hit u and project from view (bounds).

Original mesh

UV unwrap from the side (ortographic view)

Assign a white-black gradient. Make the object self illuminating.

White black gradient enter image description here

Render from top. Make the camera orthographic and adjust the scale to fit the object.

Render resolution Camera settings

This only works for flat renderings. For the height above a sphere (such as mountains on a planet), this does not work, use baking. This solution can work in some conditions, making it an alternative to baking.

$\endgroup$
  • $\begingroup$ this sounds interesting, but rather complicated, could you show some images to help me understand this method? $\endgroup$ – zeffii Jun 19 '13 at 22:07
  • $\begingroup$ I found the image upload button. $\endgroup$ – Gunslinger Jun 20 '13 at 7:52
  • $\begingroup$ OK, I tried this. Interesting approach height map from ANT Landscape $\endgroup$ – zeffii Jun 20 '13 at 8:18
2
$\begingroup$

enter image description here

The trick here is to make the distance between the near and far clipping plane as short as possible.

  • Set the camera to orthographic and render using blender internal, no lights needed, or materials, all we are interested in is the z-pass
  • in compositor convert the Z-output to a linear grey scale using normalize and color ramp (altho other ways are possible)
  • the short distance between the clipping planes helps bring out more detail. Suzanne is not a great example, you could bring the far clipping plane up to the tip of the ear where it first starts to fold away from view

Folding away from view, so can clip beyond it.

enter image description here

A tilted Suzanne gives more obvious topographic range

enter image description here

That's all there is to it.

$\endgroup$
  • $\begingroup$ Thank you for the writeup! Learning to use nodes in the compositor is an interesting topic for someone who solely uses blender for modeling (not rendering nor animation). $\endgroup$ – g19fanatic May 5 '15 at 16:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.