/IKCharacterDeformer

Implementation of FK and IK using Eigen/ADOL-C solvers to let a character with joints and skinning weights be deformed in real-time. Project for CSCI 520.

Primary LanguageC++

IKCharacterDeformer

Implementation of FK and IK using Eigen/ADOL-C solvers to let a character with joints and skinning weights be deformed in real-time, rendered in OpenGL. Project for CSCI 520.

  • IK Solver performs IK by using ADOL-C to evaluate the gradient of FK (the Jacobian matrix) through Tikohonov regularization, and finally using Eigen to solve the systems of equations. Increase the alpha value to have more jagged movement, or decrease for smooth deformations.

  • FK Solver performs FK that is needed for IK, updates local and global transforms of joints.

  • Linear Blend Skinning is applied using inputted skinning weights, change them out for differences in character.

GIF of armadillo character being deformed.

To better explain the IK math, take note of the following problem and equation:

A problem showing the optimization of Inverse Kinematics

Using ADOL-C the Jacobian (J) matrix is computed by taking the gradient of all first-order partial derivatives from FK.

An equation showing a simplified Tikohonov Regularization for how Inverse Kinematics is solved by Eigen.

Eigen is then used to solve a simplified equation of Tikohonov regularization once ADOL-C has computed the Jacobian, by solving for the change in angle.