A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Animação por Computador

Apresentações semelhantes


Apresentação em tema: "Animação por Computador"— Transcrição da apresentação:

1 Animação por Computador
CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

2 Sumário do Capítulo 2 2.1 Espaços e Transformações
2.2 Representação de orientação

3 2. Background técnico

4 2.1 Espaços e Transformações
CG e Animação dependem de transformações de dados Espaço do objeto → Pipepline de transformações (display pipeline) → Espaço do dispositivo Dados do objeto → Transformados como função do tempo para produzir animação

5 2.1 Espaços e Transformações
Sistemas de coordenadas Objetos e Cenários 3D sofrem transformação de mudança de sistemas de coordenadas Sistemas de coordenadas são referências para posicionamento e orientação de objetos no espaço

6 2.1 Espaços e Transformações
Existem cinco espaços com seus sistemas de coordenadas próprios Espaço do Modelo: Cada modelo tem seu próprio sistema de coordenadas xM yM zM

7 2.1 Espaços e Transformações
Espaço do Mundo (World): Todos os objetos do cenário posicionados relativo a um sistema de coordenadas comum yw xM yM zM zw xM yM zM xM yM zM xw

8 2.1 Espaços e Transformações
Espaço da Câmera: Todos os objetos do cenário posicionados relativo a um sistema de coordenadas fixo no modelo de câmera yc zc -zc xc

9 2.1 Espaços e Transformações
Espaço de Clipping: Frustum transformado em um paralelepípedo 2 x 2 x 1 yN zc zN 2 xN NDC=(Normalized Device Coordinates) 1

10 2.1 Espaços e Transformações
Espaço de Clipping: Frustum transformado em um paralelepípedo 2 x 2 x 1 yN yN xN zN 2 zN xN 1 2

11 2.1 Espaços e Transformações
Espaço do Dispositivo: xy em NDC é transformado para as dimensões em pixels na tela. z é prezervado para algoritmo de eliminação de superfícies ocultas

12 2.1 Espaços e Transformações
Escalares, Pontos e Vetores A visão geométrica Ponto Não tem tamanho nem forma Única propriedade é sua localização Escalares Tensores de ordem zero (array de um elemento) Valor não muda com mudança de sistema coordenadas Obedecem conjunto de operações Ex: massa de uma partícula

13 2.1 Espaços e Transformações
A visão geométrica Vetores Tensores de primeira ordem (array unidimensional com 31 componentes) Têm módulo, direção e sentido Não têm posição fixa no espaço Transformam do sistema de coordenadas e1 e2 e3 para e’1 e’2 e’3 de acordo com a lei

14 2.1 Espaços e Transformações
A visão geométrica Vetores -B C A Subtração vetorial C B C=0 Vetor nulo A B=-A A Adição vetorial

15 2.1 Espaços e Transformações
Adição Ponto-Vetor (Translação do Ponto) P2 =P1 + V V P1 P2

16 2.1 Espaços e Transformações
Subtração Ponto-Ponto Determinação do vetor entre os pontos V= P2 - P1 V P1 P2

17 2.1 Espaços e Transformações
Geometria livre de coordenadas (1, 1) (3, 3) 2

18 2.1 Espaços e Transformações
Visão matemática: Espaços vetoriais e Espaços afins Escalares, Pontos e Vetores são elementos de conjuntos especiais Escalares  Campos Escalares Vetores  Espaços Vetoriais Pontos + Vetores  Espaços Afins

19 2.1 Espaços e Transformações
Campo escalar, {S; +, .} S: conjunto cujos elementos são escalares Operações binárias: adição(+), multiplicação(.) Propriedades ,  S,  +   S e  .   S (Fechamento c.r.a. + e . )  +  =  +  (Comutativa c.r.a. +)  .  =  .  (Comutativa c.r.a. . )  + ( + ) = ( + ) +  (Associativa c.r.a. +)  . ( . ) = ( . ) .  (Associativa c.r.a. . )  . ( + ) = ( . ) + ( . ) (Distributiva . c.r.a. +)  + 0 = 0 +  =  ,   S (Elemento neutro da +)  . 1 = 1 .  =  ,   S (Elemento neutro da . )  + (- ) = 0 ,   S (Inverso aditivo)  . -1 = 1 ,   S (Inverso multiplicativo)

20 2.1 Espaços e Transformações
Espaço Vetorial, X sobre o Campo escalar,S X conjunto de vetores {X; +}: Grupo Abeliano Obedece às seguintes propriedades x e y  X Se x + x = x  x = 0 (vetor nulo) Se z  X e x + y = x + z  y = z Se z  X e x + y = z + y  x = z w  X w + x = y z  X x + z = y x + y = y + x X é um S-módulo, isto é ( + )x = x + x (x + y) = x + y  (x) = ( . )x 1x = x Propriedades de Um grupo

21 2.1 Espaços e Transformações
Espaço Euclidiano Espaço vetorial com uma medida de tamanho ou distância d(x,y) = Sqrt(x . y) Espaço Afim Extensão do espaço vetorial, incluindo o objeto Ponto Inclui as operações Adição vetor-ponto Subtração ponto-ponto

