I'm not sure if it's a bug, but when I apply a volumetric shader in an object with adaptive subdivision+displacement, the final render on Cycles ignores the displacement.

Render with surface shader (diffuse):

enter image description here enter image description here

Render with volumetric shader (scatter+absorption):

enter image description here enter image description here

Mesh in viewport:

enter image description here

Is there a way that I could use cycles displacement with volumetrics?

  • $\begingroup$ I suspect that's more a limitation than a bug. Also, the experimental displacement is just that at the moment - experimental - and I believe it's subject to change in the near future (can't remember where I read that - a recent question possibly). For now if you want to use volumetrics you'll need to actually apply the displacement to the mesh rather than using dynamic displacement. $\endgroup$ – Rich Sedman Mar 22 '18 at 10:12
  • $\begingroup$ yes, I thought that could be the issue too. unfortunately it's very hard to get the desired level of detail (my main goal is something even higher than that) in the mesh using regular subdivision, not to mention that I wouldn't be able to use node based textures :/ maybe someone comes up with a workaround to achieve it $\endgroup$ – arvere Mar 22 '18 at 10:17
  • 1
    $\begingroup$ what texture coordinate is the displace node using ? I've issue with the 'generated' coordinate, while 'Object' seem fine $\endgroup$ – Hacketo Mar 31 '18 at 15:18
  • $\begingroup$ @Hacketo it was exactly that! I would never imagine... do you know why this happens? Anyway, you should post as an answer, so I can accept it! $\endgroup$ – arvere Apr 4 '18 at 8:04

Using cycles displacement combined with volumetrics seem to work only if you are using the 'Object' texture coordinate.

I tested the following : Generated - UV - Object

Viewing displacement texture Displacement combined with volumetrics

I don't know if it's a bug, but we can see the displacement in the rendered viewport if we add a surface and remove it

enter image description here

So if you want to use other coordinate than Object, you have to use the displace modifier

| improve this answer | |

The difference between your viewport mesh and the render with the diffuse shader is certainly not due to a subdivision modifier. The volumetric render is corresponding to your viewport mesh.

It looks like you have a displacement (or perhaps bump/normal) added in your diffuse render, which is absent in your volumetric render (I cannot add any displacement or normals to volumetric absorption or scatter...).

When I try to reproduce what you see, I indeed lose the relief when it's applied as a bump map to the surface texture and I disconnect that surface texture. When I use the same bump map on the displacement input of the material output (and not on the normal input of the surface texture), it works as expected iff I select "experimental" in the render tab.

| improve this answer | |
  • $\begingroup$ I'm using cycle's displacement, because I'm using procedural textures for it. The thing is: it's connected to both diffuse and volume shaders, but it only seems to work on the diffuse one. $\endgroup$ – arvere Mar 22 '18 at 9:04
  • $\begingroup$ OK, but that's a different matter. You were asking about the subdivision modifier being ignored... $\endgroup$ – remco Mar 22 '18 at 9:22
  • $\begingroup$ ok, ill add my node setup to make this clearer $\endgroup$ – arvere Mar 22 '18 at 9:59
  • $\begingroup$ oh, now I see what you mean, I meant the displacement gets ignored. I'l change the wording $\endgroup$ – arvere Mar 22 '18 at 10:11

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.