From 9466d1579df37e108ef52e03984b88c64c926dbe Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Jun 2016 02:20:25 +1200 Subject: Bendy Bones: Temporary workaround for instability caused by D2001 when using custom handle bones It's probably some numeric precision issue, but until we figure out exactly what's going wrong here, let's just revert back to the hardcoded value that was used here successfully for years without issues. --- source/blender/blenkernel/intern/armature.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 038993777cf..99c9d0a0a79 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -634,7 +634,12 @@ void b_bone_spline_setup(bPoseChannel *pchan, int rest, Mat4 result_array[MAX_BB } { - const float circle_factor = length * (cubic_tangent_factor_circle_v3(h1, h2) / 0.75f); +#if 0 // <--- this is currently unstable, disabling until we find a good fix + const float circle_factor = length * (cubic_tangent_factor_circle_v3(h1, h2) / 0.75f); +#else // <--- temporary workaround, using the old hardcoded value + const float circle_factor = length * 0.390464f; +#endif + const float hlength1 = bone->ease1 * circle_factor; const float hlength2 = bone->ease2 * circle_factor; -- cgit v1.2.3