3
$\begingroup$

I've been following a Youtube tutorial on procedural fence using Geometry Nodes

Everything seems fine except there is a problem with the thickness of curve profile. On straight lines which don't contain endpoints curve radius remains consistent, however coming to endpoints it weirdly widens.

Here is a screenshot of the problem in top view enter image description here

And here is the setup in nodes enter image description here

How can I make thickness consistent?

$\endgroup$
6
  • 1
    $\begingroup$ @DuarteFarrajotaRamos, but it's not possible to do in GN $\endgroup$
    – Crantisz
    Apr 4, 2022 at 11:26
  • $\begingroup$ in the case of this tutorial you could simply use a 'Split Edges' node before converting mesh edges to curves... as the corners are not visible that will keep the profile consistent $\endgroup$
    – alambre
    Apr 4, 2022 at 13:00
  • $\begingroup$ @alambre if I understood you correctly, I should add a 'Split Edges' node AFTER 'Mesh Line' but BEFORE 'Mesh to Curve', 'Reverse Curve' etc.? If so, than it doesn't work, nothing changes $\endgroup$
    – YRSHKHN
    Apr 5, 2022 at 9:13
  • $\begingroup$ didn't check all of the tutorial, but I meant the original Fence Line, convert it to mesh, split edges, then again to curve... so you have individual splines that are split at corners $\endgroup$
    – alambre
    Apr 5, 2022 at 12:45

1 Answer 1

1
$\begingroup$

As far as I know at the moment all bezier curve-to-mesh operations using Geometry Nodes assume a bezier curve is 3D, and thus suffer from the same limitations that regular 3D bezier curves suffer in Blender. That is bevel on tight corners will look narrower than on linear parts.

Only workaround I know at the moment is using a Resample Curve node before Curve to Mesh with a very high frequency. Either set it to Length with a low value, or Count with a high value.

Obvious downsides are

  • Unnecessarily high amount of redundant geometry added
  • Rounded corners on tight angles rather than sharp angles.
  • It actually just "hides" the issue under overlapping geometry

enter image description here

Beware that this workaround generates a lot of extra geometry and will invariably be heavy and resource intensive, which may lead to performance issues.

Another possibility for curves with straight segments only is to break the curve at each corner into separate splines before bevelling with Curve to Mesh. The downsides being the gaps that will appear at the seams and if the corners don't meet at 90° you wont get correct continuity.

$\endgroup$
2
  • $\begingroup$ Yeah, that works exactly how I wanted, but really stresses my laptop :( I will wait for other possible solutions, but thanks for this variant! $\endgroup$
    – YRSHKHN
    Apr 4, 2022 at 11:56
  • 1
    $\begingroup$ @YRSHKHN Instead of resampling the curve in Geometry Nodes you could also increase the Resolution Preview settings in the curve object itself. By default this value is 12 for a Bézier Curve, maybe try 32 or 64. This will not completely get rid of the inconsistent thickness, but improve it. It's just a matter of which of the methods performs better on your computer while getting sufficient results. $\endgroup$ Apr 4, 2022 at 14:25

You must log in to answer this question.

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