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

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

INF 1366 – Computação Gráfica Interativa Transformações

Apresentações semelhantes


Apresentação em tema: "INF 1366 – Computação Gráfica Interativa Transformações"— Transcrição da apresentação:

1 INF 1366 – Computação Gráfica Interativa Transformações
Alberto B. Raposo Alberto Raposo – PUC-Rio

2 Sistemas de Coordenadas
Objetos em Computação Gráfica possuem descrições numéricas (modelos) que caracterizam suas formas e dimensões. Esses números se referem a um sistema de coordenadas, normalmente o sistema Cartesiano de coordenadas: x, y e z. Em alguns casos, precisamos de mais de um sistema de coordenadas: Um sistema local para descrever partes individuais de uma máquina, por exemplo, que pode ser montada especificando-se a relação de cada sistema local das várias peças. John Dingliana, 2004 Alberto Raposo – PUC-Rio

3 Transformações Em alguns casos, objetos exibem simetrias, de modo que apenas parte deles precisa ser descrita, pois o resto pode ser construído por reflexão, rotação e/ou translação do pedaço original. Um projetista pode querer visualizar um objeto sob vários pontos de vista, rotacionando-o ou movendo uma câmera virtual. Em animação, um ou mais objetos podem precisar se mover em relação ao outro, de modo que seus sistemas de coordenadas locais devam ser transladados e rotacionados ao longo da animação. John Dingliana, 2004 Alberto Raposo – PUC-Rio

4 Exemplo 1 Partes do objeto definidas em sistemas de coordenadas locais: Objeto “montado” por meio de transformação das partes constituintes: etc... Alberto Raposo – PUC-Rio John Dingliana, 2004

5 Exemplo 2 5 etapas de uma animação de um cubo girando
A cada quadro da animação, o objeto é transformado (rotação, nesse caso). O objeto também poderia ser transformado pela mudança de tamanho (escalamento), sua forma (deformação), ou sua localização (translação). Outros efeitos de animação são obtidos sem alterar o objeto em si, mas a forma como ele é visualizado (transformação window to viewport) a cada quadro (por exemplo, um zoom). John Dingliana, 2004 Alberto Raposo – PUC-Rio

6 Transformações Há 2 formas de se enxergar uma transformação
Uma Transformação de Objeto altera as coordenadas de cada ponto de acordo com alguma regra, mantendo o sistema de coordenadas inalterado. Uma Transformação de Coordenadas produz um sistema de coordenadas diferente, e então representa todos os pontos originais nesse novo sistema. Cada maneira tem suas vantagem, e são intimamente relacionadas. John Dingliana, 2004 Alberto Raposo – PUC-Rio

7 TRANSFORMAÇÃO DE OBJETO
1,1 .4, 2 John Dingliana, 2004 TRANSFORMAÇÃO DE COORDENADAS (1,1) (1,1) Alberto Raposo – PUC-Rio

8 Classes de Transformações
Euclidianas / Corpos Rígidos de Similaridade Lineares Afins Projetivas Alberto Raposo – PUC-Rio

9 Transformações Euclidianas
Identidade Preservam distâncias Preservam ângulos Translação Corpos Rígidos / Euclidianas Identidade Translação Rotação Rotação MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio

10 Transformações de Similaridade
Preservam ângulos Similaridades Escalamento Isotrópico Euclidianas Escalamento Isotrópico Identidade Translação Rotação MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio

11 Transformações Lineares
Escalamento Reflexão Shear Similaridades Linear Euclidianas Escalamento Identidade Translação Escalaento Isotrópico Reflexão Rotação Shear MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio

12 Transformações Lineares
L(p + q) = L(p) + L(q) L(ap) = a L(p) MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio

13 Escalaento Isotrópico
Transformações Afins Preservam linhas paralelas Afins Similaridades Linear Euclidianas Escalamento Identidade Translação Escalaento Isotrópico Reflexão Rotação Shear Alberto Raposo – PUC-Rio

14 Transformações Projetivas
preservam linhas Projetivas Afins Similaridades Linear Euclidianas Escalamento Identidade Translação Escalaento Isotrópico Reflexão Rotação Shear Alberto Raposo – PUC-Rio Perspectiva

15 Perpectiva Perspectiva é um dos fatores que dá “aparência 3D” às cenas
Alberto Raposo – PUC-Rio

