1 / 84

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

INF 1366 – Computação Gráfica Interativa Transformações. Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/INF1366. Sistemas de Coordenadas. Objetos em Computação Gráfica possuem descrições numéricas (modelos) que caracterizam suas formas e dimensões.

travis
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INF 1366 – Computação Gráfica InterativaTransformações Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/INF1366 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... John Dingliana, 2004 Alberto Raposo – PUC-Rio

  5. Exemplo 2 • 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). 5 etapas de uma animação de um cubo girando 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. .4, 2 1,1 TRANSFORMAÇÃO DE OBJETO 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 EscalaentoIsotró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. Transformações Afins • Preservam linhas paralelas Afins Similaridades Linear Euclidianas Escalamento Identidade Translação EscalaentoIsotrópico Reflexão Rotação Shear Alberto Raposo – PUC-Rio

  14. TransformaçõesProjetivas • preservam linhas Projetivas Afins Similaridades Linear Euclidianas Escalamento Identidade Translação EscalaentoIsotró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. 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. Transformações 2D Coordenadas de modelagem y D. Brogan, Univ. of Virginia x Localizaçãoinicial em(0, 0) comeixos x e yalinhados Alberto Raposo – PUC-Rio

  18. 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. 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. 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. X  2,Y  0.5 Escalamento • Escalamento não-isotrópico: valores escalares diferentes por componente: • Como representar o escalamento na forma de matrizes? 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. Q P PY PX R Rotação 2D [1] John Dingliana, 2004 [2] [3] [4] [1] Substituindo de [3] e [4]… Similarmente, a partir de [2]… Alberto Raposo – PUC-Rio

  31. (x’, y’) (x, y)  Rotação 2D 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 combinadascom á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 M. Gattass, PUC-Rio neutro: 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 • 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 terceiracoluna da matriz Alberto Raposo – PUC-Rio

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

  50. y 2 (2,1,1) or (4,2,2) or (6,3,3) 1 x 2 1 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 Sistema conveniente para representar muitas transformações úteis em CG D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

More Related