Geometry Nodes

At the moment, GN lack conditionals. But it is interesting to see how you deal with it using bool’s and unit vectors.

1 Like

I found it:

Ah,
glad to see that switches are planned.

I love to see that an integer based switch is planned too.

3 Likes

For most purposes, what we have will work. If you multiply something by 1, it always yields whatever it is, if something is multiplied by 0, it always yields 0. By using this, you can get a simple “gate”. But since I wanted it to use whatever it was, I used a not-not. I could have gotten the same result using a clamp of 0 to 1, but I figured that widgets in the properties panel will probably come soon for the geometry nodes modifier, and I wanted my nodetree to be prepared.

This only works for number-based things though, and won’t work for objects, geometry, attributes etc. We will need the simple switch node for that.

1 Like

Although, I was just working on a instance type switch:


When the boolean is 0, the object type is the first one

When the boolean is set to 1, the object type is the second one.

I found that if I scale them by zero, they are non existent. I used that to delete the ones I’m not using, and keep the ones I am.

There might be an alternative to scale an instance to zero.
The Point Separate node could act like a switch.

3 Likes

That makes sense. It’s a lot cleaner than my idea.

Is there a way to merge by distance in gn? I would like to dissolve my useless verticies.

In many ways however, geometry nodes allows you to work this ‘work around’ in ways that simply could not be done with the stack.

For instance, random scale, rotation, offsets, UV offsets, you name it, if it is an attribute it can be randomized. You could even throw in randomization in the object used thanks to the collection mode in the instance node. That is not to mention that creating a line primitive allows you to start the array in any location (as opposed to always starting from the origin of the source object).

What I said above is actually a major reason the devs. won’t recreate the array modifier as-is in node form, as they do not plan to have as a hardcoded node modifiers that can be easily recreated as a group.

4 Likes

I do think it would be nice for beginners if there was a built in addon that adds in a bunch of simple nodegroups like an array, a basic scatter, etc.

4 Likes

Using the new points to volume and volume to mesh nodes, it is possible to achieve a skin-like modifier.

I’m looking for a way to make my subdivision adapt to the length of the edge. Any ideas on how?

Also, I would like to edit the radius attribute of each point.


Tried to make a custom lattice, but it looks like I ended up making a cast modifier.

It’s awesome because you can customize the shape of the cast, as opposed to the limited cube-sphere-cylinder.


A conehead Suzanne using this technique with a cone.

12 Likes

Thanks for speeding up the boolean node, @HooglyBoogly.
https://developer.blender.org/rBe8573a59f66281
At first I didn’t believe that it would be that much faster. Then I tried it for myself. I can practically animate low poly boolean operations whereas before, it practically crashed my machine. Thanks again Hans, you are a blender improvement machine!

2 Likes

Wow, that’s great to hear! I was worried the improvement wasn’t as nice as I expected when doing some testing, so I’m glad it’s proving helpful in practice. Booleans are so essential to procedural modeling, so I hope we can continue to improve the performance in the future. The hard work here was done mostly by @howardt, who made it possible to skip the conversion to BMesh.

11 Likes

I don’t know if this is addressed yet on the devtalk, but there needs to be some clean-up nodes to remove artifacts, merge, and limited dissolve. I don’t know how this would work, but it is definitely needed.

I think Ratchet has a point here. At least in so far, as @Leonard_Siebeneicher’s solution is somewhat of a workaround. A nice workaround, but a workaround still.
I really hope the concept of distributing matrices and instancing on matrices (very much along the lines of what AN offers) will be introduced to geonodes eventually.
This way, an array-nodegroup wouldn’t have to spawn proxy-linesegments under the hood to instance stuff on their verts.

On another note, I’ve been wondering weather we’ll have string manipulation nodes eventually. Attributes are really just strings, after all, if I’m not misstaken.
Now imagine if we had nodes for functions like ‘starts_with’, ‘ends_with’, ‘string_concatenation’ and a regex-node.
You could proceduralize much (if not all) of the naming of Attributes (temporary or not) in your nodetrees. I imagine this to be very helpfull, especially to ensure reusability and flexibility (of nodegroups etc.).

greetings, Kologe

3 Likes

Radial arrays just got stupid simple:


I’m adding this to my array node. I remember radial arrays used to be so hard to make and get right. But this is just perfect.

9 Likes

Is this in the 3.0 alpha or part of the 2.93 beta?

1 Like

This is a 2.93 beta from a few weeks ago.
3.0 alpha is nothing yet.

1 Like

Very needed a switch node.

For example make some house random generator using different modular windows, doors and roofs styles, also randomizing placement on predefined vertexs, your own rules how you like,
so you need a switch for the random integer nodes.

3 Likes

hey verybody! does anybody also experience a bug, where geometry created in the Node Trees itself (like Primitives or Voxel Mesher results)is not getting any Material attached? when i assign the material IDs it doesnt show up in the render or viewport, but weirdly enogh only in the edit mode.

1 Like