Commit: b71693b5f0effc3cca04169dcb8e01a3324ea0aa Author: Joseph Eagar Date: Sun Mar 13 22:10:58 2022 -0700 Branches: sculpt-dev https://developer.blender.org/rBb71693b5f0effc3cca04169dcb8e01a3324ea0aa
Sculpt-dev: fix exploding vertices bug Added code to detect and fix unnormalized normals, still need to track down where exactly they are coming from. =================================================================== M source/blender/editors/sculpt_paint/sculpt_smooth.c =================================================================== diff --git a/source/blender/editors/sculpt_paint/sculpt_smooth.c b/source/blender/editors/sculpt_paint/sculpt_smooth.c index e70825a5a68..f5e965b466e 100644 --- a/source/blender/editors/sculpt_paint/sculpt_smooth.c +++ b/source/blender/editors/sculpt_paint/sculpt_smooth.c @@ -1908,6 +1908,11 @@ static void do_smooth_brush_task_cb_ex(void *__restrict userdata, copy_v3_v3(startco, vd.co); SCULPT_vertex_normal_get(ss, vd.vertex, startno); + /* Ensure we have a valid normal. */ + if (fabsf(dot_v3v3(startno, startno) - 1.0f) > 0.001) { + normalize_v3(startno); + } + int steps = data->do_origco ? 2 : 1; for (int step = 0; step < steps; step++) { @@ -1953,16 +1958,14 @@ static void do_smooth_brush_task_cb_ex(void *__restrict userdata, float veltmp[3]; copy_v3_v3(veltmp, vel); - /* remove tangental component */ + /* Remove tangental component. */ float fac = dot_v3v3(vel, startno); mul_v3_v3fl(vel, startno, fac); - /* note that "off" is interpreted here - as a force to update vel */ madd_v3_v3fl(vel, off, 0.2f); mul_v3_fl(vel, 0.8f); - /* apply velocity */ + /* Apply velocity. */ add_v3_v3(off, veltmp); } _______________________________________________ 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