Applying Modifiers

Multiple operators and tools in Bool Tool are applying modifiers on objects (most notably Auto Boolean operators), and all of those are following the same behavior defined in add-on preferences. There are drastic differences between existing options, they dictate which modifiers are applied and in what order. This can have a significant difference on the final result, and the user might need to switch between them depending on the task.

Apply Order

The main behavior is defined by the “Apply Modifiers” add-on preference (found in the “Shared” category), which has three options, but other preferences or tool settings can affect the behavior as well.

(1) Apply All [default]

Operators will apply all modifiers present (and shape keys) to the object alongside Boolean modifiers, essentially “flattening” or “baking down” the mesh. This behavior is effectively the same as manually converting to mesh or using the “Apply Visual Geometry to Mesh” operator.

(3) Apply Booleans

This option will force operators to only apply Boolean modifiers, and nothing more. This option can have the most unexpected results if the applied Boolean modifiers are not first in the stack. Similar to option (2), combining this option with the “Pin Boolean Modifiers” option is most recommended.

The behavior of this option is different depending on which operator or tool is being used.

  • Operators and tools that create new modifiers (Auto Boolean, Carver) will only apply the modifiers they created in that instance. If the canvas object(s) already have unapplied Boolean modifiers, they won’t be touched.

  • Operators that apply all existing cutters on canvases will apply all Boolean modifiers present, but nothing else.

  • Operators that apply selected cutter(s) to all canvases that use them will only apply modifiers that specifically reference them.

  • Operators that apply the selected cutter to the selected canvas will only apply one Boolean modifier.

Ways of Applying Modifiers

Modifiers can be applied in multiple ways with Blender’s API. The add-on differentiates between two ways, one of which is experimental and disabled by default.

By default, modifiers are applied with built-in Blender operators (bpy.ops). Same ones that are exposed to users in various menus. Operators for applying individual modifiers, or converting to mesh (which essentially applies all of them), are being used.

The second method, which can be enabled from add-on preferences (“Add-on” category, called “Faster Destructive Booleans”), uses a lower-level API to replicate the effect of the aforementioned operators without the performance overhead that comes with them. In essence, this method constructs a new mesh from the visual result of the evaluated canvas object and replaces the old mesh with it. On average this results in 30% to 50% faster destructive operators.

However, the experimental method currently has some downsides. Most notably, some of the mesh attributes might not be correctly transferred to the new mesh, and some of the Boolean solver options might be ignored. If the user does not care about those issues and they’re following Boolean modeling workflows that do not require attributes or niche solver options, it is recommended to enable this option for performance gains.