16 Coordenadas de modelagem
Transformações 2D Coordenadas de modelagem Escalamento Translação y D. Brogan, Univ. of Virginia x Escalamento Rotação Translação Coordenadas do mundo Alberto Raposo – PUC-Rio

17 Coordenadas de modelagem
Transformações 2D Coordenadas de modelagem y D. Brogan, Univ. of Virginia x Localização inicial em (0, 0) com eixos x e y alinhados Alberto Raposo – PUC-Rio

18 Coordenadas de modelagem
Transformações 2D Coordenadas de modelagem y D. Brogan, Univ. of Virginia x Scale .3, .3 Rotate -90 Translate 5, 3 Alberto Raposo – PUC-Rio

19 Coordenadas de modelagem
Transformações 2D Coordenadas de modelagem y D. Brogan, Univ. of Virginia x Scale .3, .3 Rotate -90 Translate 5, 3 Alberto Raposo – PUC-Rio

20 Coordenadas de modelagem
Transformações 2D Coordenadas de modelagem y D. Brogan, Univ. of Virginia x Scale .3, .3 Rotate -90 Translate 5, 3 Alberto Raposo – PUC-Rio

21 VRML: Nó Transform Alberto Raposo – PUC-Rio

22 Exemplo em VRML The Annotated VRML Reference Alberto Raposo – PUC-Rio

23 Exemplo em VRML Alberto Raposo – PUC-Rio

24 X3D – Nó Transform Alberto Raposo – PUC-Rio

25 Exemplo em X3D Alberto Raposo – PUC-Rio

26 A ordem das transformações faz diferença!
Alberto Raposo – PUC-Rio

27 Escalamento Escalar uma coordenada significa multiplicar cada um de seus componentes por um valor escalar Escalamento isotrópico significa que esse valor escalar é o mesmo para todos os componentes  2 D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

28 Escalamento Escalamento não-isotrópico: valores escalares diferentes por componente: Como representar o escalamento na forma de matrizes? X  2, Y  0.5 D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

29 Escalamento Operação de escalamento: Na forma matricial:
D. Brogan, Univ. of Virginia Matriz de escalamento Alberto Raposo – PUC-Rio

30 Rotação 2D Q P [1] [2] [3] [4] PY [1] PX R Substituindo de [3] e [4]…
John Dingliana, 2004 [1] [2] P Q R PX PY [3] [4] [1] Substituindo de [3] e [4]… Similarmente, a partir de [2]… Alberto Raposo – PUC-Rio

31  Rotação 2D (x’, y’) (x, y) x’ = x cos() - y sin()
y’ = x sin() + y cos() D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

32 Rotação 2D Na forma matricial:
Embora sin(q) e cos(q) sejam funções não-lineares de q, x’ é combinação linear de x e y y’ é combinação linear de x e y D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

33 Translação 2D y y x x M. Gattass, PUC-Rio Alberto Raposo – PUC-Rio

34 Transformações 2D Básicas
Translação: x’ = x + tx y’ = y + ty Escalamento: x’ = x * sx y’ = y * sy Rotação: x’ = x*cosQ - y*sinQ y’ = x*sinQ + y*cosQ Podem ser combinadas com álgebra simples D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

35 Transformações 2D Básicas
Translação: x’ = x + tx y’ = y + ty Escalamento: x’ = x * sx y’ = y * sy Rotação: x’ = x*cosQ - y*sinQ y’ = x*sinQ + y*cosQ D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

36 Transformações 2D Básicas
Translação: x’ = x + tx y’ = y + ty Escalamento: x’ = x * sx y’ = y * sy Rotação: x’ = x*cosQ - y*sinQ y’ = x*sinQ + y*cosQ (x,y) (x’,y’) x’ = x*sx y’ = y*sy D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

37 Transformações 2D Básicas
Translação: x’ = x + tx y’ = y + ty Escalamento: x’ = x * sx y’ = y * sy Rotação: x’ = x*cosQ - y*sinQ y’ = x*sinQ + y*cosQ (x’,y’) x’ = (x*sx) *cosQ - (y*sy) * sinQ y’ = (x*sx) * sinQ + (y*sy) * cosQ D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

38 Transformações 2D Básicas
Translação: x’ = x + tx y’ = y + ty Escalamento: x’ = x * sx y’ = y * sy Rotação: x’ = x*cosQ - y*sinQ y’ = x*sinQ + y*cosQ (x’,y’) x’ = ((x*sx)*cosQ - (y*sy)*sinQ) + tx y’ = ((x*sx)*sinQ + (y*sy)*cosQ) + ty D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

