[Bf-blender-cvs] [3ae33717e68] lineart-shadow: LineArt: Edge cutter rare case handling.
Yiming Wu
noreply at git.blender.org
Thu Jun 2 16:55:58 CEST 2022
Commit: 3ae33717e683d4bdee7b97d804ad084dc346060c
Author: Yiming Wu
Date: Thu Jun 2 22:55:26 2022 +0800
Branches: lineart-shadow
https://developer.blender.org/rB3ae33717e683d4bdee7b97d804ad084dc346060c
LineArt: Edge cutter rare case handling.
===================================================================
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 a24acff57bc..213df523b85 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -256,9 +256,11 @@ void lineart_edge_cut(LineartRenderBuffer *rb,
if (cut_start_before != ns) {
/* Insert cutting points for when a new cut is needed. */
ies = cut_start_before->prev ? cut_start_before->prev : NULL;
- ns->occlusion = ies ? ies->occlusion : 0;
- ns->material_mask_bits = ies->material_mask_bits;
- ns->shadow_mask_bits = ies->shadow_mask_bits;
+ if (ies) {
+ ns->occlusion = ies->occlusion;
+ ns->material_mask_bits = ies->material_mask_bits;
+ ns->shadow_mask_bits = ies->shadow_mask_bits;
+ }
BLI_insertlinkbefore(&e->segments, cut_start_before, ns);
}
/* Otherwise we already found a existing cutting point, no need to insert a new one. */
@@ -276,9 +278,11 @@ void lineart_edge_cut(LineartRenderBuffer *rb,
/* The same manipulation as on "cut_start_before". */
if (cut_end_before != ns2) {
ies = cut_end_before->prev ? cut_end_before->prev : NULL;
- ns2->occlusion = ies ? ies->occlusion : 0;
- ns2->material_mask_bits = ies ? ies->material_mask_bits : 0;
- ns2->shadow_mask_bits = ies ? ies->shadow_mask_bits : 0;
+ if (ies) {
+ ns2->occlusion = ies->occlusion;
+ ns2->material_mask_bits = ies->material_mask_bits;
+ ns2->shadow_mask_bits = ies->shadow_mask_bits;
+ }
BLI_insertlinkbefore(&e->segments, cut_end_before, ns2);
}
}
@@ -287,7 +291,9 @@ void lineart_edge_cut(LineartRenderBuffer *rb,
ns2->occlusion = ies->occlusion;
ns2->material_mask_bits = ies->material_mask_bits;
ns2->shadow_mask_bits = ies->shadow_mask_bits;
- BLI_addtail(&e->segments, ns2);
+ if (!untouched) {
+ BLI_addtail(&e->segments, ns2);
+ }
}
/* If we touched the cut list, we assign the new cut position based on new cut position,
More information about the Bf-blender-cvs
mailing list