Page MenuHome

Intersect mode in Boolean node not work with Instances
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GT 650M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 422.02

Blender Version
Broken: version: 2.93.0 Beta, branch: master, commit date: 2021-04-27 19:40, hash: rBa4191c2d1847
Worked: (newest version of Blender that worked as expected)

Short description of error
In Boolean node mode "Intersect" not work with Point Instances. Mode - "Difference" and "Union" works ok.

Steps:

  1. Add Geometry mode modifier.
  2. Add Point Distribute
  3. Add Point Instance
  4. Pick mesh for point instances
  5. Use instances for random cut base geometry
  6. Everything disappears

Here's the expected result, made by combining the separate cube meshes before running the operation

Event Timeline

Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Fri, Apr 30, 6:34 PM
Germano Cavalcante (mano-wii) changed the subtype of this task from "Report" to "Bug".

Thanks for the report. I can confirm.
If "Difference" and "Union" work, the intersect should work too.


I'm not sure if this is a problem in Geometry Nodes or in the Boolean algorithm.

Note that this works when I combine the input meshes into a single mesh by realizing the instances with an attribute node.

At some point in the boolean process an IMesh with no faces is returned. I've narrowed that down to extract_from_in_output_volume_diffs. I haven't figured out the reasoning further than that though.

In this case the modifier doesn't work either. @Howard Trickey (howardt), maybe you'd like to take a look at this one?

Howard Trickey (howardt) closed this task as Resolved.Sun, May 9, 3:23 PM
Howard Trickey (howardt) claimed this task.

I think this is working as intended. When Boolean is asked to intersect a number of different meshes, its output should be the volume that is in all of the meshes. Here, each cube that is made on a point instance is a separate mesh, and there is no volume that is common to all the instances of the cubes (they are disjoint in space), so the output is empty. As Hans said, the way to get the effect you want is to combine the instances into a single mesh before doing the Boolean intersect. Either his way, or put a Boolean Union node between the point instance and the Boolean interesect node.

Ah, of course, it seems obvious now. Thanks Howard!