5
$\begingroup$

No matter what I try, I can't close a visible displacement gap between materials when I'm using Adaptive Subdivision.

gaps in mesh

Enabling Auto-Smooth in the normal options fixes gaps on the corners of objects within the same material, but not between materials.

Catmull-Clark Subdiv doesn't fix it, nor does enabling Use Creases. Turning off Adaptive will fix it, but I really need it for my scene.

Any other ideas?

$\endgroup$
  • $\begingroup$ You mean the black parts below the bricks on the top? $\endgroup$ – lemon Aug 12 at 5:56
  • $\begingroup$ Didn't noticed first, but which version of Blender are you using here? $\endgroup$ – lemon Aug 12 at 7:24
  • $\begingroup$ Yes, the black parts under the brick. And this is using Blender 2.8. $\endgroup$ – Andrew Price Aug 13 at 1:38
  • $\begingroup$ Experimental feature. $\endgroup$ – lemon Aug 13 at 5:48
0
$\begingroup$

As mentioned by @lemon, as of Blender 2.80, Adaptive Subdivision is still an "Experimental" feature - and so may encounter unexpected behaviours and issues and may be subject to change in the future (it's only recently that the Displacement socket itself came in to the 'Supported' feature set).

It appears that in Adaptive subdivision mode that each distinct material is currently handled as a separate mesh, effectively splitting the mesh into different faces which are displaced by different amounts, depending on the material. In your case you are telling one material (the bricks) to displace by one amount and the other material (the flat surface) to displace by a different amount. At the boundary between the two materials there is a conflict between where one material ends and the other begins - and so the gap.

I suppose the question to ask is "How should the missing 'surface' between these two displaced edges actually be filled?".

The solution is to ensure that the displacement matches between the two materials at the boundard; if you're expecting the grey surface to fill the gap then that material should displace at its edge to match that of the brickwork. If, however, the brick texture should fill the gap then the brick material should displace to the level of the grey surface at its edges. I suspect this would greatly complicate your materials (as they will need to handle blending the displacement into the surrounding surfaces) but I think this is the only solution at the moment.

Perhaps before the adaptive subdivision comes out of Experimental there will be an option to 'average' or somehow automatically manipulate the displacement at the boundary of contradictory material displacements.

$\endgroup$

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.