Commit: 0d5d55428731c15732e107241de5b0c09d52edcb Author: YimingWu Date: Tue Apr 12 19:09:51 2022 +0800 Branches: lineart-object-load https://developer.blender.org/rB0d5d55428731c15732e107241de5b0c09d52edcb
LineArt: Crease support for new loading =================================================================== 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 981dd5105c4..c263f69ff00 100644 --- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c +++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c @@ -1496,6 +1496,7 @@ typedef struct EdgeFeatData { LineartTriangle *tri_array; LineartVert *v_array; float crease_threshold; + float **poly_normals; bool use_auto_smooth; } EdgeFeatData; @@ -1556,25 +1557,26 @@ static void lineart_identify_mlooptri_feature_edges(void *__restrict userdata, edge_flag_result |= LRT_EDGE_FLAG_CONTOUR; } - // if (rb->use_crease) { - // if (rb->sharp_as_crease && !BM_elem_flag_test(e, BM_ELEM_SMOOTH)) { - // edge_flag_result |= LRT_EDGE_FLAG_CREASE; - // } - // else { - // bool do_crease = true; - // if (!rb->force_crease && !use_auto_smooth && - // (BM_elem_flag_test(ll->f, BM_ELEM_SMOOTH) && BM_elem_flag_test(lr->f, - // BM_ELEM_SMOOTH))) { - // do_crease = false; - // } - // if (do_crease && (dot_v3v3_db(tri1->gn, tri2->gn) < crease_threshold)) { - // edge_flag_result |= LRT_EDGE_FLAG_CREASE; - // } - // } - // } Mesh *me = e_feat_data->me; const MLoopTri *mlooptri = e_feat_data->mlooptri; + if (rb->use_crease) { + // if (rb->sharp_as_crease && !BM_elem_flag_test(e, BM_ELEM_SMOOTH)) { + // edge_flag_result |= LRT_EDGE_FLAG_CREASE; + //} + // 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; + } + //} + } + int mat1 = me->mpoly[mlooptri[e_f_pair->f1].poly].mat_nr; int mat2 = me->mpoly[mlooptri[e_f_pair->f2].poly].mat_nr; @@ -2084,6 +2086,8 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info, const MLoopTri *mlooptri = BKE_mesh_runtime_looptri_ensure(me); const int tot_tri = BKE_mesh_runtime_looptri_len(me); + // float **normals = BKE_mesh_poly_normals_ensure(me); + // TODO if (0) { MEdge *medge = NULL; @@ -2239,6 +2243,7 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info, edge_feat_data.v_array = la_v_arr; edge_feat_data.crease_threshold = use_crease; edge_feat_data.use_auto_smooth = use_auto_smooth; + // edge_feat_data.poly_normals = normals; BLI_task_parallel_range(0, edge_pair_arr_len, _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs