[Bf-blender-cvs] [74d3ea8a338] temp-lineart-embree: LineArt: Crease in new object loading working correctly.

YimingWu noreply at git.blender.org
Sun Apr 3 12:06:44 CEST 2022


Commit: 74d3ea8a338793bcbe09f170f8ff7b8eacfcd192
Author: YimingWu
Date:   Sun Apr 3 18:03:36 2022 +0800
Branches: temp-lineart-embree
https://developer.blender.org/rB74d3ea8a338793bcbe09f170f8ff7b8eacfcd192

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 88207c8a76d..99764820d35 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -1641,19 +1641,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;
     }
   }
 
@@ -1688,7 +1683,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;
   }
 
@@ -2221,7 +2216,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