[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