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

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

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

Apresentações semelhantes


Apresentação em tema: "Animação por Computador CRAb – Grupo de Computação Gráfica Departamento de Computação UFC."— Transcrição da apresentação:

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

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

3 2. Background técnico

4 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 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 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 xMxM yMyM zMzM

7 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 xMxM yMyM zMzM xMxM yMyM zMzM xMxM yMyM zMzM ywyw zwzw xwxw

8 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 xcxc ycyc zczc -zc-zc

9 9 2.1 Espaços e Transformações Espaço de Clipping: Frustum transformado em um paralelepípedo 2 x 2 x 1 zczc yNyN xNxN zNzN 2 1 NDC=(Normalize d Device Coordinates)

10 Espaços e Transformações Espaço de Clipping: Frustum transformado em um paralelepípedo 2 x 2 x 1 yNyN xNxN zNzN 2 1 yNyN xNxN zNzN 2

11 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 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 Espaços e Transformações –A visão geométrica Vetores –Tensores de primeira ordem (array unidimensional com 3 1 componentes) –Têm módulo, direção e sentido –Não têm posição fixa no espaço –Transformam do sistema de coordenadas e 1 e 2 e 3 para e’ 1 e’ 2 e’ 3 de acordo com a lei

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

15 Espaços e Transformações Adição Ponto-Vetor (Translação do Ponto) P 2 =P 1 + V V P1P1 P2P2

16 Espaços e Transformações Subtração Ponto-Ponto –Determinação do vetor entre os pontos V= P 2 - P 1 V P1P1 P2P2

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

18 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 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 20 –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 2.1 Espaços e Transformações Propriedades de Um grupo

21 21 –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 2.1 Espaços e Transformações

22 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 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 u v u+v

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

25 Espaços e Transformações Somas afins P = Q +  v –Possível encontrar um ponto R tal que v = R – Q –Assim P = Q +  (R – Q) =  R + (1 –  Q =   R +   Q   +   = 1 v Q P(  ) R  

26 Espaços e Transformações Convexidade –Segmento de linha é um objeto convexo –Convex hull (Fecho convexo) dos pontos P i, i = 1, 2, …, n é o conjunto de pontos P definido pela soma afim dos n pontos P =  1 P 1 +  2 P 2 + … +  n P n  1 +  2 + … +  n = 1  i > 0, i = 1, 2, …, n

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

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

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

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

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

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

33 Espaços e Transformações Theorem 1.4: Let e 1, e 2, e 3 be an orthonormal basis and let a = a 1 e 1 + a 2 e 2 + a 3 e 3 b = b 1 e 1 + b 2 e 2 + b 3 e 3. Then

34 Espaços e Transformações Let (u 1, u 2, u 3 ) and (v 1, v 2, v 3 ) be ordered bases and let Then (v 1, v 2, v 3 ) has the same orientation of (u 1, u 2, u 3 ) if Right-handed basis and opposite orientation Left-handed basis

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

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

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

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

39 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 Espaços e Transformações Planos –Extensão das linhas paramétricas –Três pontos não alinhados determinam um plano único S(  ) = (1-  P 0 +  Q, 0  1 T(  ) =  1  S +  R, 0  1 T(  ) =  1  S +  R = P 0 +  1  Q-P 0  +  R-P 0   T(  ) = P 0 +  ’u +  ’v   P 0 QR –Se P está no plano, então P – P 0 =  ’u +  ’v n. (P – P 0 ) = (u x v). (P – P 0 ) = 0 S()S() P0P0 R Q T(  ) n

41 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 =  1 v 1 +  2 v 2 +  3 v 3 P = P 0 +  1 v 1 +  2 v 2 +  3 v 3 P0P0 v1v1 v2v2 v3v3

42 Espaços e Transformações Representações e n-tuplas Suponha que e 1, e 2, e 3 formam uma base v =  1 e 1 +  2 e 2 +  3 e 3 v = (  1,  2,  3 ) (representação 3-tupla)

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

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

45 Espaços e Transformações Exemplo de mudança de representação v1v1 v2v2 v3v3 u1u1 u2u2 

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

47 Espaços e Transformações Exemplo de mudança de frames v1v1 v2v2 v3v3 u 2 = v 1 + v 2 u 3 =v 1 + v 2 + v 3 u 1 = v1 Q0Q0 P0P0 A A = P v v v 3 A = Q 0 +  u 1 +  u 2 +  u 3 Q 0 = P v v v 3

48 Espaços e Transformações

49 Espaços e Transformações

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

51 Espaços e Transformações –Assim

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

53 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 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 -z c x c =x w y c =y w z c =z w w xwxw ywyw zwzw c zczc xcxc ycyc Câmera

55 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 Espaços e Transformações Restringir f a uma função linear f(  p +  q) =  f(p) +  f(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 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 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(  ) = P 0 +  d Transformação:A P(  ) = A(P 0 +  d)= AP 0 +  Ad Linha final: P’(  ) = P’ 0 +  d’

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

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

61 Espaços e Transformações Rotação vértice P em coordenadas polares (r,  ) irá para posição P’ = (r,  )  > 0 : rotação em sentido anti-horário  < 0 : rotação em sentido horário eiei P = ( r,  ) P’ = ( r,  ) ejej   r r

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

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

64 Espaços e Transformações Rotação em torno do eixo y –Coordenadas na forma polar: z’ = r cos (  ) z = r cos  x’ = r sen (  ) x = r sen  –Mas: cos (  )= cos . cos  - sen . sen  sen (  )= sen . cos  + sen . cos  –Assim: z’= r cos . cos  - r sen . sen  x’= r sen . cos  + r cos . sen  z’= z. cos  - x. sen  x’= x. cos  + z. sen  y z x yy

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

66 Espaços e Transformações Rotação em torno do eixo z –Coordenadas na forma polar: x’ = r cos (  ) x = r cos  y’ = r sen (  ) y = r sen  –Mas: cos (  )= cos . cos  - sen . sen  sen (  )= sen . cos  + sen . cos  –Assim: x’= r cos . cos  - r sen . sen  y’= r sen . cos  + r cos . sen  x’= x. cos  - y. sen  y’= y. cos  + x. sen  z x y zz

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

68 Espaços e Transformações Rotação em torno de um eixo // z passando pelo pivô, (x R, y R ) vértice (x, y) irá para posição (x’, y’) x y (x R, y R ) P = ( r,  ) P’ = ( r,  )   r r

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

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

71 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

72 72 P1P1 P2P2 P3P3 P4P4 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)

73 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 s x, s y, s z –Transformação básica de escala –(x’, y’, z’) = (x.s x, y.s y, z.s z ), s x, s y, s z > 0 –Mudança uniforme de Escala quando s x = s y = s z

74 74 x y 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 s x != s y

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

76 Espaços e Transformações Coordenadas do centróide B1B1 B2B2 H H/3 H/2 B 1 /2B 2 /3

77 Espaços e Transformações Escala relativa a um ponto fixo, P f x’ = ( x  x f ). s x + x f y’ = ( y  y f ). s y + y f z’ = ( z  z f ). s z + z f –Translação para a origem ( 0, 0, 0 ) –Escala em relação à origem –Translação de volta para ( x f, y f ) (x f, y f )

78 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

79 Espaços e Transformações Translação –Matriz de Translação –Forma inversa ( T -1 ) com -t x, -t y, -t z.

80 Espaços e Transformações Escala –Matriz de Escala em relação a um ponto fixo, F –A escala é uniforme quando S x = S y = S z –Forma inversa S -1 com

81 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  > 0: rotação anti-horária (a partir da origem) na regra da mão-direita

82 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 xx

83 Espaços e Transformações –Rotação em relação ao eixo-y z x y yy

84 Espaços e Transformações –Rotação em relação ao eixo-z z x y zz

85 Espaços e Transformações –Obtém-se a inversa de R x, R y ou R z com   -  como cos(-  ) = cos(  ) sen(-  ) = - sen(  ), R -1 = R T –R são matrizes ortonormais

86 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

87 87 Cisalhamento (Shear) –Cisalhamento no plano xy na direção x x’=x+  x =x + tg(  )y = x + sh x y y’ = y z’=z 2.1 Espaços e Transformações y x ypyp xpxp P y x y p’ P’ xpxp xx xx

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

89 89 –Cisalhamento no plano xy na direção y x’ = x y’=y+  y =y + tg(  )x = y + sh y x z’=z 2.1 Espaços e Transformações y x xpxp ypyp P x y x p’ P’ ypyp yy yy

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

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

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

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

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

95 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 s x = s z = 1, s y = -1 –Espelho yz: x  - x Equivale a s x = -1, s y = s y = 1

96 Espaços e Transformações –Espelho xy: z  - z Equivale a s x = s y = 1, s z = -1 –Espelho cuja normal é n = (n x, n y, n z ): P P’ n x y

97 Espaços e Transformações –Reflexão relativa à origem: x  - x e y  - y Equivale a s x = -1, s y = -1

98 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 Espaços e Transformações Transformação entre sistemas paralelos com origens distintas –Aplicar translação T o’o aos pontos da cena x’ x O’ O y’ y P’P’ P

100 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’ x y’ y P z z’

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

102 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(-P F ) Rotação em torno do eixo passando pela origem –R(  ) Translação de volta para a posição do ponto fixo –T(P F ) P’ = [T(P F ) R(  ) T(-P F )] P

103 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 = R x R y R z

104 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 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 P 1 P 2 (“segmento de reta orientado”) define um vetor V = (x 2 -x 1, y 2 -y 1, z 2 -z 1 ) Determinar uma forma de rotação geral de matriz usando operações com vetores y z x p1p1 p2p2 

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

107 Espaços e Transformações –Rotação sobre um eixo arbitrário y z x y z x y z x (5) (2) y z x (1) (4) y z x (3)  y z x Início p1p1 p2p2

108 Espaços e Transformações –Rotação sobre um eixo arbitrário Coordenadas de p 1 e p 2 determinam o vetor unitário û ao longo do eixo de rotação y z x p1p1 p2p2

109 Espaços e Transformações –Rotação sobre um eixo arbitrário Passo 1: Translação de p 1 para a origem y z x p1p1 p2p2

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

111 Espaços e Transformações –determinar ângulo  x entre û’ e k Encontre o cos  x Encontre o sen  x

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

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

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

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

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

117 Espaços e Transformações –Passo 4: Inverso do passo 2.2, R y (  y ) –Passo 5: Inverso do passo 2.1, R x (-  x ) –Passo 6: Inverso do passo 1, T(P 1 ) –Assim a Rotação em torno do eixo P 1 P 2

118 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 P 1 P 2 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 p1p1 p2p2

119 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 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 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 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  C Projection C Model_View vérticesC Model_View C Projection vértices

123 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 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(P x, P y, P z ) R( , v x, v y, v z ) T(-P x, -P y, -P z ) v y z x P Q P Q 1 2 3

125 Espaços e Transformações Ordem de transformações –Duas maneiras de ver a ordem de transformações C  CM n C  CM n-1 … C  CM 2 C  CM 1 MnMn M n-1 … M2M2 M1M1 v’ = M n M n-1 …M 2 M 1 v C Desempilhar Pilha

126 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 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 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 = R x (  x ) R y (  y ) R z (  z ) –E=(  x,  y,  z ): Ângulos de Euler –Considere dois conjuntos de ângulos de Euler E i e E i+1 Calcular E k = Interpolação(E i, E i+1 ) Animação não ficará suave

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

130 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 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 132 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) ≡ R x (30)R y (60)R x (45) X-Y-Z: (45, 90, 45) ≡ R z (45)R y (90)R x (45) 2.2 Representação de Orientação x y z x y z Θ x = 45 x y z Θ z = 45

133 133 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) ≡ R x (30)R y (60)R x (45) X-Y-Z: (45, 90, 45) ≡ R z (45)R y (90)R x (45) 2.2 Representação de Orientação x y z x y z Θ x = 45 x y z Θ z = 45

134 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 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 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 137 Vector applied to Point Given –Point M and –Vector V Application of V over M results in –Unique Point N M V N M V

138 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 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 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 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 142 Definition of Versor Versor –QUOCIENT between two NON-PARALLEL vectors A and B of EQUAL LENGTH –RELATIVE ORIENTATION of vectors A B

143 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 144 Right Versors A Right Versor is a Versor that applies a 90 o rotation Vector length is left unchanged as in any other Versor application A B V

145 145 Composing Versors Versor composition is the consecutive application of two versors operators A B V2V2 V1V1 C V3V3

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

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

148 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 149 Representation of Quaternions Quaternion = “A set of Four” From –the Latin Quaternio –the Greek  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 150 Opposite Quaternions The quaternion Q has an Opposite quaternion O (Q) A - A B Q O(Q)O(Q)

151 151 Opposite Quaternion Properties A - A B Q O(Q)O(Q)

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

153 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 BA QK(Q)

154 154 Conjugate Quaternion Conjugate Quaternion K(Q)=A/C –Angle (K(Q)) = Angle (Q) –Axis (K(Q)) = - Axis (Q) C BA QK(Q)

155 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 BA Q K(Q)

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

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

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

159 159 Versor of a Quaternion Versor of a Vector –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 160 Tensor of a Quaternion Tensor of a Vector –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 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 162 Tensor and Versor of a Quaternion Vector decomposed in Versor and Tensor parts Quaternion decomposed in Versor and Tensor parts

