0
$\begingroup$

I'm using procedural vertex groups to move parts of a mesh in different directions, but I couldn't find a way to make smooth transitions between them. In the best case they would summ up in a way, that every vertex get affected by at least one of them.

This is an example grid with three vertex groups, which I currently use for testing.

three vertex groups on a grid mesh

It feels like I've already tried every possible combination of "Sample Nearest", "Distance", "Sample Nearest Surface" and "Geometry Proximity" without any luck. The most promising approach so far was separating the vertices of all three groups and using "Geometry Proximity" on it using the mesh surface.

geometry proximity

But currently I can't wrap my head around the problem and always end up with the same solutions.

For clarity reasons I also attach an animated GIF of how the three vertex groups should look like (at least kind of)

how the vertex groups should look like

... and also a blend file, if someone would be so nice to try something.

$\endgroup$
4
  • $\begingroup$ Did you know that there is also a node with the name Blur Attribute? $\endgroup$
    – quellenform
    Commented Sep 19 at 23:06
  • $\begingroup$ Oh sure. The problem with bluring one of the vertex groups is that the groups are not all the same distance apart. So I would have to blur too much or too little. as you can see here $\endgroup$ Commented Sep 20 at 1:06
  • $\begingroup$ Is this the result you are looking for? i.sstatic.net/7oiNL7ye.png $\endgroup$
    – quellenform
    Commented Sep 20 at 9:06
  • $\begingroup$ Not exactly. Since I would need three separated groups, but thank you $\endgroup$ Commented Sep 20 at 9:39

1 Answer 1

2
$\begingroup$

I think the biggest problem here is defining the algorithm that produces such gradients, not actually implementing it in Geometry Nodes. Here's an idea using "Shortest Path" - without an algorithm I just played with numbers until it looked OK.

  • use a repeat zone to sum up vertex groups so I can select them all at once
  • find the length of the shortest path to a chosen group, and t.l.o.t.s.p to any other group (select all groups minus the chosen)
  • divide one by another
  • the above doesn't quite work: it works as you approach from selected group to another, but then you continue moving across it and the gradient reverses instead of stopping. So you would need to generate curves and cut off them at the point they cross groups, that could work. However, it seems just raising one of the operands of the division to an arbitrary power creates a nice gradient, so I stopped at that.

And a proximity fix by OP:

$\endgroup$
2
  • $\begingroup$ Oh wow, that's a really smart solution, thank you A LOT Markus! Never actually used repeat groups, but I probably should. I changed a tiny detail and used a "homemade" geometry proximity as the blur weight. The difference is really tiny, but maybe it helps at some point. here you can find the blend $\endgroup$ Commented Sep 20 at 9:47
  • 1
    $\begingroup$ @schwarzgrau great, I'll add that to the answer as comments are short-lived $\endgroup$ Commented Sep 20 at 10:28

You must log in to answer this question.

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