13
$\begingroup$

I have been trying to achieve a true mesh displacement on meshes for quite some time, without ever getting it to work.

If I understand it correctly, this experimental feature would allow me to easily displace the vertices of a mesh - or to create new mesh vertexes where needed - to get a displaced mesh in the result, based off an image, but without using a bump map (simpler, faster?).

This all sounds very exciting in theory, but I am having a really hard time finding examples or tutorials that are both recent and whose links function. So I think there is the need for a question here which will call upon detailed and recent answers to bridge that gap.

I'll start with a simple ico sphere:

enter image description here

Then, following Aldrik's answer here, I will change the Feature Set to the Experimental one:

enter image description here

I then add a pink granite image to the mesh:

enter image description here

Mark Seams, Unwrap, add image in the UV Editor:

enter image description here

enter image description here

and finally, in the Object Data panel, change the Displacement method from Bump to True as explained in Aldrik's answer:

enter image description here

no result yet:

enter image description here

if I click "Use Subdivision" this is what I get (so I won't click it right now):

enter image description here

Looking into the Node Editor, nothing seems to have changed with the Displacement of the mesh:

enter image description here

so I tried to replicate the node setup seen in the first image of this similar question (Linear isn't an option, Clip, Single and Repeat are):

enter image description here

... but the result is a white ICO Sphere, similar to Image 1.

So, can the "Experimental Feature Set" be used to create actual displacement, and modify a mesh?

This is what I'm trying to obtain - but with the image of the texture actually displaying on the mesh (image from here):

enter image description here

.blend file:

$\endgroup$
3
  • $\begingroup$ related: blender.stackexchange.com/questions/34108/… $\endgroup$
    – user1853
    Apr 10, 2016 at 4:08
  • 1
    $\begingroup$ I don't recommend true displacement in blender yet. Here is why: blender.stackexchange.com/a/45874/7777 $\endgroup$ Apr 10, 2016 at 16:42
  • $\begingroup$ Thanks Jerryno for highlighting the limits of this technique. In my case it is perfect for what I'm trying to do, and I think it is very quick compared to creating bump maps with crazy bump, etc. If you have a quick and easy way of getting the same results that is supported and not experimental, feel free to post it in a comment. $\endgroup$ Apr 10, 2016 at 19:44

2 Answers 2

16
$\begingroup$

A UV Sphere is a better mesh to try this feature on (is made out of quads, and not triangles like the Ico Sphere and should subdivide better).

You need to plug the displacement texture to the displacement socket on the material output.

Render Feature set has to be in Experimental.

Displacement in the mesh section has to be set to True or Both.

To preview, you have to be in Rendered Mode in the 3D viewport. Other Shading modes will not reflect the displacement. Any changes made on the settings will not refresh in real time, you have to exit Rendered Mode (go to Solid or Wireframe Mode) and re-enter Rendered Mode to update (alternatively you can press the Tab key twice).

The more subdivisions you have on your mesh, the more detailed the displacement, but it will also have an impact on the performance of your computer.

Remember that this is still an "experimental" feature, so expect some unexpected results...

enter image description here

enter image description here

enter image description here click on the image to enlarge

In my opinion, given that this feature is largely experimental, I'd still use a displace modifier. Is more predictable, responsive and easier to control. The results can be previewed in real time in solid and texture mode as well. Also, setting some subsurf modifiers in the right order can make things a lot nicer looking, and with a lot more control on the number of subdivisions. You can always apply the modifiers to make the displacement permanent, which you couldn't do using the displacement node.

Here's the same displacement, but with a displace modifier instead:

enter image description here

click on the image to enlarge

UPDATE: The option was under the Mesh properties at Blender version 2.76 but in more recent versions it has been moved to Material Properties > Settings > Displacement.

enter image description here

$\endgroup$
9
  • $\begingroup$ Thanks! But could you make an answer where the displacement comes from an image, say the same image as the surface (instead of procedural noise of wave)? Having two identical "Image Texture" nodes and plugging one into Surface and one into "Displacement doesn't work... $\endgroup$ Apr 10, 2016 at 4:23
  • 1
    $\begingroup$ @fabriced Do not use Use Subdivision $\endgroup$
    – user1853
    Apr 10, 2016 at 5:37
  • $\begingroup$ This is awesome! Best answer on this topic yet I think... Great visual references as well (that last cube is pretty cool!) Thanks a lot! $\endgroup$ Apr 10, 2016 at 5:50
  • 2
    $\begingroup$ The option was under the Mesh properties at Blender version 2.76 but seems to have moved to the Material properties at 2.78. $\endgroup$ Jan 15, 2018 at 21:31
  • 2
    $\begingroup$ @RichSedman answer updated. Thanks for pointing it out. $\endgroup$
    – user1853
    Jan 15, 2018 at 21:40
2
$\begingroup$

Time for update ... True Displacement (called also micro-displacement) ... you make it work in Blender in three steps ...

1. Render Engine

... is still available for Cycles render engine and still under Experimental Feature Set ... Dicing Rate specify details in pixels.

enter image description here

2. Modifier

Add Subdivision Surface modifier and enable Adaptive Subdivision this feature is available (appears) only for modifier stacked as last (if there is more modifiers).

enter image description here

3. Material

Under Material Properties > Settings > Surface switch from Bump to Displacement ...

enter image description here

... and under Shader Editor > Add > Vector > Displacement node ... for input socket use your height map or procedural texture ... output socket plug into Material Output > Displacement socket.

enter image description here enter image description here

$\endgroup$
1
  • $\begingroup$ Thank you for following up with this! $\endgroup$ Jan 7 at 19:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .