Ok, I’ll try to explain as best as I can, feel free to ask question if needed until it’s clear !
An attribute can be any values. These nodes like position , normal give access to built-in attribute that are one thing. But you can make custom attribute with what you want .
You can “capture attribute” any value. It’s a kind of vertex group, or vertex color depending on the attribute type.
In fact, there isn’t much difference between fields and attributes. It’s basically the same thing.
When running the nodes without the capture attribute nodes, we get a value (a field) , we can then decide to store that value as an attribute with capture attribute to use it latter in the tree.
In our case, because the capture attribute is set to Boolean, and to Point , it will store for each point of the Geometry a value that is either 1 or 0 (True/False) according to the result of the compare attribute node.
It’s similar to a vertex group but with more possibilities :
Here I’ve stored the value 42 for every points of the mesh.
Here I’ve stored the color of the noise texture :
Here the value is different for every point, because the texture is mapped to the object.
Yes you get it, it’s not a list (array) of specific points. It’s a value that is either 0 or 1 for every points.
Once again, kind of a vertex group. The vertex group is for one mesh, but the values changes for every vertex.
With the node you’ve set up, you ask for a comparison between two value ( that’s the compare node).
That comparaison is made for every point of the Geometry. For every point , we compare it’s Z position, and if it’s equal to “Z Stalk Height” the ouput value of the Compare node will be 1 for that point/vertex, and if that’s not the case it will be 0.
Hopes that makes sense, I’m not sure what I wrote is super clear, but feel free to ask more questions and I’ll try to explain it better