I’m having some trouble trying to figure out just what some of the connections in graph networks are doing. Most of the time they make sense - an upstream node calculates a value and passes it along to the downstream node. But there are some situations where it seems to go backwards. For example, I was following this geometry nodes hair tutorial and the tutorial had this subsection where you shrink wrap the first points in each spline to the surface of mesh they’re growing out of.
My question is - what exactly is traveling from the Geometry Proximity node to the Set Position node that I’ve labeled A here? How does the Set Position know it’s trying to do a shrink wrap operations here? Isn’t that info upstream? Or does the Geometry Proximity node have some sort of awareness of the points being fed into the Set Position node and is just sending along what those positions are going to be?
There’s a similar issue with the texture node that’s half offscreen on the bottom left. How does the Set Position it eventually connects to know which offsets to add to it’s incoming points? Is the Texture node sending along a complete texture? Or does the Set Position node have some ability to look backwards and just ask for the points it needs?
Just remember that nodes themselves don’t do nothing. They are a representation, that the engine understands and converts into the list of processes needed for its execution, so what’s running ‘under the hood’ might be executed in different way and order.
In a simple overview, the tree traversal starts from the ‘GroupOutput’, and goes all the way down, making a ‘sketch’ of how the execution will look like (the execution stack, dependencies, memory allocations, caches, constants, etc).
Dependencies are then calculated as needed by the commands described in the top nodes. If some dependency depends on other commands, the same process is repeated until the execution stack is finished.
Fields in geometry nodes are maybe not what you think they are… see docs.blender anual geometry_nodes fields… and some online tutorials… to get the idea it may also depend on the way you are used to think and if any tutor suits your pre-knowledge… so i can’t suggest any special…
If you are more into non-video tutorials… then maybe this:
or (maybe a bit to technical ??) from the dev/makers of blender: