e3f030cce64d1b857103d31571ab8b5fd6edb92b
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 <trickey@google.com> Co-authored-by: Hans Goudey <hans@blender.org> Pull Request: https://projects.blender.org/blender/blender/pulls/119294
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
11%
C
6.3%
GLSL
2.2%
CMake
1.3%
Other
1.1%
