[Bf-blender-cvs] [bdb6d69419c] temp-lineart-contained: LineArt: Crease by sharp

YimingWu noreply at git.blender.org
Sun Apr 3 12:04:13 CEST 2022


Commit: bdb6d69419c6a120808a8e9555438d9eddb9f51c
Author: YimingWu
Date:   Sun Apr 3 16:46:10 2022 +0800
Branches: temp-lineart-contained
https://developer.blender.org/rBbdb6d69419c6a120808a8e9555438d9eddb9f51c

LineArt: Crease by sharp

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

M	release/scripts/addons
M	source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c

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

diff --git a/release/scripts/addons b/release/scripts/addons
index f6d72972320..787ea78f7fa 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit f6d72972320a891b00d3d9e4519f89f24963bae6
+Subproject commit 787ea78f7fa6f0373d80ba1247768402df93f8ad
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 69b4eb0efc5..b4fdd094fe9 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -1605,20 +1605,20 @@ static void lineart_identify_mlooptri_feature_edges(void *__restrict userdata,
   const MLoopTri *mlooptri = e_feat_data->mlooptri;
 
   if (rb->use_crease) {
-    // if (rb->sharp_as_crease && !BM_elem_flag_test(e, BM_ELEM_SMOOTH)) {
-    //  edge_flag_result |= LRT_EDGE_FLAG_CREASE;
-    //}
-    // 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)) {
+    if (e_f_pair->eflag & BM_ELEM_TAG) {
       edge_flag_result |= LRT_EDGE_FLAG_CREASE;
     }
-    //}
+    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;
+      }
+    }
   }
 
   int mat1 = me->mpoly[mlooptri[e_f_pair->f1].poly].mat_nr;
@@ -1652,6 +1652,10 @@ 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) {
+    edge_flag_result |= LRT_EDGE_FLAG_CREASE;
+  }
+
   // if (use_freestyle_face && rb->filter_face_mark) {
   //   fel = CustomData_bmesh_get(&bm_if_freestyle->pdata, ll->f->head.data, CD_FREESTYLE_FACE);
   //   if (ll != lr && lr) {



More information about the Bf-blender-cvs mailing list