Blender Git Loki
Git Commits -> Revision a0e2370
Revision a0e2370 by Alexander Gavrilov (temp-angavrilov-roll-precision) October 15, 2021, 10:21 (GMT) |
Fix precision issues and a bug in vec_roll_to_mat3_normalized. When the input vector gets close to -Y, y and theta becomes totally unreliable. It is thus necessary to compute the result in a different way based on x and z. The code already had a special case, but: - The threshold for using the special case was way too low. - The special case was not precise enough to extend the threshold. - The special case math had a sign error, resulting in a jump. This adds tests for the computation precision and fixes the issues by adjusting the threshold, and replacing the special case with one based on a quadratic Taylor expansion of sqrt instead of linear. Replacing the special case fixes the bug and results in a compatibility break, requiring versioning for the roll of affected bones. Differential Revision: https://developer.blender.org/D9551 |
Commit Details:
Full Hash: a0e23700707ffecd7818ef8f0874eefbc81561c5
Parent Commit: e2cb81a
Lines Changed: +203, -25