Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Transformações Geométricas
Rodrigo de Toledo UFRJ, CG1,
2
Índice Exemplos de Transformações 2D
Fórmulas e cálculos das transformações 2D Usando matriz de transformação (por que?) Coordenadas Homogêneas Concatenação de transformações Transformações 3D
3
Exemplos de Transformações 2D
Translação Escala uniforme não uniforme Rebatimento por um eixo (espelhamento) Troca de eixos Rotação pela origem
4
Translação Translation of a point is simply vector addition y -2 -1 P1
P2 = P1 + P2 1 2 3 -2 -1 = + x
5
Escala Scaling about the origin is scalar multiplication y 2 1 = 2 *
P2 = P1 * 2 x
6
Rebatimento por um eixo (espelhamento)
x = x y = -y
7
Troca de Eixos x = y y = x
8
Rotação pela Origem y x P´ P x´ y´ x´ = x.cos q - y.sen q
y´ = x.sen q + y.cos q
9
Por que usar Matriz nas Transformações?
Todas as transformações podem ser efetuadas através da multiplicação de matrizes (usando coordenadas homogêneas). As transformações podem ser aninhadas e resolvidas de modo a haver apenas uma matriz de multiplicação a ser aplicada. A característica descrita acima se torna muito importante quando a mesma seqüência de transformações deve ser aplicada para diversos pontos.
10
Multiplicação de Matrizes
= é ë ê ù û ú a b c d x y x’ y’ onde: + a x b y x’ = + c x d y y’ =
11
Uniform Scaling , ù û ú = S é ë ê s = P é ë ê ù û ú x y , = M S P = é
= P é ë ê ù û ú x y , = M S P = é ë ê ù û ú s x y , = I é ë ê ù û ú 1 = M s é ë ê ù û ú x y M = s I P ,
12
Non-uniform Scaling = S é ë ê ù û ú s = P é ë ê ù û ú x y é s ù é s x
1 2 = P é ë ê ù û ú x y é s ù é s x ù é x ù ê 1 ú ê 1 ú ê ê ú ú ê ú = ê ú ê ú ê ú s ë y û s y ë û ë û 2 2 Note orientation shift in line
13
Non-uniform Scaling y x P P´ Redução (0< sx <1) ,
Aumento (sy >1) x y P = x x´ P´ = y´ x´ sx x y = y´ sy
14
= é ë ê ù û ú x - y 1 -1 Flip an Axis...
-1 What does this do to appearance of objects?
15
Swap Axes = é ë ê ù û ú y x 1
16
Rotate by , = M R P é ë ê ù û ú ( ) cos q - sin x y = é ë ê ù û ú -
+
17
Transformações Geométricas (Translação)
y P’ x’ x y tx ty P’ = = + y’ tx ty P t = x x´ x y ? ? Não pode ser escrito na forma = y´ ? ? x´ 1 x y tx ty Ruim para implementação = + y´ 1
18
Vantagens das coordenadas homogêneas (Translação)
w y t x w=1 yh xh x’ y’ 1 1 tx ty x y 1 x’ y’ P’ = = = [T] Matriz de Translação
19
Coordenadas homogêneas
y x y 1 wx wy w xh yh w x y = D = D P = = P x x = xh /w w>0 y = yh /w yh xh w w=1 x y Ex.: 3 2 1 6 4 2 9 6 3 3 2 = D = D =
20
Vantagens das coordenadas homogêneas (pontos no infinito)
w H1 w 2 3 u = y w=1 C1 H2 = C2 C3 x u H3 w=1 yh uh H1 H2 H3 H4 uh xh 2 3 2 3 1 2 3 1/2 2 3 1/4 2 3 . . . 2 3 = ? C1 C2 C3 C4 infinito na direção (2,3) 1 1.5 2 3 4 6 8 12
21
Vantagens das coordenadas homogêneas (pontos no infinito, exemplo)
3 1 -2 A B C D x y O 1 -1 2 A’ B’ C’ D’ x y O’ infinito -1 1 2 3 1 -2 1 1 3 1 -2 2 1 4 2 2 1 J J = = = 3 1 -2 1 1 3 1 -2 2 4 2 -1 = -1 J -2 = -2 = -1 J 1 1 1 2 1
22
Efeito de profundidade
x x y y
23
Simplificação da projeção cônica
Projeção ortográfica eye plano de projeção direção de projeção plano de projeção
24
Concatenação x y x0 y0 a y y0 x0 x y y a x x
25
Concatenação de Transformações
x y x y T1 T2 x y x y R1 R2 x y x y E P’= T2 R2 E R1 T1 P
26
Composição com sistema local/móvel
X2 Y2 Y X X Y P2 X Y = P = X Y X1 Y1 T P1 = R P1= T P e P2 = R P1 P2 = R T P P2 = X2 Y2 X Y x y X Y X Y x y P3 = X3 Y3 P = X Y T’ R T’ = R T R-1 P3= R P e P2 = T’ P3 P2 = R T R-1 R P ou P2 = R T P
27
Geometria Projetiva e Coordenadas Homogêneas em 3D
z x y xh yh zh w x y z 1 m11 m12 m13 m14 m21 m22 m23 m24 m31 m32 m33 m34 m41 m42 m43 m44 = P’ = x’ y’ z’ xh /w yh/w zh/w P x y z =
28
Transformações em 3D (translações e escalas)
y x’ y’ z’ 1 1 tx x 1 ty y x = 1 tz z z 1 1 x’ y’ z’ 1 sx x sy y = sz z 1 1
29
Transformações em 3D (Rotações)
x’ y’ z’ 1 1 x x y cos qx -sen qx y = qy sen qx cos qx z 1 1 qx x’ y’ z’ 1 cos qy sen qy x qz z 1 y = -sen qy cos qy z 1 1 x’ y’ z’ 1 cos qz -sen qx x sen qx cos qx y = 1 z 1 1
30
Transformações em 3D (rotação em torno de um eixo qualquer)
y’ z’ 1 m11 m12 m13 x m21 m22 m23 y z 1 = m31 m32 m33 z 1 v = (vx, vy, vz) m11 = vx2 + cosq (1- vx2) m12 = vxvy(1-cosq ) - vz sen q m13 = vzvx(1-cosq ) + vy sen q m21 = vxvy(1-cosq ) + vz sen q m22 = vy2 + cosq (1- vy2) m23 = vyvz(1-cosq ) - vx sen q m31 = vxvz (1-cosq ) - vy sen q m32 = vyvz(1-cosq )+ vx sen q m22 = vz2 + cosq (1- vz2) y x
31
Projeções Clássicas e Matrizes de Projeção do OpenGL
Computação Gráfica Interativa - Gattass 4/1/2017 Projeções Clássicas e Matrizes de Projeção do OpenGL Projeções Clássicas e Transformações
32
Projeções Planas Cônicas
Computação Gráfica Interativa - Gattass 4/1/2017 Projeções Planas Cônicas A Ap B Bp realista não preserva escala não preserva ângulos Projeções Clássicas e Transformações
33
Projeções Planas Paralelas
Computação Gráfica Interativa - Gattass 4/1/2017 Projeções Planas Paralelas A Ap B Bp pouco realista preserva paralelismo possui escala conhecida Projeções Clássicas e Transformações
34
Classificação das projeções planas
Computação Gráfica Interativa - Gattass 4/1/2017 Classificação das projeções planas Paralelas ortográficas dp // n plantas elevações iso-métrica oblíquas dp não é paralela a n cavaleiras cabinet Cônicas 1 pto de fuga 2 ptos de fuga 3 ptos de fuga Projeções Clássicas e Transformações
35
Computação Gráfica Interativa - Gattass
4/1/2017 Projeções de um cubo Paralelas 1 1 a 1/2 a 1 1 1 planta ou elevação iso-métrica Cabinete (a=45 ou 90) Cavaleira (a=45 ou 90) Cônicas 1 pto de fuga 2 ptos de fuga Projeções Clássicas e Transformações
36
Projeção plana é uma transformação linear?
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção plana é uma transformação linear? Ou seja: T(P+Q) = T(P)+T(Q) e T(aP) = aT(P) ? 2V V 2V plano de projeção (2V)p¹ 2(Vp) V 2Vp Vp O Vp O cp cp Projeções cônicas não são TL, paralelas podem ser. Projeções Clássicas e Transformações
37
Projeção plana paralela é uma transformação linear?
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção plana paralela é uma transformação linear? T(P+Q) = T(P)+T(Q) ? P O Q Qp Pp P+Q retas paralelas projetam em paralelas Qp Pp Pp+ Qp T( 0 ) = 0 ? Projeção paralela em plano que passa pela origem é uma transformação linear Projeções Clássicas e Transformações
38
Matrizes de projeções Cavaleiras e Cabinetes
Computação Gráfica Interativa - Gattass 4/1/2017 Matrizes de projeções Cavaleiras e Cabinetes y y M 1 (1,1,1) k a 1 x x z Â3 Â2 T(1,0,0) = (1,0) T(0,1,0) = (0,1) T(0,0,1) = ( -k cos a, -k sin a ) k.cos(a) M = k.sin(a) Projeções Clássicas e Transformações
39
Matrizes de projeções pseudo-isométricas
Computação Gráfica Interativa - Gattass 4/1/2017 Matrizes de projeções pseudo-isométricas y y M j jp 1 (1,1,1) x i x kp ip k z Â3 Â2 T(1,0,0) = (cos 30 ,-sin 30) T(0,1,0) = (0,1) T(0,0,1) = (-cos 30, -sin 30) cos cos30 M = -sin sin30 Projeções Clássicas e Transformações
40
Projeção cônica simples
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção cônica simples xe ye ze P Pp zp = -d xe xp d -ze = ye yp d -ze = xe ye xp yp d ye yp -ze = d xp -ze = xe -ze d d = n xe y z e e z e Projeções Clássicas e Transformações
41
Projeção cônica simples
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção cônica simples xe xp -ze = d xe ye ze P Pp d ye yp -ze = zp = -d xp yp zp 1 d -1 xe d xe d ye d ze -ze (d/-ze) xe (d/-ze) ye -d 1 ye ze 1 = = = ¸ w w Projeções Clássicas e Transformações
42
Simplificação da projeção cônica
Computação Gráfica Interativa - Gattass 4/1/2017 Simplificação da projeção cônica Projeção cônica Projeção ortográfica eye plano de projeção direção de projeção plano de projeção Projeções Clássicas e Transformações
43
Distorce o frustum de visão para o espaço da tela
Computação Gráfica Interativa - Gattass 4/1/2017 Distorce o frustum de visão para o espaço da tela xe ye ze ze = -n ze = -f n -1 [ P ] = d = n xe ye ze ze = -n ze = -f Projeções Clássicas e Transformações
44
Uma equação para profundidade
Ptos no near (z=-n): Ptos no far (z=-f): n n+f -1 n Ÿ f [ P ] =
45
Translada o paralelepípedo de visão para origem
Computação Gráfica Interativa - Gattass 4/1/2017 Translada o paralelepípedo de visão para origem xe ye ze t b [ T ] = 1 -(r+l)/2 -(t+b)/2 +(f+n)/2 l r xe ye ze (t-b)/2 -(t-b)/2 -(r-l)/2 (r-l)/2 (f-n)/2 -(f-n)/2 Projeções Clássicas e Transformações
46
Escala o paralelepípedo de visão no cubo [-1,1]x[-1,1]x[-1,1]
Computação Gráfica Interativa - Gattass 4/1/2017 Escala o paralelepípedo de visão no cubo [-1,1]x[-1,1]x[-1,1] xe ye ze (t-b)/2 -(t-b)/2 -(r-l)/2 (r-l)/2 (f-n)/2 -(f-n)/2 near far 2/(r-l) 1 2/(t-b) -2/(f-n) [S] = xd yd zd 1 -1 near far Projeções Clássicas e Transformações
47
Matriz Frustum do OpenGL
n+f -1 n Ÿ f [ P ] = [ T ] = 1 -(r+l)/2 -(t+b)/2 +(f+n)/2 [S T P ] = OpenGL Spec [S] = 2/(r-l) 1 2/(t-b) -2/(f-n)
48
Projeção Cônica (Frustum)
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção Cônica (Frustum) void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); view frustum ye ze xe camera (eye) Obs.: near e far são distâncias( > 0) Plano de projeção left right top bottom far near xe ye ze ze Projeções Clássicas e Transformações
49
Projeção Cônica (Perspective)
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção Cônica (Perspective) void glPerspective( GLdouble fovy, GLdouble aspect, GLdouble near_, GLdouble far_ ); ye w aspect = w/h ze h xe near far fovy xe ze Projeções Clássicas e Transformações
50
Matriz Ortho do OpenGL -(r+l)/2 -(t+b)/2 1 +(f+n)/2 2/(r-l) 2/(t-b)
1 -(r+l)/2 -(t+b)/2 +(f+n)/2 OpenGL Spec [S] = 2/(r-l) 1 2/(t-b) -2/(f-n)
51
Projeção Paralela (Ortho)
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção Paralela (Ortho) near ye top far bottom ze A xe left right void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); void gluOrtho2D( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top ); Projeções Clássicas e Transformações
52
Glu Look At void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz); Dados: eye, ref, up (definem o sistema de coordenadas do olho) Determine a matriz que leva do sistema de Coordenadas dos Objetos para o sistema de Coordenadas do Olho up eye center Coordenadas dos Objetos Coordenadas do Olho
53
Calcula o sistema - xe ye ze
Computação Gráfica Interativa - Gattass 4/1/2017 Calcula o sistema - xe ye ze vup center eye z0 y0 x0 view dados: eye, center, up view = center - eye vup ze eye view z0 y0 x0 center ze = – view / ||view|| Projeções Clássicas e Transformações
54
Calcula o sistema - xe ye ze
Computação Gráfica Interativa - Gattass 4/1/2017 Calcula o sistema - xe ye ze center eye vup z0 y0 x0 view ze xe xe = (vup x ze) / ||vup x ze|| center eye vup z0 y0 x0 view ze xe ye eye vup ze xe ye view ye = ze x xe Projeções Clássicas e Transformações
55
Translada o eye para origem
Computação Gráfica Interativa - Gattass 4/1/2017 Translada o eye para origem center eye z0 y0 x0 ze xe ye eyex eyey eyez [ T ] = z0 y0 x0 center eye ze xe ye Projeções Clássicas e Transformações
56
Roda xe ye ze para xo yo zo
Computação Gráfica Interativa - Gattass 4/1/2017 Roda xe ye ze para xo yo zo [ R ] = xex xey xez 0 yex yey yez 0 zex zey zez 0 z0 y0 x0 center eye ze xe ye xe , xo ye , yo ze , zo Projeções Clássicas e Transformações
57
Matriz Look At do OpenGL
eyex eyey eyez [ T ] = ze = – view / ||view|| [ R T ] =? xe = (vup x ze) / ||vup x ze|| ye = ze x xe [ R ] = xex xey xez 0 yex yey yez 0 zex zey zez 0
58
Concatenação das transformações
Computação Gráfica Interativa - Gattass 4/1/2017 Concatenação das transformações z0 y0 x0 center eye ze xe ye [ R ] xe ye ze [ T ] [ P ] center eye z0 y0 x0 ze xe ye xe ye ze [ T2 ] [ T ] [ R ] [ P ] [ T2 ] [ S ] xe ye ze [ S ] xe ye ze 1 -1 near far Projeções Clássicas e Transformações
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.