Transformações Geométricas Computação Gráfica CG & ND @ 26 ISEL/DEETC/S Computação Gráfica
2 http://hof.povra.org/images/office-3.jpg
Sumário Transformações geométricas Translação Rotação Escala Shearing Coordenadas homogéneas Cálculo com matrizes Composição de transformações E: Window viewport transfom Matrizes de transformações em 3D Modelação hierárquica 3
Sumário Transformações geométricas Translação Rotação Escala Shearing Coordenadas homogéneas Cálculo com matrizes Composição de transformações E: Window viewport transfom Matrizes de transformações em 3D Modelação hierárquica 4
Transformações geométricas As transformações geométricas são essenciais nas aplicações gráficas A composição de cenas feitas à custa de símbolos (ou objectos) aplica massivamente transformações a cada um dos constituintes É possível posicionar, alterar a forma e animar objectos, luzes e câmaras Transformações mais comuns: Translação, rotação, escala Y Rotação Escala Translação (,) X 5
Transformações geométricas Como representar estas tranformações geométricas? 6
Transformações geométricas Translação A translação de um ponto, em 2D, é feita somando um deslocamento a cada uma das coordenadas (, ) d ' = + d (,) ' = + d d 7
Transformações geométricas Translação odemos representar a translação através de vectores coluna d d,, T ' ' ' ' T 8
Transformações geométricas Translação retende se aplicar a translação T(2,3) ao quadrado centrado na origem, com lado igual a 2 Aplicando a translação a cada um dos seus vértices Eemplo Y Y T(2,3) d =3 d =2 X X 9
Transformações geométricas Rotação Um ponto pode ser rodado de um determinado ângulo, em relação à origem Matematicamente, esta transformação é definida por: ' =.cos(α).sin(α) ' =.sin(α) +.cos(α) X r (, ) Note-se que as equações apresentadas são para ângulos positivos α β r (,) ara ângulos negativos, utilizam-se as equivalências cos(-α) = cos(α) sin(-α) = -sin(α) Y
Transformações geométricas Rotação X α r r (, ) (,) = r.cos(β) = r.sin(β) Dedução da epressão de rotação ' = r.cos(α+β) ' = r.sin(α+β) cos(a+b) = cos(a).cos(b) sin(a).sin(b) sin(a+b) = sin(a).cos(b) + cos(a).sin(b) β Y ' = r.[cos(α).cos(β) - sin(α).sin(β)] ' = r.cos(α).cos(β) r.sin(α).sin(β) ' = r.cos(β).cos(α) r.sin(β).sin(α) ' =.cos(α).sin(α) para ' é equivalente http://www.clowder.net/hop/cos%28a+b%29.gif ' =.cos(α).sin(α) ' =.sin(α) +.cos(α)
Transformações geométricas Rotação odemos representar a rotação através de matrizes e vectores coluna, R cos( ) sin( ) sin( ) cos( ), ' ' ' ' R* 2
Transformações geométricas Rotação retende se aplicar a rotação R(45º) ao quadrado, centrado na origem, com lado igual a 2 Eemplo R(45º ) S: Novamente, foi aplicada a transformação de rotação a todos os vértices do objecto 3
Transformações geométricas Escala Um ponto pode ser epandido de uma quantidade real, em relação à origem Matematicamente, esta transformação é definida por ' s ' s É difícil pensar como é que um ponto pode ser epandido! Resposta: Dará sempre origem a outro ponto, noutras coordenadas No entanto, se esse ponto for, por eemplo, utilizado para representar o fim de um segmento de recta, rapidamente se compreende que a recta sofreu uma epansão (positiva ou negativa) pelo simples facto do ponto se ter deslocado 4
Transformações geométricas Escala odemos, mais uma vez, representar a escala através de matrizes e vectores coluna S s s,, ' ' ' ' S * 5
Transformações geométricas Escala Eemplo I escala uniforme, centrado retende se aplicar uma escala S(2,2) ao quadrado, centrado na origem, com lado igual a 2 S(2,2) S: Reparem, o quadrado passou a ter 4 unidades de lado (efeito de escala) 6
Transformações geométricas Escala Eemplo II escala não uniforme, centrado retende se aplicar uma escala S(.5,.5) ao quadrado, centrado na origem, com lado igual a 2 S(.5,.5) 7
Transformações geométricas Escala Eemplo III escala não uniforme, descentrado retende se aplicar uma escala S(.5,.5) ao quadrado, centrado em (2,2), com lado igual a 2 (, 3) (3, 3) S.5,.5 (.5,.5) (4.5,.5) (, ) (3, ) (.5,.5) (4.5,.5) 8
Transformações geométricas Escala Note-se que na escala acontece um fenómeno interessante Quando o valor é inferior a a forma aparece mais próima da origem Quando o valor é superior a, a forma afasta-se da origem Esta constatação vem realçar o facto das escalas (à semelhança das rotações) serem efectuadas em relação à origem 9
Transformações geométricas Shearing A operação de shearing aplica uma transformação a apenas um dos eios, com uma proporção função do outro eio Aplicando a um dado ponto, a transformação SH (2), obtemos ' a ' Aplicando a mesma transformação, mas agora sobre, obtemos ' ' a 2
Transformações geométricas Shearing odemos representar a escala através de matrizes e vectores coluna, SH SH a a, ' ' ' ' SH * 2
Transformações geométricas Shearing Eemplo retende se aplicar uma deformação, no eio do, de s unidades SH s s 22
Sumário Transformações geométricas Translação Rotação Escala Shearing Coordenadas homogéneas Cálculo com matrizes Composição de transformações E: Window viewport transfom Matrizes de transformações em 3D Modelação hierárquica 23
Coordenadas Homogéneas Resumindo as quatro transformação geométricas Translação ' T Rotação Escala Shearing ' R* ' S * ' SH * Fica claro que eiste um caso particular na forma de tratar as translações Esse caso particular vem dificultar a composição de transformações 24
Coordenadas Homogéneas O objectivo é conseguir que qualquer transformação de um ponto seja feita na forma '? Como? Coordenadas Homogéneas As coordenadas homogéneas foram inicialmente desenvolvidas na geometria e, posteriormente, foram utilizadas na computação gráfica (meados da década de 7) A ideia é acrescentar uma dimensão ao espaço que estamos a trabalhar. No caso de 2D, a representação de um ponto em coordenadas homogéneas é feita (,, w) 25
Coordenadas Homogéneas odemos dizer que os triplos (,, W) e (', ', W') representam o mesmo ponto, desde que sejam múltiplos E: (2, 3, 6) e (4, 6, 2) Isto quer dizer que um mesmo ponto pode ser representado com diferentes triplos em coordenadas homogéneas, desde que sejam diferentes do triplo (,, ) As coordenadas cartesianas de um ponto representado desta forma podem ser encontradas dividindo as coordenada sem e em por W ( W, W,) O que isto significa realmente? 26
Coordenadas Homogéneas Representação gráfica Se pegarmos em todos os triplos que representam o mesmo ponto, na forma (t, t, tw), com t, obtemos uma recta num espaço tridimensional Se o ponto for homogeneizado, obtém-se um nova representação na forma (', ', ) W Os pontos homogeneizados formam um plano no espaço (,, W), onde W é constante e igual a W= representam pontos no infinito lano W = 27
28 d d T Transformações geométricas Translação T ' Com coordenadas homogéneas, ' ' ',
29 Transformações geométricas Rotação cos sin sin cos R Com coordenadas homogéneas R ', ' ' ',
3 s s S Transformações geométricas Escala S ' Com coordenadas homogéneas, ' ' ',
3 a SH Transformações geométricas Shearing Com coordenadas homogéneas SH ', ' ' ',
32 Composição de transformações geométricas Vamos começar com uma composição muitos simples duas translações ), ( d d d d T ), ( 2 2 2 2 d d d d T T T 2 '
33 Composição de transformações geométricas A matriz resultante da composição das duas translações é a seguinte 2 2 2 2 2 d d d d d d d d T T ), ( ), ( ), ( 2 2 2 2 2 d d d d T d d T d d T
34 Composição de transformações geométricas Seguindo o mesmo raciocínio, No entanto, a composição de transformações deve ser feita com cuidado, dado que a ordem interessa em muitos dos casos ) ( ) ( ) ( 2 R R R Rotação Escala ), ( ), ( ), ( 2 2 2 2 2 s s s s S s s S s s S
Composição de transformações geométricas De facto, eiste uma ordem clara epressa na notação utilizada A ordem de aplicação das transformações é feita da direita para a esquerda, ou seja ontofinal nesimatr... 2ª Tr ª Tr ontoinicial Esta ordem é importante uma vez que a composição de transformações geométricas não goza da propriedade comutativa. or eemplo S( d, d ) R( ) R( ) S( d, d ) 35
Composição de transformações geométricas R S d, d R S d, d 36
Composição de transformações geométricas Rotação em torno de ponto arbitrário Como as rotações são sempre relativas à origem, a rotação de um ângulo Ө (seguinte casa), em torno do ponto, não tem o efeito esperado R Ө 37
Composição de transformações geométricas Rotação em torno de ponto arbitrário Original Translação para a origem 2 3 Ө Depois da translação para o ponto Depois da rotação 38
39 Composição de transformações geométricas cos sin sin cos p p p p ), ( ) ( ), ( p p p p T R T sin ) cos ( cos sin sin ) cos ( sin cos p p p p matriz resultante da composição
Composição de transformações geométricas E: Transformação Window-to-Viewport 4:3 Coordenadas do mundo - WC Viewport Como ficará esta transformação em termos de composição de transformações geométricas? 4
Composição de transformações geométricas ma, ma E: Transformação Window-to-Viewport min, min Coordenadas do mundo - WC Translação para a origem v u ma,v ma v 2 u mi,v mi 3 Translação para a posição final u Escala da janela para as dimensões do viewport u 4
42 min min min ma min ma min ma min ma min min v v u u v u min, min min ma min ma, min ma min ma min, min T v v u u S v u T M Composição de transformações geométricas E: Transformação Window-to-Viewport
43 min min ma min ma min min ma min ma min min ma min ma min min ma min ma v v v v v u u u u u Composição de transformações geométricas E: Transformação Window-to-Viewport
Sumário Transformações geométricas Translação Rotação Escala Shearing Coordenadas homogéneas Cálculo com matrizes Composição de transformações E: Window viewport transfom Matrizes de transformações em 3D Modelação hierárquica 44
Matrizes de transformações em 3D Os conceitos abordados para 2D continuam válidos A diferença reside na necessidade de mais uma coordenada para representar um ponto em 3D z W É necessário compatibilizar as matrizes utilizadas para representar as transformações 45
46 z d d d T z T ' ' ' ' ' z Com coordenadas homogéneas 3D Transformações geométricas Translação,,
Eios de coordenadas 3D Antes de falar na rotação, é necessário falar um pouco melhor sobre o sistema de coordenadas utilizado Eistem basicamente dois sistemas Mão direita SMD Mão esquerda SME Adoptaremos o sistema SMD para apresentar tudo o que diz respeito a 3D Note-se que, através de rotações, é possível converter um sistema utilizando a SMD noutro sistema SMD 47
Eios de coordenadas 3D Mão direita SMD z X 48
Eios de coordenadas 3D Y Mão esquerda SME Z X 49
Transformações geométricas - Rotação No SMD, os ângulos positivos são calculados ao contrário dos ponteiros do relógio, como é ilustrado na figura Temos agora 3 planos onde efectuar a rotação de um ponto z z z 5
Transformações geométricas - Rotação Com coordenadas homogéneas 3D lano XY Rotação 2D cos( ) sin( ) R sin( ) cos( ) z Eio de rotação R z ( ) cos sin sin cos 5
Transformações geométricas - Rotação Com coordenadas homogéneas 3D lano YZ Rotação 2D cos( ) sin( ) R sin( ) cos( ) z Eio de rotação R ( ) cos sin sin cos 52
Transformações geométricas - Rotação Com coordenadas homogéneas 3D lano ZX Eio de rotação Rotação 2D cos( ) sin( ) R sin( ) cos( ) z R ( ) cos sin sin cos 53
54 z s s s S Transformações geométricas - Escala S ' Com coordenadas homogéneas 3D z ' ' ' ' z,,
55 Transformações geométricas - Shearing S ' Com coordenadas homogéneas 3D z ' ' ' ' z,, ), ( sh sh sh sh SH
Transformações geométricas Transformações inversas T ( d, d, d ) T ( d, d, d ) R eio () R eio ( ) S( a, b, c) S( a, b, c) 56
Matriz resultante da composição A matriz resultante da multiplicação das várias matrizes que representam rotações, escalas e translações, é sempre da forma M rs rs rs 2 3 rs rs rs 2 22 32 rs rs rs 3 23 33 t t t z Note-se que a sub-matriz 3 por 3 do canto superior esquerdo, RS, é o resultado da agregação de rotações e escalas O vector coluna T é o resultado da agregação das várias translações 57
Características das transformações As matrizes de transformação aqui apresentas (translação, rotação, escala e shearing) têm em comum o facto de preservarem o paralelismo das linhas, mas não necessariamente os ângulos e dimensões dos objectos Estas matrizes designam-se de afins. Qualquer multiplicação de matrizes afins resultam numa outra matriz, também afim No entanto, certas matrizes, preservam o paralelismo das linhas, os ângulos e as distâncias or eemplo, quando se roda um objecto ou se move um objecto, apenas se alterou a orientação ou a localização - tudo o resto se mantém Este tipo de transformações designam-se de rigid-bod 58
Características das transformações É possível verificar se uma matriz representa uma transformação rigid-bod, observando-a M r r r 2 3 r r r 2 22 32 r r r 3 23 33 t t t Matriz A r r r 2 3 r r r 2 22 32 r r r 3 23 33 M é rigid-bod Se for ortogonal AA t I 59
Composição de transformações geométricas 3D 2 2 z z osição inicial osição final 6
Composição de transformações geométricas 3D São necessárias as seguintes transformações (por eemplo):. Translação de para a origem 2. Rotação sobre o eio, de forma a que e 2 fiquem no plano YZ 3. Rotação sobre o eio, para que e 2 fiquem sobre o eio zz 2 2 D 2 z z 2 2 ( 2, 2, z 2 ) Y 2 2 z z -(9-Ө) Ө D ( 2,, z 2 ) z 2 D 2 z 6
Sumário Transformações geométricas Translação Rotação Escala Shearing Coordenadas homogéneas Cálculo com matrizes Composição de transformações E: Window viewport transfom Matrizes de transformações em 3D Modelação hierárquica 67
Composição de transformações Uma cena é quase sempre resultado da composição de vários objectos, aos quais são aplicadas transformações Um tampo Quatro pernas 68
Composição de transformações Quando se modela um objecto, normalmente faz-se num sistemas de coordenadas diferentes do mundo: Coordenadas de modelação ou coordenadas do objecto Regra geral, o que muda são as unidades do que se modela (cm) z 69
Composição de transformações De acordo com o sistema onde o mundo virtual será efectuado, poderá ter que ser realizada uma mudança de escala e/ou de unidades (cm)! z! (m) z E. VRML cm m 7
Composição de transformações Além disso, por questões de simplicidade, a modelação dos objectos faz-se na origem No entanto, a composição das cenas pode não ser feita na origem, ou seja, são necessárias algumas transformações geométricas Modelação Hierárquica z z z 7
Composição de transformações Modelação Hierárquica ara que esta composição seja feita de uma forma sistemática, é utilizada uma composição hierárquica Esta modelação é realizada através de grafos dirigidos acíclicos, que se designam de grafos de cena Um grafo de cena não é mais do que a representação de objectos e nós de transformações, de forma a representar o aspecto final da cena, nas coordenadas do mundo Como ficará o grafo de cena para a modelação da mesa? 72
Grafos de cena Cena 2 (5,, ) T 2,2, T T T T z,5 S R R R R S S S S tampo perna perna perna perna 73
Grafos de cena Atenção: A ordem de eecução das transformações é da raiz para as folhas Cena T 4º - Translação T T T T 3º - Translação S R R R R 2º - Rotação S S S S º - Escala tampo perna perna perna perna 74
Grafos de cena z 2 S(.2,.,.2 ), 2 Tampo: MC WC 2.2 z tampo 75
Grafos de cena d=-.5 d=-.725 dz=.725 T(-.725, -.5,.725) z R (9) erna: MC WC.5.5 z,5 perna S(.5,.5,.) 76
Grafos de cena Cena mesa T(5,, ) pernatrans R (9) S(.5,.5,.) perna S(.2,.,.2) T T2 T3 T4 tampo pernatrans pernatrans pernatrans pernatrans T=T(-.725 -.5.725) T2=T(.725 -.5.725) T3=T(.725 -.5 -.725) T4=T(-.725 -.5 -.725) 77
Grafos de cena em VRML A passagem de um grafo de cena para VRML é bastante fácil Transform T Cena Transform T S Transform Shape Tampo S T R T T T R R R S R T Transform Shape é S S S S... S R T Shape é tampo perna perna perna perna 78
Grafos de cena em VRML Note que o eemplo aqui apresentado conduz a um grafo de cena onde o mapeamento para VRML é directo Em cada nó Transform, a ordem de eecução das possíveis três transformações é bastante clara e independente da ordem de declaração Escala -> Rotação -> Translação Como já foi referido, estas transformações não são comutativas, logo, eistem grafos de cena que têm de ser trabalhados na passagem para VRML A passagem não é directa 79
8 Transform R S Transform Transform B S C R T Transform Shape Shape R A T Shape Transform Transform Grafos de cena em VRML S S A B R T T R C Cena R Certo! Errado! Transform R S Transform Transform B S T C R T Transform Shape Shape Shape R A
Referências Computer Graphics: rinciples and ractice in C, James D. Fole, Andries van Dam, Steven K. Feiner, John F. Hughes, Addison-Wesle rofessional; 2nd edition (995) Capítulo 5 Real-time Rendering, Tomas Akenine-Möller and Eric Haines, A.K. eters Ltd, 2nd edition (22) Capítulo 3 M. róspero, FCT-UNL, Documentação da cadeira de computação gráfica, 25 Transformation Hierarch @ Eploratories - http://tinurl.com/ze84j 8