Boolean Operations on two Objects #76803

Closed
opened 2020-05-16 14:27:31 +02:00 by Theodor Hennings · 20 comments

System Information
Operating system: Windows-8.1-6.3.9600 64 Bits
Graphics card: GeForce GTX 980/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.36

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: f6cb5f5449
Worked: (optional)

Short description of error
If you have two objects and use the boolean modifier on both objects, the operation breaks

Exact steps for others to reproduce the error

  • Create two meshes

  • Add the boolean modifier to both objects created

  • In the boolean menu -> select the object (and do the same thing with the boolean modifier on the other object)

  • Move one of the objects (sometimes it only happens with a specific one) -> (visual) artifacts apear (modeling breaks)

  • I know that this might not be considered as a bug, but it would be really sweat if you could, for example, get an object that is made of two objects intersecting.

Blender_Bool_Bug.JPG

**System Information** Operating system: Windows-8.1-6.3.9600 64 Bits Graphics card: GeForce GTX 980/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.36 **Blender Version** Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: `f6cb5f5449` Worked: (optional) **Short description of error** If you have two objects and use the boolean modifier on both objects, the operation breaks **Exact steps for others to reproduce the error** - Create two meshes - Add the boolean modifier to both objects created - In the boolean menu -> select the object (and do the same thing with the boolean modifier on the other object) - Move one of the objects (sometimes it only happens with a specific one) -> (visual) artifacts apear (modeling breaks) * I know that this might not be considered as a bug, but it would be really sweat if you could, for example, get an object that is made of two objects intersecting. ![Blender_Bool_Bug.JPG](https://archive.blender.org/developer/F8538609/Blender_Bool_Bug.JPG)

Added subscriber: @Skusch

Added subscriber: @Skusch

Added subscriber: @Jewls

Added subscriber: @Jewls

Have you tried with the latest blender build? https://builder.blender.org/download/ youre using 2.80 wich is not up-to-date.
Also can you provide a simple .blend file where to proplem occurs? cant reproduce it.

Have you tried with the latest blender build? https://builder.blender.org/download/ youre using 2.80 wich is not up-to-date. Also can you provide a simple .blend file where to proplem occurs? cant reproduce it.

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'
Member

Added subscriber: @Alaska

Added subscriber: @Alaska
Member

I know that this might not be considered as a bug, but it would be really sweat if you could, for example, get an object that is made of two objects intersecting.

What I believe you're describing is the kind of thing that occurs when you take on cube and give it a boolean modifier and select the other cube and change the operation mode of the boolean modifier to "Intersect". This will turn the cube into a mesh that's only where the two cubes intersect.

As for the issue you're describing with the glitching, that will need to be reviewed by a developer. I can see this report going two ways:

  1. A patch is implemented so that mesh "A" can't have mesh "B" as it's boolean if mesh "B" has mesh "A" as it's boolean.
  2. This is marked as a known issue.
> I know that this might not be considered as a bug, but it would be really sweat if you could, for example, get an object that is made of two objects intersecting. What I believe you're describing is the kind of thing that occurs when you take on cube and give it a boolean modifier and select the other cube and change the operation mode of the boolean modifier to "Intersect". This will turn the cube into a mesh that's only where the two cubes intersect. As for the issue you're describing with the glitching, that will need to be reviewed by a developer. I can see this report going two ways: 1. A patch is implemented so that mesh "A" can't have mesh "B" as it's boolean if mesh "B" has mesh "A" as it's boolean. 2. This is marked as a known issue.

Thank you both for the quick response!

  1. @Jewls :
    Im currently using blender via steam which I don't think updates smaller builds and currently can't test the newer ones.

  2. @Alaska :
    Yes pretty much what you said is what I meant. This is however not just a problem with intersect but also difference (and maybe even union).

With my limit knowledge on the topic, it's probably something that would take a large bit of development effort. I wasen't aware that this is already a known issue (if I understand you correctly). Something like you mentioned (1.) would be really great though!

Cheers & Thanks!

If you need further information and a blend file to reproduce it I can obviously upload my 2.8 file.

Thank you both for the quick response! 1. @Jewls : Im currently using blender via steam which I don't think updates smaller builds and currently can't test the newer ones. 2. @Alaska : Yes pretty much what you said is what I meant. This is however not just a problem with intersect but also difference (and maybe even union). With my limit knowledge on the topic, it's probably something that would take a large bit of development effort. I wasen't aware that this is already a known issue (if I understand you correctly). Something like you mentioned (1.) would be really great though! Cheers & Thanks! If you need further information and a blend file to reproduce it I can obviously upload my 2.8 file.

Changed status from 'Needs User Info' to: 'Confirmed'

Changed status from 'Needs User Info' to: 'Confirmed'

okay after messing a bit with the booleans im able to reproduce it.
#6803.png
Setting this to confirmed.

Like @Alaska said this needs developer attention

@howardt or @HooglyBoogly your thouhts on this?

okay after messing a bit with the booleans im able to reproduce it. ![#6803.png](https://archive.blender.org/developer/F8539964/T6803.png) Setting this to confirmed. Like @Alaska said this needs developer attention @howardt or @HooglyBoogly your thouhts on this?

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly

Added subscriber: @howardt

Added subscriber: @howardt
Member

I agree it should be fixed, but seems low priority since why would anyone realistically want to do this in the first place?

I agree it should be fixed, but seems low priority since why would anyone realistically want to do this in the first place?

never seen a usecase under such condissions

never seen a usecase under such condissions
Member

Removed subscriber: @Alaska

Removed subscriber: @Alaska
Member

Changed status from 'Confirmed' to: 'Archived'

Changed status from 'Confirmed' to: 'Archived'
Hans Goudey self-assigned this 2020-05-18 20:44:50 +02:00
Member

but it would be really sweat if you could, for example, get an object that is made of two objects intersecting

I'm not exactly sure what you mean by this, why not use one boolean modifier with the Intersect operation?
image.png

Either way though, this situation is a dependency cycle, where each object depends on the other's geometry data and location:

Dependency cycle detected:
  OBCube/Geometry Component/GEOMETRY_EVAL() depends on
  OBCube.001/Geometry Component/GEOMETRY_EVAL() via 'Boolean Modifier'
  OBCube/Geometry Component/GEOMETRY_EVAL() via 'Boolean Modifier'
Detected 1 dependency cycles

We can't support dependency cycles like this, but there is a patch to display them in the UI when they are created, D4730. It needs some work before it can make in into master.

> but it would be really sweat if you could, for example, get an object that is made of two objects intersecting I'm not exactly sure what you mean by this, why not use one boolean modifier with the `Intersect` operation? ![image.png](https://archive.blender.org/developer/F8541721/image.png) Either way though, this situation is a dependency cycle, where each object depends on the other's geometry data and location: ``` Dependency cycle detected: OBCube/Geometry Component/GEOMETRY_EVAL() depends on OBCube.001/Geometry Component/GEOMETRY_EVAL() via 'Boolean Modifier' OBCube/Geometry Component/GEOMETRY_EVAL() via 'Boolean Modifier' Detected 1 dependency cycles ``` We can't support dependency cycles like this, but there is a patch to display them in the UI when they are created, [D4730](https://archive.blender.org/developer/D4730). It needs some work before it can make in into master.
Member

I wonder if the bug reporter is simply try to get the intersection of two objects, which is exactly what you get when you only have one object intersected by another (no need for doing it in the reverse direction. It can look like you are not getting the intersection because the intersection object remains there, unaffected, in the viewport. The intended workflow is to either delete the intersection object after making the intersection (if using the boolean tool), or to hide the intersecting object (hit the eyeball beside it in the outliner to make it non-visible).

I wonder if the bug reporter is simply try to get the intersection of two objects, which is exactly what you get when you only have one object intersected by another (no need for doing it in the reverse direction. It can look like you are not getting the intersection because the intersection object remains there, unaffected, in the viewport. The intended workflow is to either delete the intersection object after making the intersection (if using the boolean tool), or to hide the intersecting object (hit the eyeball beside it in the outliner to make it non-visible).

Um well actually what I wanted to do might not be really what blender is primarely intended for but something I wanted to test. It would take a long time to elaborate what specifically I intended to do. But I was trying to use scripts to make a lot of objects and having multiple overlapping meshes make one larger one with boolean operations. However it would be a larger undertaking to keep track of where objects are and which intersect making a manual approach like you proposed Howardt unfeasable. And since I would have intended to let objects move around, just applying booleans wouldnt work either. Thanks for all the info on the topic though!

Um well actually what I wanted to do might not be really what blender is primarely intended for but something I wanted to test. It would take a long time to elaborate what specifically I intended to do. But I was trying to use scripts to make a lot of objects and having multiple overlapping meshes make one larger one with boolean operations. However it would be a larger undertaking to keep track of where objects are and which intersect making a manual approach like you proposed Howardt unfeasable. And since I would have intended to let objects move around, just applying booleans wouldnt work either. Thanks for all the info on the topic though!
Member

I understand the desire for a Boolean that intersects many meshes at once, and may end up making such a thing in my rewrite of Boolean that I am currently engaged in. Though it won't be the first priority to get working.

I understand the desire for a Boolean that intersects many meshes at once, and may end up making such a thing in my rewrite of Boolean that I am currently engaged in. Though it won't be the first priority to get working.

That would be great :)

That would be great :)
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
5 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#76803
No description provided.