3

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?

Duarte Farrajota Ramos
  • 59,425
  • 39
  • 130
  • 187
YRSHKHN
  • 45
  • 7
  • https://blender.stackexchange.com/questions/66353/how-to-make-beveled-90-degree-corners-on-a-curve-better https://blender.stackexchange.com/questions/56079/how-can-i-make-a-perfect-sweep-with-bevel-object-in-bezier-curve3d-pipe – Duarte Farrajota Ramos Apr 04 '22 at 11:01
  • 1
    @DuarteFarrajotaRamos, but it's not possible to do in GN – Crantisz Apr 04 '22 at 11:26
  • 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 – alambre Apr 04 '22 at 13:00
  • @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 – YRSHKHN Apr 05 '22 at 09:13
  • 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 – alambre Apr 05 '22 at 12:45
  • Hi there, I am involved in addressing this issue in Blender. This is still in development but closing in on a solution and that'd be great if you could provide some feedback here: https://devtalk.blender.org/t/curve-to-mesh-node-even-thickness-feedback-thread/27271 - Thanks in advance! – Bruno Jan 14 '23 at 09:50

1 Answers1

1

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.

Duarte Farrajota Ramos
  • 59,425
  • 39
  • 130
  • 187
  • Yeah, that works exactly how I wanted, but really stresses my laptop :( I will wait for other possible solutions, but thanks for this variant! – YRSHKHN Apr 04 '22 at 11:56
  • 1
    @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. – Gordon Brinkmann Apr 04 '22 at 14:25