[Bf-blender-cvs] [c3a125d4cc0] lineart-shadow: LineArt: Silhouette bit mask logic fix

YimingWu noreply at git.blender.org
Mon May 30 05:58:18 CEST 2022


Commit: c3a125d4cc08c1e75312360c303d61b002ed34da
Author: YimingWu
Date:   Mon May 30 11:58:04 2022 +0800
Branches: lineart-shadow
https://developer.blender.org/rBc3a125d4cc08c1e75312360c303d61b002ed34da

LineArt: Silhouette bit mask logic fix

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

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

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

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 647c85462d8..ebc3989630d 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 647c85462d87c3a9d3a189d28d72d1bd93f4d4a8
+Subproject commit ebc3989630d18afe00624fc5e4bae6cc0de7a260
diff --git a/release/scripts/addons b/release/scripts/addons
index d936e4c01fa..1c8e7f124d1 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit d936e4c01fa263a71a7d0665628ae621283b15ee
+Subproject commit 1c8e7f124d17b64ff05cbe179264ba7c7c3aa9fc
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 61e45814503..61efd17f87b 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 61e45814503f51963c91c51aaf764612e7c5dc72
+Subproject commit 61efd17f87b45c3049091127a5619219f9d2a821
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 7454068f690..e922a8b9163 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -336,11 +336,13 @@ static void lineart_edge_cut(LineartRenderBuffer *rb,
     /* Currently only register lit/shade, see
        LineartEdgeSegment::shadow_mask_bits for details. */
     if (shadow_bits == LRT_SHADOW_MASK_ENCLOSED_SHAPE) {
-      if (es->shadow_mask_bits == LRT_SHADOW_MASK_LIT || e->flags & LRT_EDGE_FLAG_LIGHT_CONTOUR) {
-        es->shadow_mask_bits = LRT_SHADOW_MASK_INHIBITED;
+      if (es->shadow_mask_bits & LRT_SHADOW_MASK_LIT || e->flags & LRT_EDGE_FLAG_LIGHT_CONTOUR) {
+        es->shadow_mask_bits &= ~LRT_SHADOW_MASK_LIT;
+        es->shadow_mask_bits |= LRT_SHADOW_MASK_INHIBITED;
       }
-      else if (es->shadow_mask_bits == LRT_SHADOW_MASK_SHADED) {
-        es->shadow_mask_bits = LRT_SHADOW_MASK_LIT;
+      else if (es->shadow_mask_bits & LRT_SHADOW_MASK_SHADED) {
+        es->shadow_mask_bits &= ~LRT_SHADOW_MASK_SHADED;
+        es->shadow_mask_bits |= LRT_SHADOW_MASK_LIT;
       }
     }
     else {
@@ -4098,7 +4100,6 @@ static void lineart_bounding_area_split(LineartRenderBuffer *rb,
   LineartBoundingArea *ba = lineart_mem_acquire_thread(&rb->render_data_pool,
                                                        sizeof(LineartBoundingArea) * 4);
   LineartTriangle *tri;
-  LineartBoundingArea *ba = root->child;
 
   ba[0].l = root->cx;
   ba[0].r = root->r;
@@ -6421,9 +6422,9 @@ static void lineart_gpencil_generate(LineartCache *cache,
       if (ec->shadow_mask_bits != LRT_SHADOW_MASK_UNDEFINED) {
         /* TODO(Yiming): Give a behaviour option for how to display undefined shadow info. */
         if ((shaodow_selection == LRT_SHADOW_FILTER_LIT &&
-             ec->shadow_mask_bits != LRT_SHADOW_MASK_LIT) ||
+             (!(ec->shadow_mask_bits & LRT_SHADOW_MASK_LIT))) ||
             (shaodow_selection == LRT_SHADOW_FILTER_SHADED &&
-             ec->shadow_mask_bits != LRT_SHADOW_MASK_SHADED)) {
+             (!(ec->shadow_mask_bits & LRT_SHADOW_MASK_SHADED)))) {
           continue;
         }
       }



More information about the Bf-blender-cvs mailing list