Page MenuHome

boolean node in geometry nodes seems to work wrong
Confirmed, NormalPublic


System Information
Operating system: macOS-11.2.3-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 5500M OpenGL Engine ATI Technologies Inc. 4.1 ATI-4.2.15

Blender Version
Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-04-20 20:43, hash: rBc5cabb6eb712
Worked: (newest version of Blender that worked as expected)

Short description of error
[Please fill out a short description of the error here]

Exact steps for others to reproduce the error
[Please describe the exact steps needed to reproduce the issue]
[Based on the default startup or an attached .blend file (as simple as possible)]

I have made this node tree in geometry nodes and i am getting this result, which - for me - looks like a bug.

Event Timeline

Falk David (filedescriptor) changed the task status from Needs Triage to Needs Information from User.Tue, May 4, 9:37 AM

@Christoph Duyster (LuckyChris) Could you add the test file to the report? Thank you.

of course i can. Here you are.

result looks now like this (i had to create a new one)

Falk David (filedescriptor) changed the task status from Needs Information from User to Needs Triage.Tue, May 4, 10:27 AM

Setting the fill type to triangles gives a more predictable result. So this might have to do with how n-gons are handled by the boolean operators.

Hans Goudey (HooglyBoogly) changed the task status from Needs Triage to Confirmed.Tue, May 4, 9:22 PM

No need for the point instance node to show the situation actually. All you need to do is boolean two N-Gon circles with different radii.

@Howard Trickey (howardt) Is this a bug? Or just a side effect of how the algorithm works?

Well, it is expected, from the way the algorithm works. (It tries to remove unneeded triangulation edges, but whether it is completely successful or not is a bit up to chance. All is made harder by the fact that two of those extra edges (the ones leading from the inner to the outer circles) are necessary because Blender doesn't allow holes in faces. So the code is trying to remove as many as it can without creating that problem. Clearly there are more that could have been removed here. I can look at the code again and see if can be improved for cases like this.