Hey all, I have a mesh that’s cut up along some edges with a split edges node, and I’d like to convert each of the resulting mesh islands into its own instance… the geometry to instance node makes it into one single big instance instead.
There are ways that involve pasting hundreds of node-groups → Each node-group basically makes a copy of everything then Separate Geometry on Island index, outputting a new instance and the “remainder” geometry… so, not a general solution but something that may work with loops (in future).
So, currently no real way to do this without using scripts…
been procrastinating making an account on developer site.
You’re on there… Could you please make a request to have a “Group Input” on the Geometry to Instance node? That would give us a general mechanism to do this without needing loops.
Ok thanks for the peace of mind, at least I know it’s not officially supported. I think it’s alright to ping @HooglyBoogly to ask whether or not this is possible/planned? I’ve never heard anybody mention it so it may very well not exist as a todo… yet.
@ErraticStatic Thanks, I’m asking specifically in the context of geometry nodes. I am making a tree canopy and the idea so far has been to generate a lowres version of the asset with a solid canopy instead of individual leaves, split it into several cells and jumbling them somewhat. I was hoping to turn them into instances to save the computational cost of moving every vertex, but I can’t even do that because the statistics node has no group input either. So I reverted to a simpler solution for now.
Splitting mesh islands into their own instances goes against the idea of instances a bit (typically there are fewer unique instances and they’re used as a performance optimization). It could be fine to “break” that definition, but I’m not sure we’ll want to do it. It might make more sense for a node to output a geometry list. We haven’t really decided yet.
Ok yea I understand. Does my reasoning hold here ?
This would allow me to transform each piece of mesh individually, but I realize now I’m working around the impossibility of getting grouped statistics (in order to find one pivot point for each mesh island). Either way I think there should be a simple path to doing just that.
Instead of thinking about the idea of an “instance”, the equivalent concept to consider is a “collection”… so the idea/goal is to simplify the process of procedurally creating an instance collection to then use the “pick instance” operation on later.
Its a use-case many have come across while using GN… so, hope you’ll consider it.
Having something that turns one island into one instance inside a collection will probably be helpful, but being able to set a group of object as instance alongside other group will be much more helpful in the end.
That way a generator can create a few houses or buildings and all that ends up being scattered to form a neighborhood.
Yes, if you are fine to use the simulation branch (or the usual known hack) you can create a set of parametric instances in a very easily already, for example like johnny does here: parametric instances by loop
In you case your could split and join each islands as instance each frame.
Haha , so much hacking spirit in the blender GN community !
I was refering to regular loops that will probably come soon after simulations ?
If some quick and dirty solution is needed I would use what Zeroskill suggested: create a loop by chaining say 100 nodegroups that extract the first island and convert it to instance, and only pass instances if there isn’t geo anymore.