sexta-feira, 19 de novembro de 2010

IK - Inverse Kinematics

Existem dois modos de controlar hierarquias de joints. A forma por defeito é FK - Forward Kinematics - em que o joint Avô controla o joint Pai e que o Joint pai controla o joint filho.

Mas se para determinada estrutura precisarmos de controlar o joint filho e que este por sua vez, este controle o joint pai e avô, é impossível. 

Um exemplo típico é o caso de um braço. Para que possamos mover a mão para uma determinada posição, modo FK, tem que se alterar primeiro o Ombro (Avô), depois alterar o Cotovelo(Pai) e só depois controlar a Mão (Filho). Para evitar isto usa-se o Ik para inverter de uma forma dinâmica a estrutura pré-existente.

Vantagens do IK:
- Maior rapidez de posicionamento dos objectos.
- Imprescindível quando é necessário ter por exemplo uma mão agarrada a um objecto fixo, enquanto o resto do corpo se mexe.

Vantagens do FK:
-Funciona numa forma de Arcos o que é essencial para a animação.
(Esta é a razão para ser o meu modo preferido para animação de braços, contudo gosto de poder recorrer ao modo IK quando é necessário)



Existem diversos tipos de Solver de IKHandle. O mais usado é o ikRPSolver (Rotation Plane), porque é mais previsível. O ikSCSolver (Single Chain) não precisa de PoleVector podendo ser rodado directamente no ikhandle.

Outros solver’s menos habituais são o ikSpringSolver e o hikSolver.
Para se ter acesso ao ikSpringSolver tem que se digitar na command line (mel) :
 ikSpringSolver;

O ikSpringSolver é usado para estruturas mais complexas como estruturas em S. o hikSolver é o solver usado pelo sistema FullBodyIK do Maya.