[Bf-blender-cvs] [fdde2e17c76] temp-lineart-contained: LineArt: Correct handling when edge mark is on border.
YimingWu
noreply at git.blender.org
Sun Jun 27 05:38:30 CEST 2021
Commit: fdde2e17c76f499827126fefa6e1447132962da8
Author: YimingWu
Date: Wed Jun 23 21:58:36 2021 +0800
Branches: temp-lineart-contained
https://developer.blender.org/rBfdde2e17c76f499827126fefa6e1447132962da8
LineArt: Correct handling when edge mark is on border.
===================================================================
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 87649e0b5f1..752e71b4bf4 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -1508,9 +1508,19 @@ static uint16_t lineart_identify_feature_line(LineartRenderBuffer *rb,
}
}
+ uint16_t edge_flag_result = 0;
+
+ if (use_freestyle_edge && rb->use_edge_marks) {
+ FreestyleEdge *fe;
+ fe = CustomData_bmesh_get(&bm_if_freestyle->edata, e->head.data, CD_FREESTYLE_EDGE);
+ if (fe->flag & FREESTYLE_EDGE_MARK) {
+ edge_flag_result |= LRT_EDGE_FLAG_EDGE_MARK;
+ }
+ }
+
/* Mesh boundary */
if (!lr || ll == lr) {
- return LRT_EDGE_FLAG_CONTOUR;
+ return (edge_flag_result | LRT_EDGE_FLAG_CONTOUR);
}
LineartTriangle *tri1, *tri2;
@@ -1526,7 +1536,6 @@ static uint16_t lineart_identify_feature_line(LineartRenderBuffer *rb,
double *view_vector = vv;
double dot_1 = 0, dot_2 = 0;
double result;
- uint16_t edge_flag_result = 0;
if (rb->use_contour) {
@@ -1577,16 +1586,11 @@ static uint16_t lineart_identify_feature_line(LineartRenderBuffer *rb,
}
}
}
+
if (rb->use_material && (ll->f->mat_nr != lr->f->mat_nr)) {
edge_flag_result |= LRT_EDGE_FLAG_MATERIAL;
}
- else if (use_freestyle_edge && rb->use_edge_marks) {
- FreestyleEdge *fe;
- fe = CustomData_bmesh_get(&bm_if_freestyle->edata, e->head.data, CD_FREESTYLE_EDGE);
- if (fe->flag & FREESTYLE_EDGE_MARK) {
- edge_flag_result |= LRT_EDGE_FLAG_EDGE_MARK;
- }
- }
+
return edge_flag_result;
}
More information about the Bf-blender-cvs
mailing list