163 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 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 165 Composition of Biplanar Versors

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

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

168 168 Versor Composition is Non- Commutative V AC = V BC V AB   V AB V BC = V BA’ V C’B = V C’A’ Versors V AC and V C’ A’ have –Same angle –Different axes (different planes)

169 Fim da Aula 14

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

171 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 172 Elementary Versors

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

174 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 175 Getting a Common Denominator

176 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 177 Geometrical Interpretation of the Sum As with Vectors 1)Get a common denominator SLIDING both Vector-Arcs to a common origin 2)Add the two vectors in the numerator 3)Get the new Quotient

178 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 179 Sum of two Right Versors Index of resulting Versor = sum of indices of two versors

180 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 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 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 183 Scalar and Right Parts of Quaternions The new vector A can be expressed as a sum of two orthogonal vectors A = B S + B R –B S parallel to B and –B R orthogonal to B B A Q BSBS BRBR

184 184 Scalar and Right Parts of Quaternions Apply Scalar operator to B –Obtain B S Apply Right quaternion to B –Obtain B R B A BSBS B A Q BRBR

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

186 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 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  BSBS BRBR

188 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  BSBS BRBR

189 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 190 Product of Quaternions Two quaternions Q1 and Q2 are composed by That is equivalent to

191 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 192 Representation by four coefficients Let the representation of P and Q be Their composition P  Q is

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

194 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 195 Quaternion Algebra Consider quaternions Sum and Subtraction of quaternions

196 196 Quaternion Algebra Multiplications of primitive elements

197 197 Quaternion Algebra Multiplication of quaternions

198 198 Quaternion Algebra Conjugate of quaternions

199 199 Quaternion Algebra Norm of quaternions

200 200 Quaternion Algebra The multiplicative inverse, Q -1

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

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

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

204 204 Fórmula de Euler Série de Taylor

205 205 Fórmula de Euler Série de Taylor

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

207 207 Rotation around an axis v // = P u (v) = P u (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’  |cos  u v  +|v’  |sen  u u  v = (v - (v.u)u) cos  + u  v sen  u z y x v v’ uvuv vv v’  v //  Plane perpendicular to the direction of u

208 208 Decomposition of Rotated vector Rotation around an axis

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

210 210 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(  v + w) =  R(v) + R(w) –R(u) = u Rotation around an axis

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

212 212 Rotation around an axis

213 213 Rotation around an axis Therefore  = 2 


Carregar ppt "Animação por Computador CRAb – Grupo de Computação Gráfica Departamento de Computação UFC."

Apresentações semelhantes


Anúncios Google