Animação por Computador • • • • • Sólidos Transformações lineares Hierarquia de movimento Parametrização da orientação Interpolação da orientação 1 Animação por Computador • Considera-se sólido como conjunto de pontos com posições fixas em relação a um sistema de eixos local (local frame) Animação por Computador • Sólidos • Posição de um ponto sobre um sólido é definida complemente por: – Coordenadas no sistema de eixos local – Transformação linear que especifica a posição do sistema de eixos coordenados local (local frame) no sistema de eixos „de referência“ (global) 2 Animação por Computador • Coordenadas Homogéneas – Pontos e vectores são especificados através de 4 valores – Ponto: – Vector: P: (x,y,z,1) v: (x,y,z,0) – Matrizes de transformação permitem aplicar transformações lineares T(p) = (x,y,z,1)T Animação por Computador • Matrizes de transformação – Permitem juntar rotação translação e escalamento (scaling) de uma forma sucinta – Exemplo • Rotação em torno de eixo k seguida de • Translação ao longo de i 3 Animação por Computador • Combinação de transformações – A matriz que representa uma transformação composta é o produto das matrizes das transformações elementares Exemplo: rotação em j, escalamento e translação segundo k Animação por Computador • Projecção sobre um sistema de eixos 4 Animação por Computador • Projecção de sistemas de eixos inversa Animação por Computador • Curiosidade: – Hierarquia de sistemas coordenados – Sistemas de eixos podem ser definidos recursivamente – A composição não é comutativa 5 Animação por Computador • Matrizes de rotação – Propriedades – 9 valores, 6 relações – 3 parâmetros independentes Animação por Computador • Matrizes não se prestam à interpolação 6 Animação por Computador • Modelização de orientações – Ângulos de Euler: especificar 3 rotações em termos de 3 direcções independentes Animação por Computador • Ângulos de Euler – Podem ter 12 combinações diferentes XYZ, XZY, XZX, ... • Matriz de rotação no caso XYZ Rodar em X, a seguir em Y e depois em Z 7 Animação por Computador • Problemas com ângulos de Euler – Existência de configurações singulares • Pode-se perder um grau de liberdade (dof) – Exemplo com Rx = -Rz: Animação por Computador • Problemas com ângulos de Euler – Não-unicidade • Ex: R(π,0,0) = R(0, π, π) • Interpolação separada de ângulos independentes pode, de vez em quando, criar resultados inesperados 8 Animação por Computador • Modelo eixo-ângulo – Existe sempre uma rotação segundo um dado eixo que conduz de uma orientação até outra – Pode-se modelar as orientações como (α,u) • Usa 3 parâmetros independentes – Como realizar a interpolação? Animação por Computador • Quaternions – Extensão dos números complexos – Quaternions unitários 9 Animação por Computador • Modelização usando quaternions – Eixo, ângulo de rotação – Vectores num espaço a 3D Animação por Computador • Para realizar rotações • O produto de 2 quaternions • Rotação de um vector P • Matriz-operador 10 Animação por Computador • Analogias com vectores 3D – Composição – Inverso – Produto com escalar Animação por Computador • Analogias com vectores 3D – Distância – Interpolação – Médio 11 Animação por Computador • Aproximação iterativa a splines Animação por Computador • Interpolação gradual de quaternions – Por analogia com aproximação a splines consegue-se caminho aproximativo por troços lineares quase contínuo 12 Animação por Computador • Utilização dos vários modelos de rotação – Matrizes • Projecções são eficientes – Ângulos de Euler • Modelização intuitiva • Controlo independente – Quaternions • Boas interpolações Animação por Computador • Na prática • Maioria dos toolkits oferece interfaces (ângulo, eixo) • Pode-se simular ângulos de Euler usando uma hierarquia de sistemas de eixos (por ordem inversa) e rodando segundo o eixo desejado • Ex: ângulos Euler XYZ 13