[Bf-blender-cvs] [50840bb2a3a] lineart-object-load: LineArt: Crease in new object loading working correctly.
YimingWu
noreply at git.blender.org
Wed Apr 20 16:12:59 CEST 2022
Commit: 50840bb2a3a08cf0572681c22c030f375bf0d80a
Author: YimingWu
Date: Sun Apr 3 18:03:36 2022 +0800
Branches: lineart-object-load
https://developer.blender.org/rB50840bb2a3a08cf0572681c22c030f375bf0d80a
LineArt: Crease in new object loading working correctly.
===================================================================
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 0241f8f3d96..e54d12a650a 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -1561,19 +1561,14 @@ static void lineart_identify_mlooptri_feature_edges(void *__restrict userdata,
const MLoopTri *mlooptri = e_feat_data->mlooptri;
if (rb->use_crease) {
- if (e_f_pair->eflag & BM_ELEM_TAG) {
- edge_flag_result |= LRT_EDGE_FLAG_CREASE;
+ 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;
}
- 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;
- }
+ if (do_crease && (dot_v3v3_db(tri1->gn, tri2->gn) < e_feat_data->crease_threshold)) {
+ edge_flag_result |= LRT_EDGE_FLAG_CREASE;
}
}
@@ -1608,7 +1603,7 @@ 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) {
+ if (rb->use_crease && rb->sharp_as_crease && (medge->flag & ME_SHARP)) {
edge_flag_result |= LRT_EDGE_FLAG_CREASE;
}
@@ -2141,7 +2136,7 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info,
if (orig_ob->lineart.flags & OBJECT_LRT_OWN_CREASE) {
use_crease = cosf(M_PI - orig_ob->lineart.crease_threshold);
}
- if (ob_info->original_me->flag & ME_AUTOSMOOTH) {
+ else if (ob_info->original_me->flag & ME_AUTOSMOOTH) {
use_crease = cosf(ob_info->original_me->smoothresh);
use_auto_smooth = true;
}
More information about the Bf-blender-cvs
mailing list