This is about the behaviour of the Realize Instances node as it relates to vertex groups. I’m writing to get feedback on a change that I am thinking to submit.
Here is the scenario that I ran into:
I have a bunch of meshes inside a collection, many of them with vertex group information, that I want to combine into a single mesh using a Realize Instances
node on the geometry coming from the Collection Info
node.
If there is a single object in the collection, passing it through the Realize Instances node maintains the vertex group information for the output. However, if there is more than one object, all the vertex group information is deleted for the evaluated geometry. The actual attribute data itself is of course there, but in order to restore the data, I need to apply the modifier, then manually convert all of the attributes back into vertex groups. Obviously, this is a show-stopper when trying to maintain a non-destructive workflow.
The reason why this is happening is no mystery, as the node explicitly removes all vertex group information in it’s execution.
I reported this as a bug a little while ago but it was closed due to it “working as intended”. In my opinion, the way it’s intended to work could be improved to be truly non-destructive to the data.
My proposal is that the node instead should be changed to persist and merge all vertex group information together from the input meshes. This would make the node less destructive, and would mirror the behaviour of “Join” operator, which is more in line with what a user would expect to happen.