22 2.1 Espaços e Transformações
A visão da ciência da computação Tipos abstratos de dados vector u, v; point p, q; scalar a, b; Linguagens orientadas a objetos (C++) Classes Overloading de operadores q = p + a*v;

23 2.1 Espaços e Transformações
Tipos Abstratos de Dados geométricos Escalares: conjunto dos números reais Operações de adição e multiplicação Pontos: posições no espaço 3D Vetores: segmentos de retas, direcionais v = P - Q P = v + Q v Q P v u+v u

24 2.1 Espaços e Transformações
Linhas Lugar geométricos dos pontos gerados por operações ponto-vetor P(a) = P0 + a d (Forma paramétrica) P0 é um ponto arbitrário d é um vetor arbitrário a é um escalar Se a for > 0 P(a) é o raio que emana de P0 na direção d

25 2.1 Espaços e Transformações
Somas afins P = Q + a v Possível encontrar um ponto R tal que v = R – Q Assim P = Q + a (R – Q) = a R + (1 – a)Q = a1 R + a2Q a1 + a2 = 1 v Q P(a) R a = 1 a = 0

26 2.1 Espaços e Transformações
Convexidade Segmento de linha é um objeto convexo Convex hull (Fecho convexo) dos pontos Pi, i = 1, 2, …, n é o conjunto de pontos P definido pela soma afim dos n pontos P = a1P1 + a2P2 + … + anPn a1+ a2+ … + an = 1 ai > 0, i = 1, 2, …, n

27 2.1 Espaços e Transformações
Dot product = Scalar product (a.b) Angle between two nonzero vectors

28 2.1 Espaços e Transformações
Scalar multiplication satisfies

29 2.1 Espaços e Transformações
Scalar projection of a onto b: Pb(a) Illustration of Pb(a) Pb(a) b a q

30 2.1 Espaços e Transformações
Vector projection of a onto b: Pb(a) Illustration of Pb(a) Pb(a) b a q

31 2.1 Espaços e Transformações
Vectors a and b are orthogonal if q Pb(a) b a Pa(b)

32 2.1 Espaços e Transformações
Basis formed by three mutually orthogonal unit vectors, ei (i =1, 2, 3)

33 2.1 Espaços e Transformações
Theorem 1.4: Let e1, e2, e3 be an orthonormal basis and let a = a1e1 + a2e2 + a3e3 b = b1e1 + b2e2 + b3e3. Then

34 2.1 Espaços e Transformações
Let (u1, u2, u3) and (v1, v2, v3) be ordered bases and let Then (v1, v2, v3) has the same orientation of (u1, u2, u3) if Right-handed basis and opposite orientation Left-handed basis

35 2.1 Espaços e Transformações
Vector product = a x b

36 2.1 Espaços e Transformações
Theorem 1.5 Theorem 1.6

37 2.1 Espaços e Transformações
Vector products satisfies

38 2.1 Espaços e Transformações
Triple scalar product: a·b×c a b c

39 2.1 Espaços e Transformações
Theorem 1.7: [abc]=0 if and only if a, b, and c are linearly dependent. Theorem 1.8:

40 2.1 Espaços e Transformações
Planos Extensão das linhas paramétricas Três pontos não alinhados determinam um plano único S(a) = (1-a) P0 + aQ, 0  a  1 T(b) = (1 - b) S + b R, 0  b  1 T(a,b) = (1 - b) S + b R = P0+a (1-b)(Q-P0)+b(R-P0) T(a,b) = P0 + a’u + b’v DP0QR Se P está no plano, então P – P0 = a’u + b’v n . (P – P0 ) = (u x v) . (P – P0 ) = 0 S(a) P0 R Q T(a, b) n

41 2.1 Espaços e Transformações
Frame É especificado por um ponto (origem) e um conjunto de vetores LI (base) Todo vetor w e todo ponto P podem ser escritos como w = a1v1 + a2v2 + a3v3 P = P0 + b1v1 + b2v2 + b3v3 P0 v1 v2 v3

42 2.1 Espaços e Transformações
Representações e n-tuplas Suponha que e1, e2, e3 formam uma base v = a1e1 + a2e2 + a3e3 v = (a1, a2, a3) (representação 3-tupla)

43 2.1 Espaços e Transformações
Mudanças de sistemas de coordenadas

44 2.1 Espaços e Transformações
Mudanças de sistemas de coordenadas

45 2.1 Espaços e Transformações
Exemplo de mudança de representação v1 v2 v3 u1 u2 q

46 2.1 Espaços e Transformações
Coordenadas homogêneas Ponto Vetor

47 2.1 Espaços e Transformações
Exemplo de mudança de frames v1 v2 v3 u2 = v1 + v2 u3=v1 + v2 + v3 u1 = v1 Q0 P0 A A = P0 + 1 v1 + 1 v2 + 0 v3 Q0 = P0 + 1 v1 + 1 v v3 A = Q0 + a u1 + b u2 + g u3

