Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Dick <weasel>2020-01-29 06:28:03 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-01-29 06:30:06 +0300
commit9c190dea4c056a80edde885da3756b889527a8b4 (patch)
treef6148ebd0495c322e835590320ba826c629635e6 /source/blender/modifiers/intern/MOD_solidify_nonmanifold.c
parent337ce7c98494109dea39ad86a664f2c15e73ac51 (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/intern/MOD_solidify_nonmanifold.c')
-rw-r--r--source/blender/modifiers/intern/MOD_solidify_nonmanifold.c5
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. */