Geometry nodes mesh boolean fails on certain values #114480

Open
opened 2023-11-04 11:26:21 +01:00 by Robert S · 7 comments

System Information
Operating system: Windows-10-10.0.19045-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3090/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 537.34

Blender Version
Broken: version: 3.6.5, branch: blender-v3.6-release, commit date: 2023-10-16 14:30, hash: cf1e1ed46b7e
Worked: (newest version of Blender that worked as expected)

Short description of error
Two shapes originally look like this:
image

But the mesh boolean result is this:
image

The shapes are generated with the nodes available, and are nothing special. I don't see why the mesh boolean node has to fail on these rather simple shapes. And if you want to smoothly animate something like the "arc" value then you will get flickering (for example with arc values 90, 193, 295).

Hole tolerant option is also not an acceptable workaround because you get very jagged edges along the bottom, and if you have to do a second round of booleans to get rid of those, there's a risk that the same issues re-appear anyway.

Exact steps for others to reproduce the error

  • Open BooleanTest_simplified.blend
    or
  • Open the attached example
  • Enable/disable the DEBUG boolean on the geo node modifier to see the original shapes
  • Change rings/arc input values to see when the boolean fails (especially arc at 90, 193, 295)
**System Information** Operating system: Windows-10-10.0.19045-SP0 64 Bits Graphics card: NVIDIA GeForce RTX 3090/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 537.34 **Blender Version** Broken: version: 3.6.5, branch: blender-v3.6-release, commit date: 2023-10-16 14:30, hash: `cf1e1ed46b7e` Worked: (newest version of Blender that worked as expected) **Short description of error** Two shapes originally look like this: ![image](/attachments/b78b670e-eb85-4a14-adab-ff18f562d8b0) But the mesh boolean result is this: ![image](/attachments/517d6a9c-b308-4868-b416-21cd2f781171) The shapes are generated with the nodes available, and are nothing special. I don't see why the mesh boolean node has to fail on these rather simple shapes. And if you want to smoothly animate something like the "arc" value then you will get flickering (for example with arc values 90, 193, 295). Hole tolerant option is also not an acceptable workaround because you get very jagged edges along the bottom, and if you have to do a second round of booleans to get rid of those, there's a risk that the same issues re-appear anyway. **Exact steps for others to reproduce the error** - Open [BooleanTest_simplified.blend](/attachments/895e5488-327e-43d0-a8ab-80e135f32c91) or - Open the attached example - Enable/disable the DEBUG boolean on the geo node modifier to see the original shapes - Change rings/arc input values to see when the boolean fails (especially arc at 90, 193, 295)
Robert S added the
Priority
Normal
Type
Report
Status
Needs Triage
labels 2023-11-04 11:26:22 +01:00

Thanks for the report. Could you simplify the .blend file to narrow down the problem?

It is very complex. The only Boolean node that I identified to be intersecting the mesh itself. I'm not sure if it's intentional.

Normally .blend files can be simplified by removing most objects, joining then, and disabling settings, until the problem reveals itself more clearly.

Thanks for the report. Could you simplify the .blend file to narrow down the problem? It is very complex. The only Boolean node that I identified to be intersecting the mesh itself. I'm not sure if it's intentional. Normally .blend files can be simplified by removing most objects, joining then, and disabling settings, until the problem reveals itself more clearly.
Germano Cavalcante added
Status
Needs Information from User
and removed
Status
Needs Triage
labels 2023-11-06 15:34:05 +01:00
Author

I'm puzzled by how the file compresses very small, but expands quite large, but it is a minimal example...

Can an intersecting pie shape with a sphere be made simpler? If so, I'd like to know.

Regardless, I've removed the "debug" nodes and the corner case nodes now and updated the zip-file.

I'm also attaching a video which shows the issues.

I'm puzzled by how the file compresses very small, but expands quite large, but it _is_ a minimal example... Can an intersecting pie shape with a sphere be made simpler? If so, I'd like to know. Regardless, I've removed the "debug" nodes and the corner case nodes now and updated the zip-file. I'm also attaching a video which shows the issues.

Can an intersecting pie shape with a sphere be made simpler? If so, I'd like to know.

Attached an expected simplified .blend (no nodes, no generating objects, just the boolean).

Even so, the issue has not yet been truly identified as it could be a duplicate of any of these other issues:
#103315: Boolean modifier produces unexpected result
#102124: Boolean modifier assigns wrong material
#98183: Boolean modifier artifacts
#93568: Boolean modifier: Self Intersection fails when mesh object is same for both operand types
#88012: boolean node in geometry nodes seems to work wrong
#87866: Boolean modifier - Intersect option - not working / artifacts while doing 3D Sectioning

Could it be that it is coplanar edges causing the problem? Could it be that the mesh is not a manifold?
Anyway, I'm confirming it for the developers to take a look.

@howardt, maybe you'd be interested in this one?

