5
$\begingroup$
  1. How can I get the information whether the spline is cyclic or not?

enter image description here

The example shown above does not work. What is wrong with my approach?

  1. With this method (Capture attribute), I manage to get information, for example, about normals, but not about the cyclicity of the spline. If possible, I would like to know why the blender works so selectively?

(Blender 3.6.1)

$\endgroup$

2 Answers 2

5
$\begingroup$

Your problem seems to be an issue with Blender. It's not a bug in the sense that the node tree works like it's supposed to, however the pink Switch socket of the Switch node probably should have a circular shape. This is because the output is circular (evaluated once per frame per geonodes modifier), so all inputs should be circular as well. And then, if you connected a field to a circular socket, the link would become red, reporting an error, which you can fix by converting multiple values to a single value. In your case, there could possibly be more than one spline, so tell Blender you mean the first spline (index 0):

The text still says No, because at the sampled point, the spline wasn't cyclic. Perhaps you want to sample later in the evaluation:

But it still says No, because the Cyclic attribute change doesn't propagate to all attributes affected by it - this is precisely the reason why you would capture an attribute, to be able to keep its original value as a copy. So what you want to do is just read the actual Cyclic field from the Is Spline Cyclic node:

And as I just showed, you don't need the Capture Attribute node in this case.

$\endgroup$
2
  • $\begingroup$ Thank you. As I understood, it is the "Sample index" that is responsible for reading the actual information about object. $\endgroup$
    – arachnoden
    Commented Sep 2, 2023 at 20:42
  • $\begingroup$ @arachnoden it evaluates the Value field as type Boolean on the first (Index 0) Spline in the connected Geometry. $\endgroup$ Commented Sep 2, 2023 at 21:29
3
$\begingroup$

I think the answer from @MarkusvonBroady should be sufficient for your needs. Here is just an additional / alternative version: in Blender, a curve object consisting of several splines can have different Cyclic settings under Active Spline in the Curve Properties for each spline. Of course you can set them individually in Geometry Nodes as well, but it seems not many people know that even without GN, a curve does not necessarily have all cyclic or non-cyclic splines.

So, if you get rid of the Set Spline Cyclic node (or mute it), the splines will use the individual settings given in the Curve Properties. In the follwoing example I simply duplicated the spline a few times in Edit Mode and set some of them to Cyclic and some not:

multiple splines

Now you could use a Sample Curve node set to Boolean instead of Sample Index, because this way you can not only get the Cyclic information of the spline determined by the Curve Index, but also the position of the respective spline (in this case it is the location of the first control point).

sample curve

This can be used e.g. to switch through the individual splines and show there Cyclic status and even place the text next to the spline in question. As I said, this might not be needed, it is just an additional way of retrieving information.

switching between splines

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .