[Soc-2005-dev] Re: [Soc-2005-cvs] CVS commit: soc-blender/intern/iksolver/intern IK_QChain.cpp IK_QChain.h IK_QJacobian.cpp IK_QJacobian.h IK_QJacobianSolver.cpp IK_QJacobianSolver.h IK_QSegment.cpp IK_QSegment.h IK_Solver.cpp soc-blender/intern/moto/include MT_Matrix3x3.h soc-blender/source/blender/blenkernel ...

Ton Roosendaal ton at blender.org
Thu Jul 7 09:44:32 CEST 2005


Hi Brecht,

Looks all great what you do on the IK module. :)
Hope you're fine I don't have time to discuss the roadmap for it now,  
but will do that somewhere during next week, preferably after I've  
finished the architecture overview for the Blender anim system and  
Armature/Pose/Action/NLA recode.

-Ton-


On 5 Jul, 2005, at 22:20, Brecht Van Lommel wrote:

> blendix (Brecht Van Lommel) 2005/07/05 22:20:48 CEST
>
>   Modified files:        (Branch: blendix)
>     soc-blender/intern/iksolver/intern IK_QChain.cpp IK_QChain.h
>                                        IK_QJacobian.cpp
>                                        IK_QJacobian.h
>                                        IK_QJacobianSolver.cpp
>                                        IK_QJacobianSolver.h
>                                        IK_QSegment.cpp
>                                        IK_QSegment.h IK_Solver.cpp
>     soc-blender/intern/moto/include MT_Matrix3x3.h
>     soc-blender/source/blender/blenkernel BKE_armature.h
>     soc-blender/source/blender/blenkernel/intern armature.c
>                                                  constraint.c
>     soc-blender/source/blender/blenkernel/bad_level_call_stubs
>                                                                stubs.c
>     soc-blender/intern/iksolver/extern IK_solver.h
>
>   Log:
>   Throwing out the exponential map (aka axis-angle) parametrization:
>
>   The reason it was used is that the typical euler angles suffer from
>   singularities (gimbal lock), and quaternions can drift away from
>   valid rotations.
>
>   The problem however is that the 3 paramaters of the exponential map
>   have no useful meaning (much like quaternions). Computing the
>   derivatives of and/or reparametrizing the exponential map is
>   cumbersome (and slow).
>
>   The simpler solution used now is to avoid using a parametrization
>   altogether, and directly update the rotation matrix. The derivatives
>   are the same as for euler angles, but the rotation matrix is
>   updated using Rodrigues' formula, reference:
>
>   "Dynamics Computation of Structure-Varying Kinematics Chains and its
>   application to human figures", by Nakamura et al.
>
>   This change might break backwards compatibility, but the results from
>   my test cases at least look identical. The exponential map could be
>   enabled again for older files if needed..
>
>   Except for the change in angle parametrization much of the code have
>   also been simplified.
>
>   Revision  Changes    Path
>   1.1.1.1.2.3 +27 -95     
> soc-blender/intern/iksolver/intern/IK_QChain.cpp
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/IK_QChain.cpp.diff? 
> r1=1.1.1.1.2.2&r2=1.1.1.1.2.3&cvsroot=soc-2005>
>   1.1.1.1.2.2 +8 -8      soc-blender/intern/iksolver/intern/IK_QChain.h
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/IK_QChain.h.diff? 
> r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
>   1.1.2.2   +97 -34     
> soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.cpp
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/Attic/IK_QJacobian.cpp.diff? 
> r1=1.1.2.1&r2=1.1.2.2&cvsroot=soc-2005>
>   1.1.2.2   +11 -15     
> soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.h
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/Attic/IK_QJacobian.h.diff? 
> r1=1.1.2.1&r2=1.1.2.2&cvsroot=soc-2005>
>   1.1.1.1.2.5 +13 -22     
> soc-blender/intern/iksolver/intern/IK_QJacobianSolver.cpp
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/IK_QJacobianSolver.cpp.diff? 
> r1=1.1.1.1.2.4&r2=1.1.1.1.2.5&cvsroot=soc-2005>
>   1.1.1.1.2.2 +2 -2       
> soc-blender/intern/iksolver/intern/IK_QJacobianSolver.h
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/IK_QJacobianSolver.h.diff? 
> r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
>   1.1.1.1.2.2 +117 -252   
> soc-blender/intern/iksolver/intern/IK_QSegment.cpp
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/IK_QSegment.cpp.diff? 
> r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
>   1.1.1.1.2.2 +121 -183   
> soc-blender/intern/iksolver/intern/IK_QSegment.h
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/IK_QSegment.h.diff? 
> r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
>   1.1.1.1.2.3 +34 -21     
> soc-blender/intern/iksolver/intern/IK_Solver.cpp
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/intern/IK_Solver.cpp.diff? 
> r1=1.1.1.1.2.2&r2=1.1.1.1.2.3&cvsroot=soc-2005>
>   1.1.1.1.2.1 +10 -1     soc-blender/intern/moto/include/MT_Matrix3x3.h
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> moto/include/MT_Matrix3x3.h.diff? 
> r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
>   1.1.1.1.2.1 +2 -2       
> soc-blender/source/blender/blenkernel/BKE_armature.h
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/ 
> blender/blenkernel/BKE_armature.h.diff? 
> r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
>   1.1.1.1.2.1 +8 -5       
> soc-blender/source/blender/blenkernel/intern/armature.c
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/ 
> blender/blenkernel/intern/armature.c.diff? 
> r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
>   1.1.1.1.2.1 +2 -2       
> soc-blender/source/blender/blenkernel/intern/constraint.c
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/ 
> blender/blenkernel/intern/constraint.c.diff? 
> r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
>   1.1.1.1.2.1 +3 -2       
> soc-blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/ 
> blender/blenkernel/bad_level_call_stubs/stubs.c.diff? 
> r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
>   1.1.1.1.2.1 +6 -4      soc-blender/intern/iksolver/extern/IK_solver.h
>      
> <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/ 
> iksolver/extern/IK_solver.h.diff? 
> r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
> _______________________________________________
> Soc-2005-cvs mailing list
> Soc-2005-cvs at blender.org
> http://projects.blender.org/mailman/listinfo/soc-2005-cvs
>
>
------------------------------------------------------------------------ 
--
Ton Roosendaal  Blender Foundation ton at blender.org  
http://www.blender.org



More information about the Soc-2005-dev mailing list