> Can an intersecting pie shape with a sphere be made simpler? If so, I'd like to know. Attached an expected simplified .blend (no nodes, no generating objects, just the boolean). Even so, the issue has not yet been truly identified as it could be a duplicate of any of these other issues: #103315: Boolean modifier produces unexpected result #102124: Boolean modifier assigns wrong material #98183: Boolean modifier artifacts #93568: Boolean modifier: Self Intersection fails when mesh object is same for both operand types #88012: boolean node in geometry nodes seems to work wrong #87866: Boolean modifier - Intersect option - not working / artifacts while doing 3D Sectioning Could it be that it is coplanar edges causing the problem? Could it be that the mesh is not a manifold? Anyway, I'm confirming it for the developers to take a look. @howardt, maybe you'd be interested in this one?
Germano Cavalcante added
Module
Modeling
Status
Confirmed
and removed
Status
Needs Information from User
labels 2023-11-07 21:32:56 +01:00

I have a similar problem here. I think it is the solver, the problem could be solved by adding the one or two other boolean solvers that the original Blender modifiers had.
I remember that the brl-cad solver was incorporated in the Blender3d source code at some time in story. Blender foundation should consider other options such as incorporating other solvers such as the one used by openscad.

The images show a bug in the union boolean of geonodes. Union between a circle of cubes and a cylinder used for creating a procedural gear. This bug is not hard to reproduce, just play a bit with the mesh boolean modifier (use nodes to change angle and position of objects before the mesh boolean operation) and it will appear. Version: Blender3d 4.0

image
image

I have a similar problem here. I think it is the solver, the problem could be solved by adding the one or two other boolean solvers that the original Blender modifiers had. I remember that the brl-cad solver was incorporated in the Blender3d source code at some time in story. Blender foundation should consider other options such as incorporating other solvers such as the one used by openscad. The images show a bug in the union boolean of geonodes. Union between a circle of cubes and a cylinder used for creating a procedural gear. This bug is not hard to reproduce, just play a bit with the mesh boolean modifier (use nodes to change angle and position of objects before the mesh boolean operation) and it will appear. Version: Blender3d 4.0 ![image](/attachments/404a3825-40b0-4c8c-b8ad-f44e1dda4fe7) ![image](/attachments/a25d8a9a-7499-4f44-a412-bfbca28d8f18)

@mano-wii @RobertS enabling the Face Orientation option can help debugging it. Normals are NOT flipped when you extrude a grid plane(because the extruded plane stops existing, so it needs to be duplicated and flipped as it would be in edit mode). Also Blender allows to create cylinders with negative radius and negative depth, which I'm sure will have flipped normals. This may lead to a lot of problems, and we need urgently a 'recalculate normals outside' node... Don't forget the mesh boolean is still a criminal, even with normals corrected.

image

image

image

@mano-wii @RobertS enabling the **Face Orientation** option can help debugging it. Normals are NOT flipped when you extrude a grid plane(because the extruded plane stops existing, so it needs to be duplicated and **flipped** as it would be in edit mode). Also Blender allows to create cylinders with negative radius and negative depth, which I'm sure will have flipped normals. This may lead to a lot of problems, and we need urgently a 'recalculate normals outside' node... Don't forget the mesh boolean is still a criminal, even with normals corrected. ![image](/attachments/542a7248-c0a7-4e73-89dd-a77e96c76587) ![image](/attachments/62ccee48-ed78-4a0d-b273-c296a80bd8e0) ![image](/attachments/9e338fc1-e00a-44f8-9ade-d6036ef951e8)

image

I've been playing a bit with it and it seems the problem is caused by normals.
this problem can be solved by just rotating meshes(or Flip Faces node) but can't be solved for complex meshes. Some users over the internet have tried (unsuccessfully) creating an artificial recalculate normals group node...

https://blender.stackexchange.com/questions/276473/recalculate-normals-of-an-object-using-geometry-nodes

![image](/attachments/0aabbdd3-bd65-4dc1-884d-131d2601db7f) I've been playing a bit with it and it seems the problem is caused by normals. this problem can be solved by just rotating meshes(or Flip Faces node) but can't be solved for complex meshes. Some users over the internet have tried (unsuccessfully) creating an artificial recalculate normals group node... [https://blender.stackexchange.com/questions/276473/recalculate-normals-of-an-object-using-geometry-nodes](https://blender.stackexchange.com/questions/276473/recalculate-normals-of-an-object-using-geometry-nodes)
122 KiB

image

image

XD

I can't believe it...
I wonder if the mesh boolean modifier will behave correctly with other objects... what kind of problems can happen...
this view option should be enabled automatically when we create a new geometry node :P

![image](/attachments/207ef017-185c-4cd3-af94-00873ae4b9d7) ![image](/attachments/c9df91bb-c2ac-47f3-9fdf-3aec7c97e0b9) XD I can't believe it... I wonder if the mesh boolean modifier will behave correctly with other objects... what kind of problems can happen... this view option should be enabled automatically when we create a new geometry node :P
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#114480
No description provided.