39 Representação Matricial
Representar transformação 2D por uma matriz Multiplicar matriz por vetor-coluna  aplicar transformação a um ponto D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

40 Representação Matricial
Transformações são combinadas por multiplicação de matrizes Matrizes são uma forma conveniente e eficiente de representar uma seqüência de transformações D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

41 Produto de Matrizes neutro: M. Gattass, PUC-Rio
Alberto Raposo – PUC-Rio

42 Matrizes 2x2 Que transformações planares podem ser representadas com uma matriz 2x2? Identidade 2D? Escalemento 2D em torno de (0,0)? D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

43 Matrizes 2x2 Que transformações planares podem ser representadas com uma matriz 2x2? Rotação 2D em torno de (0,0)? D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

44 Matrizes 2x2 Que transformações planares podem ser representadas com uma matriz 2x2? Espelhamento 2D em torno de Y? Espelhamento 2D em torno de (0,0)? D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

45 Matrizes 2x2 Que transformações planares podem ser representadas com uma matriz 2x2? Translação 2D? NÃO! D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

46 Coordenadas Homogêneas
Como representar uma translação como matriz 3x3? Alberto Raposo – PUC-Rio

47 Coordenadas Homogêneas
representam coordenadas em 2 dimensões com vetor 3 Coordenadas Homogêneas parecem pouco intuitivas, mas elas simplificam muito as operações gráficas D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

48 Coordenadas Homogêneas
Como representar uma translação como matriz 3x3? D. Brogan, Univ. of Virginia Resp: Usando a terceira coluna da matriz Alberto Raposo – PUC-Rio

49 Translação Coordenadas Homogêneas Exemplo tx = 2 ty = 1
D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

50 Coordenadas Homogêneas
Coloca uma 3a coordenada para cada ponto 3D (x, y, w) representa um ponto em (x/w, y/w) (x, y, 0) representa um ponto no infinito (0, 0, 0) não é permitido 1 2 (2,1,1) or (4,2,2) or (6,3,3) x y Sistema conveniente para representar muitas transformações úteis em CG D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

51 Transformações 2D Básicas
Representação em matrizes 3x3 Translação Escalamento Rotação Cisalhamento (Shear) Alberto Raposo – PUC-Rio

52 Cisalhamento (Shear) y y x x  M. Gattass, PUC-Rio
Alberto Raposo – PUC-Rio

53 Concatenação de Transformações
x y x y T1 T2 x y x y R1 R2 x y x y E M. Gattass, PUC-Rio P’= T2 R2 E R1 T1 P Alberto Raposo – PUC-Rio

54 Composição de Matrizes
Transformações podem ser combinadas pela multiplicação de matrizes p’ = T(tx,ty) R(Q) S(sx,sy) p D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

55 Composição de Matrizes
Atenção: ordem das transformações faz diferença Multiplicação de matrizes não é comutativa p’ = T * R * S * p “Global” “Local” Alberto Raposo – PUC-Rio

56 Ordem das Transformações
x y T R x y x y (a) R x y T x y (b) M. Gattass, PUC-Rio Alberto Raposo – PUC-Rio

57 Ordem das Transformações
Ex: rotacionar segmento em 45 graus em torno da extremidade a Resultado esperado a a D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

58 Ordem das Transformações
Erro: aplicar a rotação de 45o, R(45), afeta as duas extremidades Pode-se tentar fazer a rotação e depois retornar o ponto a à sua posição original, mas quanto ele precisaria ser transladado? Correto T(-3) R(45) T(3) a a a Como trazer o ponto a de volta à posição original?? ? Errado! R(45) Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia

59 Ordem das Transformações
Correto: isolar ponto a dos efeitos da rotação Transladar a linha para colocar a na origem: T (-3) Rotacionar linha em 45o: R(45) Transladar a de volta: T(3) a a a Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia

60 Composição de Matrizes
T(3) R(45) T(-3) A multiplicação começa da última para a primeira transformação Alberto Raposo – PUC-Rio

61 Composição de Matrizes
Depois de ordenar as matrizes corretamente: Multiplicá-las Guardar resultado em uma só matriz Usar essa matriz para realizar a transformação composta em cada um dos pontos que definem o objeto transformado (vértices, por exemplo) Todos os vértices podem ser transformados com uma simples multiplicação de vetor por matriz. Alberto Raposo – PUC-Rio

