2
$\begingroup$

I'm hoping to replicate the Mesh Deform modifier but in a more procedural way in geometry nodes - so that I can use a cage object to distort my monkey, but without having to bind it like the traditional modifier

I've tried using a raycast node to kinda shrinkwrap it to the deform cage but it wasn't very accurate.. has anyone tried something similar or know the best method to achieve this setup?

Thank you

enter image description here

$\endgroup$
3
  • $\begingroup$ Hello, JaRa.. that looks more like a Lattice than a Mesh Deform , can you just clear that up? $\endgroup$
    – Robin Betts
    Nov 20, 2023 at 7:22
  • $\begingroup$ Hey Robin, no it's just a mesh set to wire display mode so it's easier to see in the viewport, sorry should've clarified that. What I'm actually trying to achieve is on a much more detailed mesh but in this example I just wanted to show it in the simplest possible way to see if possible? $\endgroup$
    – JaRa
    Nov 20, 2023 at 23:38
  • $\begingroup$ The binding isn't because Blender devs want to waste your time-- it's because there are calculations that need to be done one time, to establish a correspondence between the two meshes, and which need to be recalculated whenever topology changes. Even if you recreate a mesh deform with GN-- it's possible, but a waste of time-- it will require binding. If you want something that doesn't need to be bound, use a lattice instead, which just uses position in space to create that correspondence, so doesn't depend on topo. $\endgroup$
    – Nathan
    Nov 23, 2023 at 18:14

1 Answer 1

2
+50
$\begingroup$

Here is my basic principle example:

enter image description here

Besides Geometry nodes itself, I added some changes in scene. Firstly, I have activated Rest position to get this attribute in Geometry nodes. Then I've added shape key and make it 100% active. Now than I edit mesh, it edits shape key, living "Basis" untouched.

So then it comes to node set up, it is relatively easy. I just find nearest surface position on "Cage" mesh and move vertices as much as Shape key moved.

This can be improved a lot, but I tried to keep it simple to make it clear:

Features that can be addressed:

  • Use rest_position for sample nearest surface.
  • Use repeat zone to capture more corresponding vertices and smooth out the influence.
$\endgroup$

You must log in to answer this question.

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