diff options
author | Henrik Dick <weasel> | 2020-01-29 06:28:03 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-01-29 06:30:06 +0300 |
commit | 9c190dea4c056a80edde885da3756b889527a8b4 (patch) | |
tree | f6148ebd0495c322e835590320ba826c629635e6 /source/blender/modifiers | |
parent | 337ce7c98494109dea39ad86a664f2c15e73ac51 (diff) |
Fix solidify complex fixed thickness on flipped normal boundary
Fixed thickness with zero offset gave uneven results for complex
solidify cases (3+ faces sharing an edge).
See D6643 for steps to redo the error.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r-- | source/blender/modifiers/intern/MOD_solidify_nonmanifold.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c b/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c index 144ba25c8fa..799c1c966a3 100644 --- a/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c +++ b/source/blender/modifiers/intern/MOD_solidify_nonmanifold.c @@ -1407,7 +1407,7 @@ Mesh *MOD_solidify_nonmanifold_applyModifier(ModifierData *md, disable_boundary_fix = true; } } - /* Simple/Even Method. */ + /* Fixed/Even Method. */ else { float total_angle = 0; float total_angle_back = 0; @@ -1520,6 +1520,9 @@ Mesh *MOD_solidify_nonmanifold_applyModifier(ModifierData *md, if (has_back && total_angle_back > FLT_EPSILON) { mul_v3_fl(nor_back, 1.0f / total_angle_back); add_v3_v3(nor, nor_back); + if (has_front && total_angle > FLT_EPSILON) { + mul_v3_fl(nor, 0.5f); + } } } /* Set move_nor for boundary fix. */ |