(New page: right It turns out I have written a lot of Inverse Kinematics algorithms. I didn't even realize how many different algorithms I've tried for solving IK unti...) |
m |
||
Line 15: | Line 15: | ||
* rigid body dynamics solver | * rigid body dynamics solver | ||
** augmented coordinates | ** augmented coordinates | ||
*** explicit with Lagrange Multipliers, LCP joint limits | *** explicit with [[How to Simulate a Ponytail|Lagrange Multipliers]], [[The Mixed Linear Complementarity Problem|LCP]] joint limits | ||
*** implicit with stiff springs | *** implicit with stiff springs | ||
** generalized coordinates | ** generalized coordinates |
Revision as of 17:44, 14 May 2007
It turns out I have written a lot of Inverse Kinematics algorithms.
I didn't even realize how many different algorithms I've tried for solving IK until I started writing this page. The list looks something like this:
- simple serial analytical IK
- Cyclic Coordinate Descent (CCD)
- serial and tree structured
- with joint limits from the root
- with child-child joint limits
- dynamically re-rooted
- 2 Degree of Freedom (DOF), 3 DOF, and 6 DOF
- sequential euler angle joint solver
- numerical quaternion joint solver
- rigid body dynamics solver
- augmented coordinates
- explicit with Lagrange Multipliers, LCP joint limits
- implicit with stiff springs
- generalized coordinates
- explicit with springs
- implicit Featherstone with stiff springs
- augmented coordinates
- particle-based solver (like SHAKE, RATTLE, Jakobsen)
- dense constraint approach to branching nodes
- sparse branching with multiple passes
Yikes! I hope to make each of those a link to a detailed description of the technique and its pros and cons in the future.
For now, here is my 2002 Game Developers Conference lecture, titled My Adventures in Inverse Kinematics. It's a description of the CCD-based approach I took for a while on my indie rock climbing game.