Geometry Nodes

Question for the devs about selection, if permitted.

“Will we be able to control our selections with domain types?”

I was trying out some tests with the material nodes and ran into some issues.

Here are some pillars with a red material. I want to use the material assign node with a selection to create a pillar with some horizontal bars in a different material, blue here. Using the bevel node I could control the number of cuts aka, how many bars there will be, and with a secondary bevel node I can control the size of the bars.

1 is the desired result I am going for.

My though process starts at 2, have some pillar with some horizontal edge loops. I want to store the horizontal edge loops in a vertex group and then use the bevel modifier to create some little “bars” with a different material, just like you can see in 1. Unfortunately this method leads to 3 because vertex groups are just that, vertex based, so the selection whether I like it or not covers the whole “middle” of the pillar. That is why the bevel weight function exists for edge data. In this case I’m not even using the material assign node because this geometry won’t work.

So the next attempt uses 4 as a base mesh. I has twice the cuts as 2, and half of them are put into the vertex group. Because of this you can see there are “bars” separated by a single edge loop meant as a buffer to keep the selection from grabbing everything in the middle like 3. Using the material assign node with the vertex group, however, still leads to the whole middle section being grabbed because the vertex selection requires at least two edge loops to have a face. This means we need more than one edge loop as a buffer.

Finally in 6 I’ve creates a pillar with many many cuts, and about 1/3 of them in the vertex group for proper spacing. This finally works, but it defeats the purpose. I’ve manually created all these loops, so I can’t keep it procedural, as well since it is still vertex based, you can’t control the width of the blue bars, it is bound to the distance to the next edge loop:
Bevel

These issues stem from the fact that there is no edge groups or face groups. For material selection it’s most useful to assign using faces. In the case of beveling, as I mentioned we have bevel weight to circumvent this selection issue, but I have always felt it is more of a work around then a full fledged solution (at least stepping into the geometry nodes era).

I think there are still some discussions about selection, and if I’m not mistaken I think Jacques Lucke took some exception with relying on edge and face groups, and rather fully utilizing attributes for selection. I’m not necessarily against this, but I do wonder how these kind of selection issues will be handled then. They are super common in procedural modelling, and the current Delete Geometry node also suffers from this sort of problem, as currently you cannot delete JUST a single face, it will operate like “delete vertices”.

It really feels like we need domain type for selections. I was wondering if there is any thoughts on this.

1 Like