48 2.1 Espaços e Transformações

49 2.1 Espaços e Transformações

50 2.1 Espaços e Transformações
Trabalhando com representações Considere a mudança de representação do frame {i, j, k, P0} para o frame {u, v, w, Q0} através da transformação {a} = [C] {b} {b}: representação no frame {i, j, k, P0} {a}: representação no frame {u, v, w, Q0} Considere a mudança inversa {b} = [D] {a} =>[D] = [C]-1

51 2.1 Espaços e Transformações
Assim

52 2.1 Espaços e Transformações
Aplicando ao exemplo anterior

53 2.1 Espaços e Transformações
Frames e tipos abstratos de dados point3 p, q; vector3 v; frame f; v = point_sub(p, q, f);

54 2.1 Espaços e Transformações
Frames no OpenGL Frame do Cenário (World Frame) Frame da Câmera (Camera Frame) Default: coincide com o frame do cenário -zc xc=xw yc=yw zc=zw w xw yw zw c zc xc yc Câmera

55 2.1 Espaços e Transformações
Transformações Afins Transformação de um ponto P em Q Q = T(P) Transformação de um vetor u em v v = R(u) Em coordenadas homogêneas, vetores e pontos são representados como matrizes colunas 4D Q = f(P) e v = f(u) (mesma transformação)

56 2.1 Espaços e Transformações
Restringir f a uma função linear f(ap + bq) = af(p) + bf(q) Importância Conhecendo a transformação de vértices Obtém-se a transformação de combinações lineares de vértices através de combinações lineares de transformações de vértices f pode ser representada por uma matriz 4x4, [A]

57 2.1 Espaços e Transformações
Matriz de Transformação não-singular Mudança de frame Mudança do vértice dentro do mesmo frame Matriz Vetor Ponto

58 2.1 Espaços e Transformações
Transformação de vetores Envolve apenas nove coeficientes da matriz 9 graus de liberdade Transformação de pontos Envolve 12 coeficientes da matriz 12 graus de liberdade Transformações afins preservam linhas Linha original: P(a) = P0 + a d Transformação:A P(a) = A(P0 + a d)= AP0 + a Ad Linha final: P’(a) = P’0 + a d’

59 2.1 Espaços e Transformações
Translação Operação ponto-vetor P’ = P + t x’ = x + tx y’ = y + ty z’ = z + tz P P’ t

60 2.1 Espaços e Transformações
Translação Somar o vetor de translação t = (tx, ty, tz) aos vértices para reposicionar objetos y P’ = P + t x’ = x + tx y’ = y + ty z’ = z + tz P’=(x’, y’,z’) t = ( tx, ty, tz) P = (x, y, z) x 2

61 2.1 Espaços e Transformações
Rotação vértice P em coordenadas polares (r, a) irá para posição P’ = (r, a+q) q > 0 : rotação em sentido anti-horário q < 0 : rotação em sentido horário ei P = ( r, a ) P’ = ( r, a + q ) ej a q r 2

62 2.1 Espaços e Transformações
Rotação em torno do eixo x Coordenadas na forma polar: y’ = r cos ( a + q ) y = r cos a z’ = r sen ( a + q ) z = r sen a Mas: cos ( a + q ) = cos a . cos q - sen a . sen q sen ( a + q ) = sen a . cos q + sen q . cos a Assim: y’ = r cos a . cos q r sen a . sen q z’ = r sen a . cos q r cos a . sen q y’ = y cos q z sen q z’ = z cos q y sen q z qx x y 6

63 2.1 Espaços e Transformações
Rotação em torno do eixo x

64 2.1 Espaços e Transformações
Rotação em torno do eixo y Coordenadas na forma polar: z’ = r cos ( a + q ) z = r cos a x’ = r sen ( a + q ) x = r sen a Mas: cos ( a + q ) = cos a . cos q - sen a . sen q sen ( a + q ) = sen a . cos q + sen q . cos a Assim: z’ = r cos a . cos q r sen a . sen q x’ = r sen a . cos q r cos a . sen q z’ = z cos q x sen q x’ = x cos q z sen q x qy y z 6

65 2.1 Espaços e Transformações
Rotação em torno do eixo y

66 2.1 Espaços e Transformações
Rotação em torno do eixo z Coordenadas na forma polar: x’ = r cos ( a + q ) x = r cos a y’ = r sen ( a + q ) y = r sen a Mas: cos ( a + q ) = cos a . cos q - sen a . sen q sen ( a + q ) = sen a . cos q + sen q . cos a Assim: x’ = r cos a . cos q r sen a . sen q y’ = r sen a . cos q r cos a . sen q x’ = x cos q y sen q y’ = y cos q x sen q y qz z x 6

67 2.1 Espaços e Transformações
Rotação em torno do eixo z

68 2.1 Espaços e Transformações
Rotação em torno de um eixo // z passando pelo pivô, (xR, yR) vértice (x, y) irá para posição (x’, y’) y P = ( r, a ) P’ = ( r, a + q ) a q r (xR, yR) x 2

69 2.1 Espaços e Transformações
Rotação em torno do eixo //z pelo pivô, (xR,yR, zR) Equivale a Translação para a origem ( 0, 0, 0 ) Rotação em relação ao eixo z Translação de volta para (xR,yR, zR)

70 2.1 Espaços e Transformações
Rotação em torno de eixo // z pelo pivô (xR, yR) x’ = (x - xR) . cos q - (y - yR) . sen q + xR y’ = (y - yR) . cos q + (x - xR) . sen q + yR 6

71 2.1 Espaços e Transformações
Rotação para objetos definidos com curvas transformações geométricas aplicadas a coordenadas de definição implementações adaptadas à geometria do objeto Exemplos Círculos rotação ou translação: usar coordenadas do centro, e escala: amplificar os raios 9

72 2.1 Espaços e Transformações
Rotação para objetos definidos com curvas Segmentos de curvas transformação: usar coordenadas de definição da curva (Pontos de controle) P1 P2 P3 P4 10

73 2.1 Espaços e Transformações
Escala É uma transformação afim que altera a forma do objeto (non-rigid-body) Multiplicar os valores das coordenadas por fatores de escala sx, sy, sz Transformação básica de escala (x’, y’, z’) = (x.sx, y.sy, z.sz ), sx, sy, sz > 0 Mudança uniforme de Escala quando sx = sy = sz 2

74 2.1 Espaços e Transformações
Efeito da transformação de escala mudança do tamanho do objeto deslocamento do objeto distorção se sx != sy x y 4

75 2.1 Espaços e Transformações
Escala relativa a um ponto fixo, Pf Pf = ( xf, yf ) se ( xf, yf ) for centróide  objeto não move senão  deslocamento em relação a Pf x y centróide 4

76 2.1 Espaços e Transformações
Coordenadas do centróide B1 B2 H H/3 H/2 B1/2 B2/3

77 2.1 Espaços e Transformações
Escala relativa a um ponto fixo, Pf x’ = ( x - xf ) . sx + xf y’ = ( y - yf ) . sy + yf z’ = ( z - zf ) . sz + zf Translação para a origem ( 0, 0, 0 ) Escala em relação à origem Translação de volta para ( xf, yf ) (xf, yf) 5

78 2.1 Espaços e Transformações
Transformações em Coordenadas Homogêneas Usando-se coordenadas homogêneas, as transformações geométricas são escritas como 9

79 2.1 Espaços e Transformações
Translação Matriz de Translação Forma inversa ( T-1) com -tx, -ty, -tz. 10

80 2.1 Espaços e Transformações
Escala Matriz de Escala em relação a um ponto fixo, F A escala é uniforme quando Sx = Sy = Sz Forma inversa S-1 com 11

81 2.1 Espaços e Transformações
Rotação Em 3D, as rotações podem ser sobre qualquer reta As rotações mais simples são sobre os eixos de coordenadas Outras rotações são equivalentes a combinações das rotações dos 3 eixos-coordenados (mais T e T’). Para todas as rotações 3D sobre eixos de coordenadas q > 0: rotação anti-horária (a partir da origem) na regra da mão-direita 12

82 2.1 Espaços e Transformações
Rotação em relação ao eixo-x Rotações sobre os outros dois eixos são obtidas com permutação cíclica x  y  z  x z x y qx 14

83 2.1 Espaços e Transformações
Rotação em relação ao eixo-y z x y qy 13

84 2.1 Espaços e Transformações
Rotação em relação ao eixo-z z x y qz 13

85 2.1 Espaços e Transformações
Obtém-se a inversa de Rx, Ry ou Rz com q  - q como cos(-q) = cos(q) sen(-q) = - sen(q), R-1 = RT R são matrizes ortonormais 15

86 2.1 Espaços e Transformações
Outras rotações são obtidas por composição de matrizes de transformação Transformação do eixo de rotação em um eixo de coordenada Rotação especificada em torno do eixo transformado Transformação do eixo de rotação de volta para a posição e orientação originais 16

87 2.1 Espaços e Transformações
Cisalhamento (Shear) Cisalhamento no plano xy na direção x x’ = x+Dx = x + tg(g)y = x + shxy y’ = y z’ = z y x yp xp P yp’ P’ Dx

88 2.1 Espaços e Transformações
Cisalhamento no plano xy na direção x

89 2.1 Espaços e Transformações
Cisalhamento no plano xy na direção y x’ = x y’ = y+Dy = y + tg(g)x = y + shyx z’ = z y x xp yp P xp’ P’ Dy

90 2.1 Espaços e Transformações
Cisalhamento no plano xy na direção y

91 2.1 Espaços e Transformações
Cisalhamento no plano xz na direção x

92 2.1 Espaços e Transformações
Cisalhamento no plano xz na direção z

93 2.1 Espaços e Transformações
Cisalhamento no plano yz na direção y

94 2.1 Espaços e Transformações
Cisalhamento no plano yz na direção z

95 2.1 Espaços e Transformações
Outras Transformações Reflexão: imagem de objeto em relação a um plano Espelho xz: y  - y Equivale a sx = sz = 1, sy = -1 Espelho yz: x  - x Equivale a sx = -1, sy = sy = 1

96 2.1 Espaços e Transformações
Espelho xy: z  - z Equivale a sx = sy = 1, sz = -1 Espelho cuja normal é n = (nx, ny, nz): P P’ n x y

97 2.1 Espaços e Transformações
Reflexão relativa à origem: x ® - x e y ® - y Equivale a sx = -1, sy = -1

98 2.1 Espaços e Transformações
Transformações entre sistemas de coordenadas Usado em Transformações de Visualização Transformações de Modelagem Transformação entre sitemas paralelos com origens distintas Transformações entre sistemas centrados na mesma origem com orientações distintas

99 2.1 Espaços e Transformações
Transformação entre sistemas paralelos com origens distintas Aplicar translação To’o aos pontos da cena O’ O y’ y P’ P x’ x

100 2.1 Espaços e Transformações
Transformações entre sistemas centrados na mesma origem com orientações distintas Construir matriz de transformação cujas linhas são vetores unitários nas direções de x’ y’ e z’ representados por suas componentes no sistema x y z x y’ y P z z’ x’

101 2.1 Espaços e Transformações
Assim x’ x y’ y P z z’

102 2.1 Espaços e Transformações
Rotação em torno de um ponto fixo Utilizar concatenação de 3 operações Translação do ponto fixo para a origem T(-PF) Rotação em torno do eixo passando pela origem R(q) Translação de volta para a posição do ponto fixo T(PF) P’ = [T(PF) R(q) T(-PF)] P

103 2.1 Espaços e Transformações
Rotação geral É possível expressar como concatenação de rotações em torno de z, y e x R = RxRyRz

104 2.1 Espaços e Transformações
Transformação de instância Usar um objeto protótipo Gerar instância desse objeto Aplicar transformações para a forma desejada

105 2.1 Espaços e Transformações
Rotação sobre um eixo arbitrário Definir o eixo de rotação dois pontos sobre a reta ou um ponto e um vetor-direção O segmento P1P2 (“segmento de reta orientado”) define um vetor V = (x2-x1, y2-y1, z2-z1) Determinar uma forma de rotação geral de matriz usando operações com vetores y z x p1 p2 q 17

106 2.1 Espaços e Transformações
Rotação sobre um eixo arbitrário Translação do eixo de rotação para a origem Rotações para alinhar o eixo de rotação com o eixo z (ou outro eixo) Rotação sobre o eixo z Inversão das rotações no passo 2 Inversão da translação do passo 1 1

107 2.1 Espaços e Transformações
Rotação sobre um eixo arbitrário y z x Início p1 p2 y z x (1) y (2) x z y y z x y z x (3) q (4) (5) x z 2

108 2.1 Espaços e Transformações
Rotação sobre um eixo arbitrário Coordenadas de p1 e p2 determinam o vetor unitário û ao longo do eixo de rotação y z x p1 p2 3

109 2.1 Espaços e Transformações
Rotação sobre um eixo arbitrário Passo 1: Translação de p1 para a origem y z x p1 p2 4

110 2.1 Espaços e Transformações
Passo 2.1: Posicionamento do eixo de rotação no plano xz determinar ângulo qx entre û’ e k girar de um ângulo qx sobre o eixo x y (0, b, c) = û’ û =(a, b, c) x qx z 5

111 2.1 Espaços e Transformações
determinar ângulo qx entre û’ e k Encontre o cos qx Encontre o sen qx 6

112 2.1 Espaços e Transformações
girar de um ângulo qx sobre o eixo x

113 2.1 Espaços e Transformações
Passo 2.2: Alinhamento do eixo de rotação com o eixo z determinar ângulo qy entre û” e k girar û” de um ângulo -qy sobre o eixo y y û =(a, b, c) x z qy

114 2.1 Espaços e Transformações
determinar ângulo qy entre û” e k Encontre o cos qy Encontre o sen qy

115 2.1 Espaços e Transformações
girar de um ângulo – qy sobre o eixo x

116 2.1 Espaços e Transformações
Passo 3: Rotação de q sobre o eixo z

117 2.1 Espaços e Transformações
Passo 4: Inverso do passo 2.2, Ry(qy) Passo 5: Inverso do passo 2.1, Rx(-qx) Passo 6: Inverso do passo 1, T(P1) Assim a Rotação em torno do eixo P1P2

118 2.1 Espaços e Transformações
Rotação sobre um eixo arbitrário Maneira alternativa Construir uma base ortogonal i’ j’ k’ tal que k’ seja o vetor unitário na direção P1P2 Transformar os pontos da cena para esse sistema de coordenadas Girar em torno de z’ Transformar os ponto para o sistema original y z x p1 p2

119 2.1 Espaços e Transformações
Matrizes de Transformação no OpenGL A Matriz de transformação corrente Aplicada aos vértices subseqüentes à sua montagem É uma matriz 4 x 4 Inicializada como a matriz identidade Modificada por pós-multiplicação de matrizes C  CT (Translação) C  CS (Escala) C  CR (Rotação)

120 2.1 Espaços e Transformações
Definida diretamente com o comando glLoadMatrix{fd}(M); C  M M é um array com 16 elementos de tipo float ou double que compõem 4 a 4 as colunas de C

121 2.1 Espaços e Transformações
Modificada com o comando glMultMatrix{fd}(M); C  CM M é um array com 16 elementos de tipo float ou double que compõem 4 a 4 as colunas da matriz

122 2.1 Espaços e Transformações
Os vértices são transformados pela matriz corrente resultante de dois modos GL_PROJECTION (modo de projeção) GL_MODELVIEW (modo de modelagem e visualização) glMatrixMode(modo): Seleciona um dos dois modos C  CProjectionCModel_View vértices CModel_View CProjection

123 2.1 Espaços e Transformações
Rotação, translação e escala glRotatef(ângulo, vx, vy, vz); Ângulo em graus (vx, vy, vz) vetor na direção da rotação glTranslatef(dx, dy, dz); (dx, dy, dz) vetor de deslocamento glScalef(sx, sy, sz); sx, sy, sz: fatores de escala

124 2.1 Espaços e Transformações
Rotação em torno de um ponto fixo Composição de transformações glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(Px, Py, Pz); glRotatef(ângulo, vx, vy, vz); glTranslatef(-Px, -Py, -Pz); v’ = T(Px, Py, Pz) R(a, vx, vy, vz) T(-Px, -Py, -Pz) v y z x P Q 1 2 3

125 2.1 Espaços e Transformações
Ordem de transformações Duas maneiras de ver a ordem de transformações C  CMn C  CMn-1 C  CM2 C  CM1 Mn Mn-1 M2 M1 Desempilhar Pilha v’ = MnMn-1…M2M1 v C

126 2.1 Espaços e Transformações
Loading, pushing, e popping de matrizes Loading matix M como matriz corrente glLoadMatrixf(M); Salvando a matriz corrente na pilha glPushMatrix() Retirando a matriz da pilha e tornando-a corrente glPopMatrix()

127 2.1 Espaços e Transformações
Rotações suaves A partir dos key-frames indicados gerar aviões em posições intermediárias ao longo da rota, interpolando as orientações

128 2.1 Espaços e Transformações
As orientações dos aviões nos key-frames são obtidas através de matrizes de rotação R = Rx(qx) Ry(qy) Rz(qz) E=(qx, qy, qz): Ângulos de Euler Considere dois conjuntos de ângulos de Euler Ei e Ei+1 Calcular Ek = Interpolação(Ei, Ei+1) Animação não ficará suave

129 2.1 Espaços e Transformações
Modificar a orientação interpolando entre os vetores vermelhos como no caso da trackball

130 2.1 Espaços e Transformações
Rotações incrementais Como no caso da trackball virtual Achar o círculo ao longo da superfície esférica que leva de uma orientação à outra Incrementar o ângulo de rotação ao longo do eixo de rotação v = (dx, dy, dz)

131 2.2 Representação de Orientação
Como representar orientações de objetos No instante t No instante t + ∆t Interpolar as orientações entre os dois instantes de tempo

132 2.2 Representação de Orientação
Representação de Ângulo fixo Eixos de rotação são fixos Ângulos especificam rotação em torno desses eixos de rotação Exemplos X-Y-X: (45, 60, 30) ≡ Rx(30)Ry(60)Rx(45) X-Y-Z: (45, 90, 45) ≡ Rz(45)Ry(90)Rx(45) x y z x y z Θx= 45 y Θz= 45 x z

133 2.2 Representação de Orientação
Representação de Ângulo fixo Eixos de rotação são fixos Ângulos especificam rotação em torno desses eixos de rotação Exemplos X-Y-X: (45, 60, 30) ≡ Rx(30)Ry(60)Rx(45) X-Y-Z: (45, 90, 45) ≡ Rz(45)Ry(90)Rx(45) x y z x y z Θx= 45 y Θz= 45 x z

134 2.2 Representação de Orientação
Quaternions Quaternions are commonly used to represent rotations They were introduced by William Hamilton ( ) [1] Quaternions were conceived as Geometrical Operators A Complete Calculus of Quaternions was introduced by Hamilton [2]

135 Definition of Vector It is a line segment with orientation
It represents the relative position of two points Example: point N with respect to M M N

136 Hamilton’s Motivation for Quaternions
Create a Mathematical Concept to represent RELATIONSHIP between two VECTORS Similar to the way a Vector represents RELATIONSHIP between two POINTS

137 Vector applied to Point
Given Point M and Vector V Application of V over M results in Unique Point N M V N

138 Quaternion applied to Vector
Hamilton wanted that given Vector V and Quaternion Q Application of Q over V results in Unique VectorW V Q Q V W

139 Quatenion Rationale Vector is completely defined by
Length Orientation To define a vector in terms of another vector  a Quaternion has to represent Relative Length Relative Orientation

140 Definition of Scalar Scale
RATIO between the lengths of two PARALLEL vectors A and B RELATIVE LENGTH of vectors A B s = Scale

141 Scalar - Vector Operations
S is the Quotient between two PARALLEL vectors A and B A Scalar is an Operator that Changes the SCALE of the vector Keeps its orientation unchanged

142 Definition of Versor Versor
QUOCIENT between two NON-PARALLEL vectors A and B of EQUAL LENGTH RELATIVE ORIENTATION of vectors A B

143 Versor - Vector Operations
V is the Geometric Quotient between two NON-PARALLEL vectors of EQUAL LENGTH A and B A Versor is an Operator that Changes the ORIENTATION of the vector Keeps its LENGTH unchanged

144 Right Versors A Right Versor is a Versor that applies a 90o rotation
Vector length is left unchanged as in any other Versor application A B V

145 Composing Versors Versor composition is the consecutive application of two versors operators A B V2 V1 C V3

146 Composing Right Versors
A B V - B (-1) is the INVERSION operator Double application of a right versor to a vector Inverts the direction of a vector

147 Definition of Quaternion
Geometrical Quotient of two vectors A and B Operating on a vector, changes its ORIENTATION LENGTH

148 Quaternion Characteristics
Axis(Q) = Unit Vector perpendicular to the plane of rotation Angle(Q) = Angle between the vectors in the quotient Index(Q) = In a Right Quaternion is the Axis(Q) multiplied by the length ratio of the two vectors in the quotient

149 Representation of Quaternions
Quaternion = “A set of Four” From the Latin Quaternio the Greek tetraktuV (TETRAKTUS) The combined operation of Scalar and Versor requires 4 numbers: 1 for Scale 1 for Angle 2 for Orientation (common plane) Quaternion = Scalar Versor

150 Opposite Quaternions The quaternion Q has an Opposite quaternion O (Q)
B Q O(Q)

151 Opposite Quaternion Properties
O(Q) B A Q

152 Reciprocal Quaternions
The quaternion Q: Reciprocal of Q: Composition (1) is an Identity Operator A B Q R(Q)

153 Conjugate Quaternion Given
Vectors A and B and Quotient Q=A/B Geometric reflection of vector B over vector A will be vector C C B A Q K(Q)

154 Conjugate Quaternion Conjugate Quaternion K(Q)=A/C
Angle (K(Q)) = Angle (Q) Axis (K(Q)) = - Axis (Q) C B A Q K(Q)

155 Norm of a Quaternion The Norm is the composition of a Quaternion with its Conjugate The rotation of K(Q) compensates the rotation of Q Producing a parallel vector N(Q) is a scalar operator C B A Q K(Q)

156 Square of a Quaternion Defined as applying Q twice C B A Q Q2

157 Composing Right Quaternions
Succesive application of a Right Quaternion over a Vector results in a Vector in the opposite direction A - A B Q C

158 Composing Right Quaternions
The square of any right quaternion is a NEGATIVE scalar operator A - A B Q C

159 Versor of a Quaternion Versor of a Vector Versor of a Quaternion
Unit vector parallel to the vector Versor of a Quaternion Quotient of the Versors of the vectors It is the part of the Quaternion that represents Relative Orientation

160 Tensor of a Quaternion Tensor of a Vector Tensor of a Quaternion
Length of the vector Tensor of a Quaternion Quotient of the Tensors of the vectors It is the part of the Quaternion that represents Relative Scale

161 Tensor and Versor of a Quaternion
Versor operator Applies VERSION to a vector Changes vector’s orientation Tensor operator Applies TENSION to a vector Stretches the vector and change its length

162 Tensor and Versor of a Quaternion
Vector decomposed in Versor and Tensor parts Quaternion decomposed in Versor and Tensor parts

163 Vector - Arcs Versors represented on the surface of a unit sphere
Versor V moves point B to point A Minimum Arc joining points B and A is defined as Vector-Arc

164 Sliding Vector - Arcs Vectors can be translated on a plane
Vector arcs can freely slide along the great circle and still represent the SAME Versor

165 Composition of Biplanar Versors

166 Multiplication and Division of Biplanar Versor
Spherical Triangle ABC Used to define versor operations Analogous to parallelogram rule for vectors

167 Multiplication and Division of Biplanar Versor
Multiplication of Versors like the sum of vectors Division of Versors like the difference of vectors

168 Versor Composition is Non-Commutative
VAC = VBCVAB   VABVBC = VBA’ VC’B = VC’A’ Versors VAC and VC’ A’ have Same angle Different axes (different planes)

169 Fim da Aula 14

170 Composition of two Orthogonal Right Versors
Multiplication of two orthogonal Right Versors produce a Right Versor orthogonal to them When order is reversed C A B

171 Square of Elementary Versors
The Square of an operator is the operator applied twice The square of Right Versors is always the (-1) Operator

172 Elementary Versors

173 Index of Right Quaternions
Is the Axis of the quaternion Scaled by the ratio of lengths