62 Exercício 2D Considere o triângulo com os seguintes vértices em coordenadas homogêneas Rotacione o triângulo de 90o (sentido anti- horário) em relação ao ponto P = (6,5) y C P A B x Alberto Raposo – PUC-Rio

63 Etapas da Solução Definir matriz para transladar o triângulo de modo que o centro de rotação se mova para a origem do sistema de coordenadas Definir matriz para rotacionar o triângulo Definir matriz para transladar o triângulo de volta Gerar matriz combinada da transformação Transformar os vértices do triângulo Alberto Raposo – PUC-Rio

64 Etapas da Solução Definir matriz para transladar o triângulo de modo que o centro de rotação se mova para a origem do sistema de coordenadas Centro de rotação: P = (6,5) Translação de -6 unidades em x e -5 unidades em y Alberto Raposo – PUC-Rio

65 Etapas da Solução Definir matriz para rotacionar o triângulo
O ângulo de rotação é medido no sentido anti-horário: R(+90o) cos(90o) = 0 e sin(90o) = 1 Alberto Raposo – PUC-Rio

66 Etapas da Solução Definir matriz para transladar o triângulo de volta
Translação de 6 unidades em x e 5 unidades em y Alberto Raposo – PUC-Rio

67 Etapas da Solução Gerar matriz combinada da transformação =
Alberto Raposo – PUC-Rio

68 Etapas da Solução Transformar os vértices do triângulo y C B’ = A’ C’
x Alberto Raposo – PUC-Rio

69 Transformações em 3D Mesma idéia que em 2D:
Coordenadas homogêneas: (x,y,z,w) Matrizes de trasnformação 4x4 Alberto Raposo – PUC-Rio

70 Transformações 3D Básicas
Identidade Escalamento Translação Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia

71 Transformações 3D Básicas
Espelhamento em torno do plano YZ Espelhamento em torno do plano XZ Espelhamento em torno do plano XY Alberto Raposo – PUC-Rio

72 Transformações 3D Básicas
Rotação em torno de Z: Rotação em torno de Y: Rotação em torno de X: Alberto Raposo – PUC-Rio

73 Rotações Reversas Como desfazer uma rotação R(q)? Construindo R(-q) :
Aplicar o inverso da rotação: R(-q) Construindo R(-q) : cos(-q) = cos(q) sin (-q) = - sin (q) Assim: R(-q) = RT(q) Alberto Raposo – PUC-Rio

74 Exercício 3D Encontre as respectivas matrizes de transformação para os seguintes casos Translação que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Escalamento que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Qual o ângulo dessa rotação? Alberto Raposo – PUC-Rio

75 Solução Translação que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Matriz de translação  Alberto Raposo – PUC-Rio

76 Solução Escalamento que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Matriz de escalamento  Alberto Raposo – PUC-Rio

77 Solução Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Para rotação em torno de z: (2) – (1): Alberto Raposo – PUC-Rio

78 Solução Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Substituindo em (1) ou (2): Matriz de rotação  Alberto Raposo – PUC-Rio

79 Solução Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2) Qual o ângulo dessa rotação? Alberto Raposo – PUC-Rio

80 Ângulos de Euler Fundamentos da Comp. Gráfica Jonas Gomes, Luiz Velho
Alberto Raposo – PUC-Rio

81 Ângulos de Euler z z z qz y y y qy qx x x x
Notação: cx = cos(x); sx = sin(x) e assim por diante Alberto Raposo – PUC-Rio M. Gattass, PUC-Rio

82 Alberto Raposo – PUC-Rio

83 Demo: Ângulos de Euler Alberto Raposo – PUC-Rio

84 Bibliografia Adicional
Peter Shirley, Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, 2002. Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics,  Addison-Wesley, 1995. Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Computer Graphics: Principles and Practices, (Systems Programming), 2nd edition in C, Addison-Wesley, 1995. Brutzman, D. e Daly, L., Extensible 3D Graphics for Web Authors, Morgan Kaufmann, 2007. The Annotated VRML 97 Reference: Alberto Raposo – PUC-Rio


Carregar ppt "INF 1366 – Computação Gráfica Interativa Transformações"

Apresentações semelhantes


Anúncios Google