2
$\begingroup$

i try to create a setup with geometry nodes which samples a reference curve and uses it to taper another curve. Practically, it should behave similar to what the "taper object" does in the "data" tab of a curve object.

I tried to solve this for the whole day and cannot think straight anymore. Here is what i've came up with so far (left is the reference curve, right is my object holding the geometry nodes):

taper setup

As you can see, my setup samples the reference curve along the factor, which results in a wrong taper. I think, it would be better to sample the position along the normalized x-position, but i really don't know how to do this.

Does anyone have an idea? Maybe i am overcomplicating things here :D

$\endgroup$

2 Answers 2

2
$\begingroup$

You're right.. you want to sample the taper-curve's Y at X (in projection). not the taper-curve's Y at Factor.

Sticking to your tree, you could 1. Capture the Y on points, 2. Collapse the points onto the X axis, and 3. Then sample the captured Y at Factor:

enter image description here

Which makes this difference:

enter image description here

You could tidy up by grouping: 'Sample Curve at X', or offer a variety of projections, etc.. but that would depend on the kind of tools you want for your workflow.

$\endgroup$
6
  • $\begingroup$ Wow! This makes totally sense and still is a quite minimal setup. Thank you very much! $\endgroup$
    – 100drips
    Nov 17, 2023 at 10:27
  • $\begingroup$ @Robin Betts that is a great approach in direction of copying the Taper Curve functionality. It gives a good result on a flat curves, but some strange wrinkling artefacts when using curved splines. It also doesn't match exactly the same curve with the original Taper effect. $\endgroup$ Nov 17, 2023 at 13:27
  • $\begingroup$ Actually it's fine. It has this effect only when using Count or Length resampling, it works fine with Evaluated resampling mode - 1 : 1 match with Blender's original function. $\endgroup$ Nov 17, 2023 at 15:52
  • $\begingroup$ Hi, @RumenBelev .. for sure. with you there. Slightly different point from the one in the original post though, (Hence, 'sticking to your tree' :) ) 'Evaluated' will be good, so long as the sampling on the input geometry is good. To be fair, that might be off, too.. Blender doesn't do automatic adaptive sampling when approximating curves, unless I've missed something.. which is a shame. $\endgroup$
    – Robin Betts
    Nov 17, 2023 at 16:14
  • $\begingroup$ @RobinBetts I digress. After more careful testing your solution works in all modes just with moderate resampling steps in case of Resample and Length. I think Blender Devs should look into this thread about correcting the Blender's tapering function :) Here is a comparison between identical curves with Free type points: i.stack.imgur.com/UX6t6.png $\endgroup$ Nov 18, 2023 at 10:57
1
$\begingroup$

Here is one way to do this :set the sample curve node to vector and plug in the value socket a position node. I used the Z axis in this case

enter image description here

$\endgroup$
1
  • $\begingroup$ Thank you for the response! But the problem still persists - i think your setup does exactly the same as mine. The problem becomes apparent when the taper curve has very steep angles. Like the one in my example. Because we sample the curve along the factor, the shape doesn't get transferred correctly to the solidified curve. Another case when this becomes apparent is, when the taper curve describes a spherical shape. The solidifed curve will become "stretched" and will look more like a parabolic curve. The "taper object" in the data tab of a curve does not show this behaviour. $\endgroup$
    – 100drips
    Nov 17, 2023 at 8:56

You must log in to answer this question.

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