Temporary objects / creatures pressing against membrane

Source files here and here.

Hey folks. Currently building a project for a client which involves shapes and creatures pressing and moving against a membrane. I've tried using shrink wrap, cloth simulations and blend shapes to achieve the effect, but nothing seems to give me the same freedom of movement as rendering a depth pass sequence of the objects moving and using that to drive a displacement modifier.

Unfortunately, it's still a bit rough. Objects extruding far out of the surface look stretched and glitchy with narrow triangles. Additionally, the mesh is using 64,800 triangles, which is about the maximum I can use in Unity Realtime per object.

Can anybody think of a prettier / more efficient way to achieve this effect?

  • $\begingroup$ Have you tried dynamic paint? You can set the dissolve to one frame. To export to unity would require baking to displacement maps but you should be able to do it in one pass rather than repeat for each object. Also setting shading to smooth should hide the mesh faces. $\endgroup$ – sambler Jul 17 '19 at 7:57
  • $\begingroup$ This seems pretty interesting, though I'm having a little trouble getting the objects to protrude from the faces rather than dig into them - setting dispace to -1 doesn't seem to be doing the trick, anyway. || Also, not entirely sure what you mean by 'baking to displacement maps' - are you referring to the same depth pass render I've been doing? If this can give me a smoother extrusion I'm all for it, though. Hiding the mesh faces doesn't really work with this much distortion, sadly, but I'm going to try tessellation in Unity... $\endgroup$ – Reverend Speed Jul 18 '19 at 15:54
  • $\begingroup$ Flip the normals on the canvas. $\endgroup$ – sambler Jul 19 '19 at 7:51
  • $\begingroup$ Hey @Sambler, just to say that flipping the normals on the canvas and setting the displace to Incremental managed to get me a similar effect to the above, but it still seems to have the rough shading along the edges, sadly. Unfortunately, my client no longer wants this effect, but thank you for your efforts either way. =) $\endgroup$ – Reverend Speed Jul 28 '19 at 23:11

While I was ultimately forced to use a realtime displacement shader in Unity to achieve the effect and my client later moved onto an off-the-shelf raymarching solution in Unity, I was able to slightly improve my workflow in Blender.

Using a Displacement Modifier to initially perturb the subdivided plane provided a gentle organic 'texture', I then followed this with a Warp modifier to move the vertices in the direction of my depth map (the Warp modifier obviated the need to worry about normals as it extends the vertices towards the 'to' empty).

While not perfect (still getting stretching artifacts, etc), it worked out pretty well within Blender and I was able to export Alembic bakes for playback in Unity.

| improve this answer | |

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.