[Bf-blender-cvs] [d3b85af6ca4] blender-v2.91-release: Fix T49850: Detailed curves are heavily reduced

Campbell Barton noreply at git.blender.org
Wed Nov 4 05:40:10 CET 2020


Commit: d3b85af6ca4b0d1cbddec99b5c53b6aa081af230
Author: Campbell Barton
Date:   Wed Nov 4 15:37:37 2020 +1100
Branches: blender-v2.91-release
https://developer.blender.org/rBd3b85af6ca4b0d1cbddec99b5c53b6aa081af230

Fix T49850: Detailed curves are heavily reduced

Divide the threshold by the resolution to prevent duplicates
being detected in high resolution curves.

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

M	source/blender/blenkernel/intern/curve.c

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

diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 1eb374d1a08..b2ebb56d828 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -2992,6 +2992,8 @@ void BKE_curve_bevelList_make(Object *ob, ListBase *nurbs, bool for_render)
   bl = bev->first;
   while (bl) {
     if (bl->nr) { /* null bevel items come from single points */
+      /* Scale the threshold so high resolution shapes don't get over reduced, see: T49850. */
+      const float threshold_resolu = 0.00001f / resolu;
       bool is_cyclic = bl->poly != -1;
       nr = bl->nr;
       if (is_cyclic) {
@@ -3012,13 +3014,9 @@ void BKE_curve_bevelList_make(Object *ob, ListBase *nurbs, bool for_render)
           }
         }
         else {
-          if (fabsf(bevp0->vec[0] - bevp1->vec[0]) < 0.00001f) {
-            if (fabsf(bevp0->vec[1] - bevp1->vec[1]) < 0.00001f) {
-              if (fabsf(bevp0->vec[2] - bevp1->vec[2]) < 0.00001f) {
-                bevp0->dupe_tag = true;
-                bl->dupe_nr++;
-              }
-            }
+          if (compare_v3v3(bevp0->vec, bevp1->vec, threshold_resolu)) {
+            bevp0->dupe_tag = true;
+            bl->dupe_nr++;
           }
         }
         bevp0 = bevp1;



More information about the Bf-blender-cvs mailing list