Details
SHA-1: e3f030cce64d1b857103d31571ab8b5fd6edb92b
* Geometry Nodes: Add float solver to mesh boolean node
This adds a "Solver" option to the geo boolean node, with the options
Exact and Float.
The current geo boolean node only uses the Exact solver.
This adds the ability to use the faster original floating point boolean solver.
The float solver has issues with coplanar and other coincident geometry,
but is generally much faster than the Exact solver, and users have asked
for this option (which is available in the Boolean Modifier and edit mode
boolean tool).
Like the modifier, the Float solver needs to convert the Mesh to BMesh,
do the operation, and then convert back to Mesh. It also has to do it
iteratively if more than two operands are supplied.
This is the first of a planned series of commits that will add a
new exact boolean solver, based on the Ember paper, as a solver option.
Ember will be much faster than the current exact solver, but may still not
be as fast as float, and also will not handle some non-volume-enclosing
inputs as well as Float, so it is likely that the Float solver will always remain.
We may eventually retire the old Exact Solver, however.
This commit also prepares for more sensible code in the future by
changing the internal enum names for the solvers to better reflect the
algorithms used: Fast -> Float, and Exact -> Mesh_Arr (which means
"Mesh Arrangments, the name of the paper upon which the current
exact solver is based).
Co-authored-by: Howard Trickey
Co-authored-by: Hans Goudey
Pull Request: https://projects.blender.org/blender/blender/pulls/119294
Details
SHA-1: e3f030cce64d1b857103d31571ab8b5fd6edb92b * Geometry Nodes: Add float solver to mesh boolean node This adds a "Solver" option to the geo boolean node, with the options Exact and Float. The current geo boolean node only uses the Exact solver. This adds the ability to use the faster original floating point boolean solver. The float solver has issues with coplanar and other coincident geometry, but is generally much faster than the Exact solver, and users have asked for this option (which is available in the Boolean Modifier and edit mode boolean tool). Like the modifier, the Float solver needs to convert the Mesh to BMesh, do the operation, and then convert back to Mesh. It also has to do it iteratively if more than two operands are supplied. This is the first of a planned series of commits that will add a new exact boolean solver, based on the Ember paper, as a solver option. Ember will be much faster than the current exact solver, but may still not be as fast as float, and also will not handle some non-volume-enclosing inputs as well as Float, so it is likely that the Float solver will always remain. We may eventually retire the old Exact Solver, however. This commit also prepares for more sensible code in the future by changing the internal enum names for the solvers to better reflect the algorithms used: Fast -> Float, and Exact -> Mesh_Arr (which means "Mesh Arrangments, the name of the paper upon which the current exact solver is based). Co-authored-by: Howard Trickey