From 5cac5a1a690eb4818344e5d286b014c49b950c72 Mon Sep 17 00:00:00 2001 From: Henrik Dick Date: Thu, 10 Feb 2022 22:14:02 +0100 Subject: Fix: Bevel vertex didn't use weights in some cases Bevel Vertices did not use vertex/bevel weights if the Width Type was set to Width or Depth. --- source/blender/bmesh/tools/bmesh_bevel.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender') diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c index 2f471bf0b81..7933d5ae866 100644 --- a/source/blender/bmesh/tools/bmesh_bevel.c +++ b/source/blender/bmesh/tools/bmesh_bevel.c @@ -6293,10 +6293,10 @@ static BevVert *bevel_vert_construct(BMesh *bm, BevelParams *bp, BMVert *v) sub_v3_v3v3(edge_dir, bv->v->co, v2->co); float z = fabsf(2.0f * sinf(angle_v3v3(vert_axis, edge_dir))); if (z < BEVEL_EPSILON) { - e->offset_l_spec = 0.01f * bp->offset; /* Undefined behavior, so tiny bevel. */ + e->offset_l_spec = 0.01f * bv->offset; /* Undefined behavior, so tiny bevel. */ } else { - e->offset_l_spec = bp->offset / z; + e->offset_l_spec = bv->offset / z; } break; } @@ -6305,10 +6305,10 @@ static BevVert *bevel_vert_construct(BMesh *bm, BevelParams *bp, BMVert *v) sub_v3_v3v3(edge_dir, bv->v->co, v2->co); float z = fabsf(cosf(angle_v3v3(vert_axis, edge_dir))); if (z < BEVEL_EPSILON) { - e->offset_l_spec = 0.01f * bp->offset; /* Undefined behavior, so tiny bevel. */ + e->offset_l_spec = 0.01f * bv->offset; /* Undefined behavior, so tiny bevel. */ } else { - e->offset_l_spec = bp->offset / z; + e->offset_l_spec = bv->offset / z; } break; } -- cgit v1.2.3 From 39bac58cdf3f1db633913ea4838bf223bc15ec3b Mon Sep 17 00:00:00 2001 From: Henrik Dick Date: Thu, 10 Feb 2022 22:29:10 +0100 Subject: Fix: Enable edge bevel weight in solidify if needed Complex Solidify creates edge bevel weights on the rim if the according vertex has some vertex bevel weight. If there are no edge bevel weights, they were left disabled even if vertex bevel weights are used. --- source/blender/modifiers/intern/MOD_solidify_nonmanifold.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c b/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c index 1aa52d44509..5f6decdbe80 100644 --- a/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c +++ b/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c @@ -1924,7 +1924,7 @@ Mesh *MOD_solidify_nonmanifold_modifyMesh(ModifierData *md, int *origindex_edge = CustomData_get_layer(&result->edata, CD_ORIGINDEX); int *origindex_poly = CustomData_get_layer(&result->pdata, CD_ORIGINDEX); - if (bevel_convex != 0.0f) { + if (bevel_convex != 0.0f || (result->cd_flag & ME_CDFLAG_VERT_BWEIGHT) != 0) { /* make sure bweight is enabled */ result->cd_flag |= ME_CDFLAG_EDGE_BWEIGHT; } -- cgit v1.2.3