Page MenuHome

Solidify modifier cannot write to a vertex group after using Join Geometry with no vertex data
Closed, ArchivedPublic

Description

Blender Version
3.1.2

Case
An object with no mesh data has a geometry nodes mod that copies data from a driver object that does have mesh data. Then it applies a solidify mod and outputs the shell to a vertex group named "shell". Then a geometry nodes modifier deletes geometry with the shell vertex group.

Short description of error
The vertex group will only be deleted if the driver object has a vertex group named "shell". It does not matter if the cube object has this vertex group or not.

Conclusions
Vertex groups will appear in Attribute input dropdowns after using the Join Geometry node with a mesh with no vertices. So the Join Geometry node does appear to join vertex group data from a mesh even if it has no vertices, but the Solidify mod cannot write to such vertex groups. I'm not aware of any other modifiers that write to a vertex group. If there are any I suspect they might behave similarly.

Event Timeline

Carl Olsen (unstoppablecarl) renamed this task from Solidify modifer cannot wrote to a vertex group after using Join Geometry with no vertex data to Solidify modifier cannot write to a vertex group after using Join Geometry with no vertex data.May 17 2022, 5:53 PM

Thanks for the report. This is expected behavior currently though. Geometry nodes doesn't create vertex groups when it creates new geometry, it creates generic float attributes. The difference isn't so visible externally currently, but most modifier cannot use generic attributes as inputs at this point.

@Hans Goudey (HooglyBoogly) in this case it is not creating vertex groups it is just copying them. And it does copy them in some cases and not others (a mesh with vertices vs not). Can you please look at the example file again I may not be explaining it well enough.

Right, they are "created" because the result of the join node is a new mesh that just has the values copied from its input meshes. Geometry nodes only reads generic attributes, so that's what it creates in the result.

Right, they are "created" because the result of the join node is a new mesh that just has the values copied from its input meshes. Geometry nodes only reads generic attributes, so that's what it creates in the result.

the example file shows that this is not always true. There are 3 example cases where it is not true in the file.

In the file the "not working example 1" and "working example 1" collections contain identical cases with one difference: the object "cube (has vertex group)" has no vertices and the "cube 2 (has vertices)" does have some.

So it appears this has some bearing on the solidify modifiers ability to write to the vertex group.

If an input mesh has no vertices, it is empty and not processed by geometry nodes.
I'm finding your file a bit confusing, but I still don't think this is a bug. Sometimes the final mesh is not recreated as an optimization, or sometimes the data types from the original are used, but it's just not really a supported workflow at the moment.

If an input mesh has no vertices, it is empty and not processed by geometry nodes.

This would explain it. I get it now I think. I guess the question is for cases like this should you be able to pass through groups so they can be written to like this? I have been using a workflow to copy a driver object into an empty and manipulating it with geo nodes a ton.