2
$\begingroup$

I have a mesh with multiple islands that I have converted to curves. I am now trying to apply a profile to these certain "curve islands" but it seems like there are edges with orientations that are flipped. Is there a way to selectively reverse these edges so that the profile has correct normals?

Currently reversing the curve at certain indexes seems to work but it isn't consistent and flipping faces doesn't seem to do anything.

Islands

NodeTree

Blend File

$\endgroup$
4
  • $\begingroup$ Does this answer your question? blender.stackexchange.com/questions/271761 $\endgroup$
    – quellenform
    Jan 22, 2023 at 23:17
  • $\begingroup$ This looks promising. Thanks for pointing me in the right direction! $\endgroup$ Jan 23, 2023 at 0:11
  • $\begingroup$ You're welcome! Let me know if the solution works for you. $\endgroup$
    – quellenform
    Jan 23, 2023 at 0:37
  • $\begingroup$ It seems to correct the tilt when I input each face individually. The problem is that each island is made up of multiple 2 x 2 meter faces and the problem still occurs when I try to use these larger faces as an input $\endgroup$ Jan 23, 2023 at 14:38

1 Answer 1

3
$\begingroup$

This answer is based on the solution shown here:
How to correct curve tilt, tangents and normals of a curve?

However, your question is only about recognizing the orientation of the tangents in order to deduce which curves need to be reversed, which is why I am only applying part of this solution here.

The principle is simple:

  1. You first determine the direction from the center of each spline to each point of the spline.
  2. If you then generate the cross product of the tangent of the curve points and this direction, and generate the dot product with $(0,0,1)$ or $(0,0,-1)$, this resulting value is either positive or negative per point. However, you need to capture this value with Capture Attribute in the point domain!
  3. If you then plug this value directly into the input Selection of the node Reverse Curve, it will be interpolated from the Point domain to the Spline domain, and used as a boolean value. This way the alignment of your curves is consistent throughout.

enter image description here


(Blender 3.2+)

$\endgroup$
2
  • 1
    $\begingroup$ I apologize. I didn't check the question for a few days but this answer works for me now. Thanks so much for help! $\endgroup$ Jan 30, 2023 at 0:21
  • 1
    $\begingroup$ No problem, you're welcome, glad the answer could help you! $\endgroup$
    – quellenform
    Jan 30, 2023 at 0:59

You must log in to answer this question.

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