10

This is my Geometry Node Setup. (EDIT: Here's a .blend file showing my nodes, modifier, vertex group, etc.) I create a grid, rotate it vertically, and then select out the topmost vertexes to assign to a vertex group. Geometry Node Setup, as described My vertex groups, showing Pin vgroup Geometry Node modifier, showing Pin vgroup assigned to geometry node output

I then try to use this vertex group to Pin a cloth simulation to stop it from falling. It doesn't work, it falls anyways. Cloth Physics settings, showing Pin group selected

I've used the Delete node to test and confirm the vertexes are being correctly selected by my nodes.

If this is no longer the way to set a Vertex Group output in 3.3, what is the correct way? If 3.3 no longer supports setting vgroup outputs at all, that's a breaking change considering that we're nowhere near ready to abandon vgroups...

I've searched and found other questions regarding merging vertex groups, but not straight up assigning them.

Emily
  • 361
  • 2
  • 13
  • Good question I can reproduce this. In 3.1, I had to connect the original geometry to 'carry' the vertex group, and set the output to float to get it to work. But so far in 3.3 and 3.4a.. no joy. – Robin Betts Sep 21 '22 at 20:35
  • @RobinBetts Do you know if there's been a bug report related to this? I can confirm problems that feel new to 3.3 w/r/t assigning VGs. But I've made enough bug reports that they seem to be ignoring me (who knows, maybe I'm paranoid) and I don't want to invest time into investigation if it's already been reported. – Nathan Sep 21 '22 at 22:38
  • am i totally wrong, but wasn't this always the case if you build geometry in GN? you could change it if the VG and the vertices exist in "real" objects, but geometry built by GN it never worked...AFAIK...but looks like i am wrong, if Robin and Nathan think different.... – Chris Sep 22 '22 at 05:28
  • Hi @Nathan + Chris I managed to get it to work in 3.1 by passing the (single-vertex) modified object's geometry through the modifier, joining it to the generated geometry. (The vertex-group was 'extended' to include the generated vertices.) It worked only if the modified geometry was top-socket in the Join Geometry node, which is suspicious, IMO. That node shouldn't care about order. I think I agree with Chris, it was never intended to work. A good route would be to have other modifiers like Cloth accept any named attributes.. – Robin Betts Sep 22 '22 at 16:42
  • @Chris + Nathan .. eventually. Possibly, in Everything Nodes, 'Vertex-Groups' would disappear, become per-point float attributes, and everything would be wired in. I don't know if that's the sort of cleanup that's being considered. – Robin Betts Sep 22 '22 at 16:49
  • 2
    @RobinBetts I found https://developer.blender.org/T100908 , closed as duplicate of https://developer.blender.org/T99197 (even though they refer to bugs that skipped an intervening version) with the disappointing statement, "At this point this is just a known issue/limitation." That's join geometry, but it looks to me like pure GN geo is handled the same way. Unfortunately, this rules out an awful lot of things I want to do with GN. Can't get it to work with your workaround, but who knows, maybe I'll figure something out. – Nathan Sep 22 '22 at 18:11

1 Answers1

15

I figured out a workaround. It wasn't easy, because Blender 3.3 is terribly unstable and I would get various errors in the console while playing with settings - restarting Blender would fix them, but keep that in mind, as you may think some technique doesn't work, while it's the corrupted state that causes issues and requires a restart...

So here's the exact steps for everyone to easily reproduce without the need to jump through hoops:

  1. ⭾ Tab Edit default cube, X, V delete all geometry.
  2. Create a Vertex Group PIN.
  3. Add an empty
  4. Add the following stack of modifiers to the 'Cube', non-default settings in red rectangles:

  1. Add the Geometry Nodes tree of your choice to the first modifier. You need to change it by adding the contents of the blue frame to it:

It saves the calculated vertex positions and then moves vertices away from the empty so the Vertex Weight Proximity modifier can do its work.

  1. Add a new node tree to the last modifier (2nd geonodes modifier) which simply restores the saved positions:

  1. Finally, add the Cloth modifier and set the PIN group.

An additional tip: whenever you change the geometry nodes setup, you may need to fiddle with a vertex weight modifier to update the whole setup...

Another remark: you absolutely can use the default geometry, as in, you don't have to apply the step 1. in this answer. However, in such case, you have to either add "Delete Geometry" node inside your setup (so e.g. you spawn instances on original vertices, but when you apply the boolean, you don't boolean with the original cube, as you delete it before the boolean node), or just make sure the boolean doesn't screw your geometry, by e.g. offsetting before boolean and reverting the position after the boolean...

Example: changing PIN during simulation

Vertex group for pinned vertices can be changed during the cloth simulation. Unfortunately, when you change the PIN, new pinned vertices aren't pulled to their last position before being pinned - they are pulled to their original position calculated in the geonodes:

Something less erratic:

Using Pressure = 1:

Markus von Broady
  • 36,563
  • 3
  • 30
  • 99