Geometry Nodes

Little challenge here. Imagine you are doing treads on a tire. You want to spread the tread pattern on the base tire. The problem I have is that the objects I instance are aligned with the normals but they also have a random rotation on them. They are not aligned with the tire. I’m not really making a tire but that’s the best analogy I could come up with. Any suggestions?

2 Likes

Hey all! I’m just hopping in on the train, and I wonder-- (apologies if it’s been asked)

Is there a way to tell between an attribute output and an input? That is, if I’m creating a new result/ovewriting an attribute, or just reading data from it. Is there a difference, UI-wise?

I’m talking about the text field, just in case.

1 Like

Only by context really. If the attribute field is a result then that’s being written to, but otherwise you just need to see what makes sense on the nodes. eg:

You could align one of the axis that doesn’t break the other rotations? Like in this case I align the rotation to the Y axis (0,1,0) as that’s the axel of the wheel. That way the instances that were oddly angled over the bevel get straightened.

2 Likes

When I first heard about Geometry nodes (admittedly only two weeks ago) I imagined they would be perfect for the kinds of things I like doing in Blender: modelling flowers, patterns of growth, fish scales etc. - all things in which there is a regular underlying geometry modified by secondary variations in scale, orientation etc.

After experimenting a little with Geometry Nodes and reading what documentation exists, it seems it is really good at simulating distributions of dust, soil, rocks etc. but not so good at the doing the things I am interested in.
Up till now I have been moderately successful using particle systems to create my models but, as others will be aware, this can be difficult, with many of the settings being counter intuitive.
I still imagine that, one day, geometry nodes will enable me to do everything I currently do with particle systems (and more) but that day appears to be in the future.

If I am missing something, perhaps someone could put me on the right track.

3 Likes

This is not true.

Both ray tracers and rasterizers have to deal with primitives, raytracers need acceleration structures to cull down on the number of primitives it has to check against in order to at all be practical. Rasterizers can also benefit from culling down on primitives but handle their own well enough without primitive culling.

1 Like

Hey. Not sure if this is the place to post this, but I encountered an issue with geometry nodes a few minutes ago. I was watching Erindale’s livestream introduction to geometry nodes, and around the 51 minute mark of the video (I’m saying this for context to what node setup i had at the time) i decided to see how my simulation would run with only 2 primitives being instanced (instead of the original 4). So, I deleted 2 of them, apparently while my animation was still running, and my whole program completely crashed. I have a file for reference if anyone’s interested, where I’ve recreated the issue.

Please file a bug report. Here

User feedback.
There is often such situation, when I want to copy and randomize attribute.
For example I want to have initial positions and randomized.
As far as we don`t have «duplicate» option, I use wrong ways as (Atrr2=Attr1+0)

So I suggest:

  1. duplicate attribute node or Attribute fill with attribute
  2. randomize from one attribute (initial) to another (result)
1 Like

Next simple suggestion — Random Vector as additional to Random float.

1 Like

What’s not true about it? I did not say infinite amount. I was very precise and said “almost” infinite amount. If you have one 2 million polygon tree, the subsequent instances of it are really just a storage of an array of transform points (loc/rot/scale) and a reference to original mesh data. It’s just a few bytes. With today’s 64GB of RAM being pretty much mainstream for a 3D graphics workstation, it’s absolutely no issue to render a forest of trees with several trillion triangles of geometry. And you can even keep the frame rates somewhat interactive.

On the other hand, you absolutely can not display that amount of geometry at once with any kind of realtime GPU rasterizer. The closest we’ve gotten to it is nanite in UE5, but even that one still intelligently, dynamically streams only smart portion of visible triangles to the GPU memory.

Tell me what is wrong with that statement please.

2 Likes

I thought you were referring to rasterizers not being able to do this kind of instancing or tackle this kind of load at all. Since that was not your claim I apologize for mistaking that. There are lots of techniques that rasterization can do to speed up and make viable the rendering of massive amounts extremely dense geometry, as you point out nanite is proof of that. It is true though that the over 20 year old approaches that most DCC viewports use however have reached their limits.

1 Like

I would go with option 1 there. I often go to use Attribute Fill thinking I should be able to fill a new attribute with an existing one. I think that would be the most sensible to just add an attribute option to the Fill node.
Option 2 would be a bit of a hassle for the most of the time when you wanted to just randomise an attribute without creating a new attribute.

The new Bounding box node simply rocks!
One of my most awaited!

It would be good to have a simple iterator for better handling with stacking, but it still works fine with manually connecting a bunch of nodegroups for a small number of objects in the stack.

The blender file with this setup is in the attachment. Feel free to use/improve/modify =)
(you need the very latest build of Blender for this setup to work!)

https://drive.google.com/file/d/1Fydu-iWIfX2o0XGGnup5H7PKn-SlUDOo/view?usp=sharing

14 Likes

In most cases Attribute convert node can do the renaming. Only exception probably is if the type of the attribute is going to be changing.

Hi everybody,
a couple of questions:
-Is it possible to change the Attribute Color Ramp node with a Spline Ramp inside the Geometry Node?
-Could I use the array modifier and get an ID attribute for every copy? I could use this ID attribute inside the Geometry Node and do some stuff with it. Is this possible?

Thanks

1 Like

Hi, it seems such feature is being worked on right now, see https://developer.blender.org/D10921

2 Likes

You can’t get an index that way but you can do your array with geometry nodes and create an index that way.

9 Likes

Great!
Thank you

Oh yes this works.
Would be great to have access to point/vertex/polygon indices as Global Variables like position for example. It would open up many opportunities. Anyway thank you for this solution.

1 Like

Which will help me to improve my books stacking setup!
Thanks a lot for the hint! =)

1 Like

Is it possible to copy the id attribute from the points of the line to the instanced geometries? Or is it possible doing so for whatever custom attribute I used before the Point Instance node? Right now it seams to me that the instances doesn’t ereditate any of the attributes from the point.
For example, for this case, I could set some color based on the id attribute

1 Like