Animation Nodes addon has support for expressions such as these:
Having that kind of function for floats and integers at the very least would simplify Geometry Node setups greatly.
Animation Nodes addon has support for expressions such as these:
Having that kind of function for floats and integers at the very least would simplify Geometry Node setups greatly.
yeah, that is nice.
Sure ! Iām pretty sure this has been discussed at some point , IIRC it was stated that it was a bit early to tackle that. Since itās also possible to add some more advanced scripting (like houdiniās vex) at some point. Some good choice for the base language is needed here. Python will probably be too slow, itās not easy to introduce a new language to blender, and even more a third one if we end up with one specifically for expression and one for more advanced scripting.
Take what I say with a bit of salt since itās been a while that I see these conversation, Iām not sure I recall everything accurately. Anyway Iām pretty sure it will come to GN eventually, these little shortcuts to avoid adding 15 nodes to do something will come very handy !
Probably devs focus on adding core feature first and latter look at making things in a simpler way.
In my opinion this kind of thing does more than simplify the node setups, as it also makes math actually readable, since you can read it on one line and in the same order you would write it on paper in math class etc. I always get annoyed at how it feels like Iām having to do math in reverse when using nodes in Unreal etc.
Face Group Boundaries.blend (97.6 KB)
Examples of new Face Boundaries groups (Edges to Face Groups and Face Group Boundaries):
Defining edges at x=0 and y=0 to set material index. Using face z-position to define arbitrary face indices and then extracting the boundary edges.
The flood of patches before the deadline for 3.5 feature freeze, mostly curves/hair-related but also teasers to the promises of everything nodes.
Geometry Nodes is also good for frosting those delightfully sweet slices of heaven we call cakes.
With curve profiles and OpenVDB, I can actually write stuff down and makes rings with true, 3D frosting instead of trying to see if I can make it work with microdisplacement (since it would be a nightmare to try to model it by hand).
Though I do admit, I am thinking more now about how to be lazy and make objects with nodes instead of actually doing it manually (even though in many cases it can still be faster to do it by hand than figure out the math, I know the virtue of building group nodes as you go along but that will take a while).
Come on Ace, I know you can do it! And make that no valence six (or higher poles), will you?
True.
And the other thing with the nodegroups is this: Often (in my experience) it is a very different thing to make a nodetree which works for that specific scenario you happened to originally create it for, vs. turning that tree (or part thereof) into a solution which works for the generalized case.
If it works inside of a specific surrounding nodetree, it may easily rely on certain assumptions (which therein hold) and making it avoid those assumptions (or enforce them etc.) is often a considerable cleanup-effort before you arrive at something to be a reusable nodegroup.
greetings, Kologe
Last of 3.5 patches.
From this:
I have a question. I have started to play with geometry nodes recently - and it struck me that some of the nodes would be extremely useful in Cycles material editor (particularly things like the āRandom Valueā node).
Is there any intention to perhaps expose useful nodes like this across both geometry and material node editors?
You can try to replace Random Value with White Noise Texture in Shader editor.
About porting parts of Geometry Nodes to Cycles I have no idea.
Yep - but the random value node has other options (like being able to output a random vector). Whilst you can cobble something together in Cycles nodes to do this - it would be cleaner (and more consistent) to simply expose the geometry node in cycles.
Yeah it would be awesome to try to have more uniformity when possible.
About the random node, in GN it randomize a value per point, edge , face, spline depending on the domain it operates on.
But in material it works a bit differently, we already have random per objects or island, per rays doesnāt make a lot of sense to me but who knowsā¦ So per āwhat ?ā the randomization should take place ?
As silex pointed out, I think using the white noise is the closest you can get, or you build an attribute using GN, which indeed adds clutter ā¦
If there is anything that I would reeealy like in GN about Random Value is to have one for an instances. So we can randomize per instance aspects of the object before it is plugged into a socket on Instance on Points
node.
What kind of aspects in particular ? I think as soon as the geometry changes they are not instances anymore. Or you talk about changing stuff knowing that youāll end up realizing instances anyway ?
My approach for the latter is to cancel transforms after instancing and apply them back once all the changes have been done.
I think it would be difficult to avoid that, since before instancing we only have āoneā master object to deal with. Or we can imagine taking an object, and using loops we might be able to make several variants of it and put them in a collection (geo to instance node ) out of it that eventually all that
get instanced using pick instance on each of these variants. Loops will definitely helps here I think !
yes ! In that case they canāt be instances since it will be different geometry.
You need either to create N variations using loops (when theyāll be available) , or take care of the extrusion after instancing.
On top of that, when you do the extrude, there is only one object that latter get instanced, so Iām not sure it would work even with a magic ārandomize laterā node, if you see what I mean.
All that said, for sure doing these kind of things is very needed and not yet super easy, I think our best bet is to wait for loops that should solve a lot of problem there !
Not much more to add, except to point to an example of johnny doing it in the simulation branch. So with loops this gets quite easy.