Reroutes are just “passed through” when a node decides the next node to execute, and there is no real operation inherent to using a separate modifier, except that you might have to merge separate geometry that wouldn’t have to be merged otherwise, depending on the situation.
So, technically there has to be some overhead, but it shouldn’t be noticeable.
I’ve done the simple distribution on a curve with geometry nodes, but I don’t know the next step. In Grasshopper, there are list nodes, and I could cull every third point, for example. I could also slide the points’ params along the curve. But I have no idea how to do it geometry nodes.
About the distorsion: devs are working on a curve modifier node. I think it can be done right without it but I don’t know how (maybe using the tangent and the normals of the curve, who knows)
About skipping every 3rd point and moving instances along the curve: with this setup you can do that.
The blue frame lets you move the position of the points along the curve (the green add node) and the orange frame skips every 3rd point (because modulo 3 gives you 0, 1, 2, 0, 1, 2, 0, 1, 2 etc and when is 0 the point is skipped because 0 is considered false and 1, 2, 3, 4, 5 etc is considered True)
Nice! Thank you! I wish there were an expression node where all the math operations could be done with one line expression.
A few more questions:
With the example you provided abouve of moving the points a long a curve, the rotation doesn’t work. I suspect it has to come from the tangents of the sample curve node but not sure about the maths.
Is there a way to generate a number series to use in this case as a multiplcation factor for offset distance for the curve points. In the example below, I’ve manually offset the curve 3 times, but wondering if this can be done without duplicating the nodes or creating a group. I do supsect though, that this might need to wait until the loop node lands.
You mean something like this? You can instance a curve in each point of a mesh line and then use a Realize Instances node in order to turn each instance into several curves/splines.
Ups, you’re right. The rotation comes from the original points and we need to get the updated values as the points change in location. Something like this works (the file I linked before should be updated)
I was wondering if there is a way to make it so that when it is in FK mode the spheres snap to the endpoints of their respective limbs?
And in IK mode to also have all but the last sphere snap to the endpoints of the limbs.
So I guess my question is really how to get the spheres to snap to the endpoint of each limb?
Thanks!
The release notes say that “Mesh attributes are no longer a Cycles exclusive, Eevee now fully supports attributes including those generated by Geometry Nodes.”
It sounds (based on reading the above statement) like the user should be able to pass any arbitrary mesh attribute to Cycles, but so far I am only able to get vCol and UVMap types to be modified in geonodes and used in Cycles. For instance trying to modify and pass a Vertex Group to a Cycles shader via the Attribute node produces nothing in the shading. Is this not supported?
The Random Value node seems to be broken for large ID values.
Either that or I’m doing something wrong.
So I have this simple scene where I’m distributing points on a surface, instancing curves on those points, realizing the instance into curve geometry, converting the curves to points, and then instancing a collection of objects (3 objects in collection) on the curve points.
The objects from the collection that are instanced are cycled through in a repetitive pattern(beginning of the video) so normally I connected a Random Integer node with the correct min-max range to the pick instance parameter of the last instance on points node. (see 0:16)
The problem with this is when the density of the DIstribute point on faces is changed, the index of the points created from the curve changes and I get unplanned randomness on the instanced objects. (see 0:22)
To fix this I transferred the Stable IDs from the distributed points to the realized splines and then created an index per spline using the curve parameter node. finally, I added these two values such that each point created from the curve has its own unique stable ID and connected it to the ID of the random Integer node.
In theory, this should work however as you can see (0:29) random value node does not produce a reasonable “random value”. This is because the stable ID’s are generally very large (8 - 10 digits large) so adding the index to it barely changes its order. a fix right now is to divide the stable ID by a large number first before adding the index (see 0:43). that seems to work but it just feels strange that the randomness does not work when the IDs are large and similar.
Here’s the blend file for anyone interested to look this up: weird randomness.blend (979.8 KB)
If you change the name the name of the output attribute to something other than the original vertex group name, then it works just fine. In my experience vertex group handling in GN quite funky in general.
I hit a brick wall in a project I’m trying to do. You are my last hope.
So I have a curve with control points on which Im going to instance Spheres that are going to have shifting scale values (that is done) and hopefully shifting materials (and here I struggle). So I managed to add an attribute value (see picture) to the control points (vertices of the curve) that will control the factor in my mix shader for the material. The problem is how to transfer (or assign) this attribute Value that is currently assigned to these control points), to my spheres instances (or the vertices of the realized spheres) that I’m instancing on that control points?
Hopefully it’s clear what I’m trying to say. Thanks
Thanks for the tip. That is really interesting. It seems like one needs to pass a vgroup to another genodes created attribute to be able to use that with Cycles. Also the renaming needs to be done at the modifier level as well.