diff options
author | Hans Goudey <h.goudey@me.com> | 2021-04-01 23:00:47 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-04-01 23:00:47 +0300 |
commit | e8573a59f66281f1d590e3c8b1888cfc7935b1cf (patch) | |
tree | abf33d2a634b744bd5105acd71ba684d8663283f /source/blender/blenkernel/intern/object_dupli.c | |
parent | 76cdcc2bcadc8a8fecd2254ec767169b34893c6d (diff) |
Geometry Nodes: Improve speed of boolean node, use multi-input socket
This commit improves the performance of the node by up to 40% in some
cases when there are only two input meshes, mainly by skipping the
conversion to and from BMesh.
When there are more than two input meshes (note the distinction from
"Geometries", a geometry set can have many mesh instances), the
performance is actually worse, since boolean currently always does
self intersection in that case. Theoretically this could be improved
in the boolean code, or another option is automatically realizing
instances for each input geometry set.
Another improvement is using multi-input sockets for the inputs, which
removes the need to have a separate boolean node for every operation,
which can hopefully simplify some node trees.
The changes necessary for transforms in `mesh_boolean_convert.cc` are
somewhat subtle; they come from the fact that the collecting the
geometry set instances already gives transforms in the local space
of the modifier object. There is also a very small amount of cleanup
to those lines, using `float4x4::identity()`.
This commit also fixes T87078, where overlapping difference meshes
makes the operation not work, though I haven't investigated why.
Differential Revision: https://developer.blender.org/D10599
Diffstat (limited to 'source/blender/blenkernel/intern/object_dupli.c')
0 files changed, 0 insertions, 0 deletions