174 Sum of Versors Versors are Quotients
They can be summed ONLY when they have a COMMON DENOMINATOR A Common Denominator can ALWAYS be found

175 Getting a Common Denominator

176 Getting a Common Denominator
Slide both versors along their great circles until their origins coincide The vector B’ in the intersection is the common denominator

177 Geometrical Interpretation of the Sum
As with Vectors Get a common denominator SLIDING both Vector-Arcs to a common origin Add the two vectors in the numerator Get the new Quotient

178 Sum of two Right Versors
It is always a right quaternion Its plane BISECTS those of the original two versors and has a Scalar characteristic > 1

179 Sum of two Right Versors
Index of resulting Versor = sum of indices of two versors

180 Multiplying a Right Versor by a Scalar
Multiplication by a Scalar Affects only Scalar part of the Right Versor Modifies the length ratio of the vectors in the Quotient

181 Right Versor in terms of Orthogonal Right Versor
If the Orthogonal Right Versors i, j, k are multiplied by Scalars x, y, z Their sum will be a Right Versor whose axis has (x, y, z) as components

182 Scalar and Right Parts of Quaternions
A Quaternion operator applied to a vector B performs an operation that produces another vector A B A Q

183 Scalar and Right Parts of Quaternions
The new vector A can be expressed as a sum of two orthogonal vectors A = BS + BR BS parallel to B and BR orthogonal to B B A Q BS BR

184 Scalar and Right Parts of Quaternions
Apply Scalar operator to B Obtain BS Apply Right quaternion to B Obtain BR B A BS Q BR

185 Tensor and Versor Part of a Quaternion
Same operation can be decomposed in Tensor and Versor Operators

186 Scalar and Right versus Tensor and Versor
Scalar and Right parts are representations in rectangular coordinates Tensor and Versor parts are representations in polar coordinates

187 Quaternions as Four Coefficients
Let L be the Ratio of lengths between vectors A and B Thus, the scalar factor S is B A q BS BR

188 Quaternions as Four Coefficients
Let L be the Ratio of lengths between vectors A and B Thus, the Tensor of the Right part B A q BS BR

189 Quaternions as Four Coefficients
Then, the Quaternion Q can be written as Q = x i +y j +z k +w w (real) is Scalar part (x i +y j +z k) is the Right part

190 Product of Quaternions
Two quaternions Q1 and Q2 are composed by That is equivalent to

191 Product of Quaternions
Consider the composition Q = Q1  Q2 Tensor T(Q)=T(Q1)T(Q2) Versor U(Q) = U(Q1)  U(Q2)

192 Representation by four coefficients
Let the representation of P and Q be Their composition P  Q is

193 Representation by four coefficients
Let the representation of P and Q be Their composition P  Q is

194 Rotating a Vector (Finally !!)
A Quaternion q = (x, y, z, w) rotates a Vector v by using the product v’ = q  v  q-1 = q  (v  q-1 ) Which can be reduced to a Matrix-Vector multiplication L(q) R(q-1)v

195 Quaternion Algebra Consider quaternions
Sum and Subtraction of quaternions

196 Quaternion Algebra Multiplications of primitive elements

197 Quaternion Algebra Multiplication of quaternions

198 Quaternion Algebra Conjugate of quaternions

199 Quaternion Algebra Norm of quaternions

200 Quaternion Algebra The multiplicative inverse, Q-1

201 Quaternion Algebra The Selection function, W(Q)
Dot product of two quaternions

202 Quaternion Algebra Unit quaternion has N(Q)=1 Represented by

203 Quaternion Algebra Extension of Euler’s identity
Power of a unit quaternion

204 Fórmula de Euler Série de Taylor

205 Fórmula de Euler Série de Taylor

206 Quaternion Algebra Extension of Euler’s identity
Logarithm of a unit quaternion Non-commutativity of quaternion multiplication disallows log and exp identities

207 Rotation around an axis
z y x v v’ uv v v’ v// q Plane perpendicular to the direction of u v// = Pu(v) = Pu(v)u = (v.u)u v = v - v// = v - (v.u)u uv = |v|u(Plano de u e v) |v| = | uv | = |v’| v’ = |v’|cosquv +|v’|senquuv = (v - (v.u)u) cosq + uv senq

208 Rotation around an axis
Decomposition of Rotated vector

209 Rotation around an axis
Rotation using a unit quaternion Q=cos(q)+u sin(q) Vector v is rotated of 2q about the axis defined by the unit vector u

210 Rotation around an axis
Conditions to prove v’ is a 3D vector W(v’) = 0 R is a length preserving operator N(v’) = N(v) R is a linear operator R(av + w) = aR(v) + R(w) R(u) = u

211 Rotation around an axis
v w u, v, w are orthonormal 3D vectors Suppose v is rotated by f with the unit quaternion of axis u v’=qvq*  v.v’=cos(f)

212 Rotation around an axis

213 Rotation around an axis
Therefore f = 2q


Carregar ppt "Animação por Computador"

Apresentações semelhantes


Anúncios Google