[Bf-blender-cvs] [50840bb2a3a] lineart-object-load: LineArt: Crease in new object loading working correctly.

YimingWu noreply at git.blender.org
Wed Apr 20 16:12:59 CEST 2022


Commit: 50840bb2a3a08cf0572681c22c030f375bf0d80a
Author: YimingWu
Date:   Sun Apr 3 18:03:36 2022 +0800
Branches: lineart-object-load
https://developer.blender.org/rB50840bb2a3a08cf0572681c22c030f375bf0d80a

LineArt: Crease in new object loading working correctly.

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

M	source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c

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

diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 0241f8f3d96..e54d12a650a 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -1561,19 +1561,14 @@ static void lineart_identify_mlooptri_feature_edges(void *__restrict userdata,
   const MLoopTri *mlooptri = e_feat_data->mlooptri;
 
   if (rb->use_crease) {
-    if (e_f_pair->eflag & BM_ELEM_TAG) {
-      edge_flag_result |= LRT_EDGE_FLAG_CREASE;
+    bool do_crease = true;
+    if (!rb->force_crease && !e_feat_data->use_auto_smooth &&
+        (me->mpoly[mlooptri[e_f_pair->f1].poly].flag & ME_SMOOTH) &&
+        (me->mpoly[mlooptri[e_f_pair->f2].poly].flag & ME_SMOOTH)) {
+      do_crease = false;
     }
-    else {
-      bool do_crease = true;
-      if (!rb->force_crease && !e_feat_data->use_auto_smooth &&
-          (me->mpoly[mlooptri[e_f_pair->f1].poly].flag & ME_SMOOTH) &&
-          (me->mpoly[mlooptri[e_f_pair->f2].poly].flag & ME_SMOOTH)) {
-        do_crease = false;
-      }
-      if (do_crease && (dot_v3v3_db(tri1->gn, tri2->gn) < e_feat_data->crease_threshold)) {
-        edge_flag_result |= LRT_EDGE_FLAG_CREASE;
-      }
+    if (do_crease && (dot_v3v3_db(tri1->gn, tri2->gn) < e_feat_data->crease_threshold)) {
+      edge_flag_result |= LRT_EDGE_FLAG_CREASE;
     }
   }
 
@@ -1608,7 +1603,7 @@ static uint16_t lineart_identify_medge_feature_edges(LineartRenderBuffer *rb,
   bool face_mark_filtered = false;
   uint16_t edge_flag_result = 0;
 
-  if (rb->use_crease && rb->sharp_as_crease && medge->flag & ME_SHARP) {
+  if (rb->use_crease && rb->sharp_as_crease && (medge->flag & ME_SHARP)) {
     edge_flag_result |= LRT_EDGE_FLAG_CREASE;
   }
 
@@ -2141,7 +2136,7 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info,
   if (orig_ob->lineart.flags & OBJECT_LRT_OWN_CREASE) {
     use_crease = cosf(M_PI - orig_ob->lineart.crease_threshold);
   }
-  if (ob_info->original_me->flag & ME_AUTOSMOOTH) {
+  else if (ob_info->original_me->flag & ME_AUTOSMOOTH) {
     use_crease = cosf(ob_info->original_me->smoothresh);
     use_auto_smooth = true;
   }



More information about the Bf-blender-cvs mailing list