1
$\begingroup$

Here's what I did manually in Blender:

  • Created two filled mesh circles (circle1 and circle2) by pressing F in Edit Mode

  • Applied a Boolean modifier to circle1 in Union mode, using circle2 as the target, and then applied the modifier

  • Deleted circle2

  • Now I'm left with circle1 joined with circle2

  • Entered Edit Mode, switched to vertex selection, and deleted the vertices in the overlapping area

  • Selected the remaining vertices and pressed F

  • This gave me one single face with 56 edges and vertices.

However, when I try to do the same using only Geometry Nodes (see screenshot), I end up with 129 edges, 111 vertices, and 30 faces. But I don’t want 30 faces - I need only one face, just like the manual method above.

I'm looking for an effect similar to what Convex Hull gives (it creates a single face), but the problem with Convex Hull is that it wraps over gaps - which I don't want.

How can I achieve a clean single-face union in Geometry Nodes without filling the gaps like Convex Hull does?

The link to the blender file

enter image description here

$\endgroup$
6
  • $\begingroup$ Did you try with the new Blender 4.5 and the new Manifold option for the boolean node ? $\endgroup$ Commented Jul 10 at 11:08
  • 1
    $\begingroup$ You're supposed to boolean "circle 1 with circle 2", not "circle 1+2 with circle 1+2". $\endgroup$ Commented Jul 10 at 13:10
  • $\begingroup$ @Lutzi as far as I understood "manifold" action is when you press Ctrl+J, but I need a geometry node that can do that, I found this in the documentation docs.blender.org/manual/en/latest/modeling/geometry_nodes/mesh/… but when I tried it I ended up with a very weird result - it left just one circle. imgur.com/a/FIOvqLo Am I doing smth wrong? $\endgroup$ Commented Jul 11 at 6:31
  • $\begingroup$ For efficient coplanar circle joining you can store selection of vertices of mesh circles calculated based on being inside the other circle (which is trivial, it's based on the distance to the other circle being less than its radius). If you store that as float, then the edge having interpolated 0.5 value is the edge that intersects that circle. Then you can use an intersection algorithm to find where to move the vertex that is inside the other circle. $\endgroup$ Commented Jul 11 at 13:15
  • $\begingroup$ Now remove remaining points inside circles, sort points by Gradient: radial positioned at the average of two circles centers (or average of two intersections), and convert those points to curve and then fill the curve. You don't even need to fill you can just spawn a new mesh circle with the number of points of the remaining points of the 2 circles (after deleting those inside) just remember to merge by distance before counting them or disregard the doubled points that were inside but were moved to intersections. $\endgroup$ Commented Jul 11 at 13:15

1 Answer 1

1
$\begingroup$

This solution may not be the prettiest, and needs the Blender 4.5, but it seems to work:

enter image description here

First Extrude/Solidify the circles and Boolean them by using the new Manifold method (will be released in 4.5) enter image description here

Then we delete the geo that is not in zero Z. Notice that there are extra Edges left inside: enter image description here

Because of the edges, we create curve from the Border Edges: enter image description here

Filling those edges gives us the one face we want: enter image description here

$\endgroup$
1
  • $\begingroup$ Thanks - this is exactly what I needed. The key was unioning with Mesh Boolean, stripping everything but Z = 0, then converting the outer edge loop to a curve and filling. Just picked up your CoffeeCup on Gumroad; enjoy the brew! @khellstr $\endgroup$ Commented Jul 13 at 11:53

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.