Major Boolean Modifier Upgrade : Use as boolean object a whole collection

Did your make full make a completely new CMakeCache.txt? I worry that it may carry old values. You need to have WITH_GMP to be set in order to get the Exact mode to actually use the new code.

That’s it.

//Use the gmp library for more accurate booleans
WITH_GMP:BOOL=OFF

Hi Howard.
Writing here the first time. Thank you for your great job. New Boolean is much much more reliable!
The idea of having a whole collection as one of the input is awesome! I would vote for implementing it!

I also would like to suggest one little improvement:
what if we could have fourth operation, which combines Difference and Intersection?

I saw many hard modelling tutorials and time-lapses and would believe such a feature could save some time and one modifier less in a stack.

Hi DamianWinnichencko,

I’m afraid I don’t know what you mean by combining Difference and Intersection. Can you perhaps give an example (with pictures) of what you want to have happen?

I think he means this:

It’s usually called Slice in Booltool and other addons, it works by copying object A and setting first Boolean Modifier to Difference and second to Intersect so you end up with 2 parts separated by live boolean. It’s very good for creating paneling with combination of bevel modifier on top:

Official implementation would remove need to make copy of first object.

booltool_slice.blend [181KB]

2 Likes

I see. This is like what the Intersect (Knife) does in Edit mode, except that it wouldn’t remove interior faces the way a Boolean might. In typical cases, though, it is the same. I have been thinking of adding the Knife modes to the modifier. Or making a Knife modifier.

3 Likes

Just now tested materials. Looks like it still works using collections :grin: .

1 Like

And here we go.

https://developer.blender.org/D8816

6 Likes

Thank you for making the clear explanation!
I didn’t see updates in this topic for a couple of days.

Adding new modes to Boolean modifier would be aweome and time saving!
I tried adding Bisect modifier myself, but I’m not a programmer, so, my commit wasn’t accepted for the code quality reasons. Also, core developers suggested that Bisect should be probably a part of Boolean.

Take a look:
https://developer.blender.org/D6128

Very nice, thanks for this.

I want to mention, the wire/bounds display thing is basically the biggest reason I use Bool Tool, just because it automatically sets the object to display as bounds. Might sound kind of trivial but I don’t really see how one could work well with non-destructive booleans if they can’t even see the result, and it’s such a pain to manually change the viewport display properties for the boolean object every time.
So I think this is an important feature to actually have in the modifier, and worth solving the potential problems that come with temporarily overriding object display properties.

Regarding the issue Howard brought up of potential user confusion:
Would it be possible to gray-out the Display As property if it’s being overridden? Are there dynamic tooltips in Blender that could then communicate that “this property is being overridden by a modifier on Object X” or something?

1 Like

As far as I know, there are not other examples in Blender of having one UI element overridden by a different UI element in a different part of Blender, is there? So this would be a new concept.

@Howard_Trickey

I actually started to do this from the beginning, LOL. Should we just get rid of the display option?

It is kind of orthogonal to the collection thing, so at the least it would probably be better to remove it from the patch for collections, so that we can decide to back out of either of them independently should unexpected problems show up. It will make it easier to accept the patch right away if you removed it and then later made a separate patch for this. I am trying to chat with other devs now on their opinion about the display thing.

1 Like

My opinion: when an object is set to be a cutter always make it show up as bounding box and render-icon off, by design (as in BoolTool). Since in most cases it will only be needed as support geometry, not-to-be-seen in the scene.

1 Like

Two votes for display setting being a operator. You have to select the operator each time a new object added ,but this doesn’t override the settings and beats doing a object at a time. Right now union does bound box and the other two does wire.

boolean_display_icon

3 Likes

Thanks for your work on this @AFWS. I have now committed this change to master on your behalf.

4 Likes

Just installed the freshest 2.91 and tried boolean - oh, for me it looks and works amazing!
@AFWS & @Howard_Trickey Thank you very much for your work guys! It’s such a pleasure to work with blender! :slight_smile:

I have a question.

Is it possible in future patches to add snapping to the original shape (like it was before boolean) - for fast adjustment of position of the cutters?

When I have boolean modifier on the surface I can’t use snap to this surface on the both - cutter object or even his parent. Even if I turned off visibility of this modifier. I have to delete boolean modifier completely to adjust the position of any cutters and orient it to normal of the main object with snap to face. (oh, I hope you understand what I mean :slight_smile:)

1 Like

Hi I have feature request.: Do you think is good idea? ----to add to boolean modifier collection check box - remove all bool object after applay.
and maybe in default change display of boolean objects to bounds? Without that, result is looking ugly with those overlays.

People what do you think?

Thanks for Great work Howard.

There’s been lots of discussion about that already in this thread and in the patch here: https://developer.blender.org/D8816

Conclusion is that modifiers should not ever affect data on other objects, but an operator to do some of that manually might work.