2
$\begingroup$

I'm trying to create a procedural plane with many small holes in it. I want to use geometry nodes for this for some downstream applications.

I have an input plane. I distribute points on the plane and instance small cylinders, whose dimensions are adjusted slightly using a noise texture. Then I realize instances and apply a mesh boolean to cut the holes. Should be pretty simple.

However, I'm getting this strange offset behavior where not all the holes are cut out properly. I've tried with self intersection and hole tolerant on. I've also tried giving the plane some thickness before the boolean, and subdividing the mesh to give some more geometry.

Hole Tolerant Off

Hole Tolerant On

With Thickness

Any ideas why this is happening? Any better strategies for doing this with geo nodes?

$\endgroup$
6
  • $\begingroup$ Can you share the file? blend-exchange.com $\endgroup$
    – taiyo
    Jul 25, 2023 at 21:03
  • $\begingroup$ Sorry about that, blend file uploaded $\endgroup$
    – Erik
    Jul 25, 2023 at 21:16
  • 2
    $\begingroup$ Even with the simplest setup (plugging the Cylinder directly into the Mesh Boolean) the problem persists. If you increase the Depth in the Cylinder node gradually, you can see how the problematic cuts move away. Seems to be a precision problem of the Mesh Boolean as you need more depth when scaling up the plane. $\endgroup$
    – taiyo
    Jul 25, 2023 at 22:05
  • 1
    $\begingroup$ @HarryMcKenzie no worries. $\endgroup$
    – taiyo
    Jul 26, 2023 at 7:37
  • 1
    $\begingroup$ @HarryMcKenzie I think with the regular Boolean modifier there are always options to try to get a better result like the Solver settings Fast and Exact or the options like Self Intersection or Hole Tolerant. It's unfortunate that these things are not available in the Mesh Booelan node, maybe this would have helped here. Perhaps they will be added one day. $\endgroup$ Jul 26, 2023 at 9:20

1 Answer 1

2
$\begingroup$

This is a very strange issue looks more like a bug. To fix it just increase the Cylinder node's Depth from 0.5 to 1 or any higher value.

I noticed @taiyo has already pointed this issue out:

Even with the simplest setup (plugging the Cylinder directly into the Mesh Boolean) the problem persists. If you increase the Depth in the Cylinder node gradually, you can see how the problematic cuts move away. Seems to be a precision problem of the Mesh Boolean as you need more depth when scaling up the plane

enter image description here

$\endgroup$
2
  • 1
    $\begingroup$ I noticed that Blender recalculates the plane's z-Dimension (non-zero and without changing the z-Scale) when changing the cylinder depth. If the depth value jumps across a certain big enough value, the z-Dimension snaps to zero. At that moment, the erroneous cuts should be gone. Changing the z-Dimension directly does not help, as the plane's scale is also adjusted, this just scales the weird cuts. Thus the advice to raise the depth still holds, but it can be added "until the z-Dimension value snaps to zero" (if the plane is rotated somehow, the snapping still occures with a non-zero value). $\endgroup$
    – taiyo
    Jul 26, 2023 at 11:04
  • 1
    $\begingroup$ Thanks all! Strange behavior but appreciate the insight. $\endgroup$
    – Erik
    Jul 26, 2023 at 18:36

You must log in to answer this question.

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