[Bf-blender-cvs] [deb59c25c04] blender-v2.82-release: Weld Modifier: Reduce size of the leaf nodes to half

mano-wii noreply at git.blender.org
Sat Jan 18 19:28:56 CET 2020


Commit: deb59c25c043f5e3ab256791a9012b8feea5e2e4
Author: mano-wii
Date:   Sat Jan 18 15:28:49 2020 -0300
Branches: blender-v2.82-release
https://developer.blender.org/rBdeb59c25c043f5e3ab256791a9012b8feea5e2e4

Weld Modifier: Reduce size of the leaf nodes to half

This improves performance by reducing the amount of false positives.

A self overlap is made, so the distance from the vertices in the
overlap nodes is actually added.

===================================================================

M	source/blender/modifiers/intern/MOD_weld.c

===================================================================

diff --git a/source/blender/modifiers/intern/MOD_weld.c b/source/blender/modifiers/intern/MOD_weld.c
index 9c8579e1cd3..f96ec9a82e5 100644
--- a/source/blender/modifiers/intern/MOD_weld.c
+++ b/source/blender/modifiers/intern/MOD_weld.c
@@ -1602,6 +1602,7 @@ static bool bvhtree_weld_overlap_cb(void *userdata, int index_a, int index_b, in
     struct WeldOverlapData *data = userdata;
     const MVert *mvert = data->mvert;
     const float dist_sq = len_squared_v3v3(mvert[index_a].co, mvert[index_b].co);
+    BLI_assert(dist_sq <= ((data->merge_dist_sq + FLT_EPSILON) * 3));
     return dist_sq <= data->merge_dist_sq;
   }
   return false;
@@ -1646,7 +1647,7 @@ static Mesh *weldModifier_doWeld(WeldModifierData *wmd, const ModifierEvalContex
   /* TODO: For a better performanse use KD-Tree. */
   struct BVHTreeFromMesh treedata;
   BVHTree *bvhtree = bvhtree_from_mesh_verts_ex(
-      &treedata, mvert, totvert, false, v_mask, v_mask_act, wmd->merge_dist, 2, 6, 0, NULL);
+      &treedata, mvert, totvert, false, v_mask, v_mask_act, wmd->merge_dist / 2, 2, 6, 0, NULL);
 
   if (v_mask) {
     MEM_freeN(v_mask);



More information about the Bf-blender-cvs mailing list