Blender 3.6.2 Geometry Nodes Thoughts

Note I am still learning Blender 3D and my health is less than ideal thus what I write might be less than ideal as well, trying to be helpful.

Geometry Nodes is a slick feature. I have been having trouble understanding the basic flow. It is a little confusing coming from a programming background (I have worked mainly with Java and Object Oriented Languages).

Working with an array of values, vertices and meshes versus individual values takes a bit of getting used to. Separating out a particular point is not very straightforward and intuitive at least from my comprehension.

If I have a basic planar mesh, and I want to make all values where x greater than 0 higher than the others I have to go through a few steps. If one has a Geometry Input they would need to run it through a Set Position Node before the Geometry Output. This is the function needed but that does not allow special cases (like x>0) by default. Thus the user has to work backward a bit. The need to use a Input Position Node which is kind of like a variable or placeholder that will be later used by that same Set Position Node.

From Position Node the XYZ component can be extracted via Separate XYZ node (Menu: Add -> Utilities -> Vector -> Separate XYZ). That provides an output of X, Y, Z that have the ability to be modified. When X>0 then Z=1 else Z=0 can be created via compare and float switch. The result value can be then attached to a Combine XYZ (Menu: Add -> Utilities -> Vector -> Combine XYZ) x to x, y to y, and result of compare and switch to Z. The combined XYZ can then be directed into Position Input of Set Position.

For programmers it might be helpful (at least in my opinion) to think about the system as using tokens that are evaluated at a later point in time when using the Input nodes, versus actual inputs. If I were to plug this combination into another node it would be working on different positions, and since there is no input to the Position Input node comprehension is less than straight forward.

Added a file here: https://github.com/jasonldavis-tech/WorksInProgressBlender/blob/main/GeometryNodesModifyMeshPositions.blend

Programming usually common to think of a method having all inputs on the method. In this case it is more like a future method will need to perform these operations on X,Y,Z once X,Y,Z inputs (provided from a Geometry, Mesh, Curve, or Points) are available. Like writing a generic filter to be used later, rather than evaluating and modifying inputs inline.

Kind of expected more of a Geometry Nodes to Vertex Position approach thus making comprehension a bit less intuitive. Mesh Data includes edges and faces that is more than just the points that is less than straightforward from my own point of view.

Might be a bit due to a different way of thinking. Programming usually one takes the data looping over it changing values. Programming with Nodes is encapsulated functionality, node tree can grow or shrink in the same area. One can do the same with programming, adding more lines or less lines in a loop function, just seems like it has the potential to change more with node based approach. Like using a callback function or passing an object to call a method on later.

Published by techinfodebug

Flex and Java Developer, Christian, Art, Music, Video, and Vlogging

Leave a comment