transformações geométricas grafos de cena - autenticação · referencial de mão direita...
TRANSCRIPT
Transformações GeométricasGrafos de Cena
Instituto Superior Técnico
Edward Angel, Cap. 4
Instituto Superior Técnico Computação Gráfica
2009/2010
1
Na última aula...
� Transformações Geométricas� Translação� Escala� Rotação
©2010, CG&M/IST e Figuras Addison Wesley
� Rotação
� Espaço Homogéneo� Coordenadas Homogéneas� Transformações no Espaço Homogéneo
Sumário
� Transformações Geométricas
� Composição de Transformações
Deformação Lateral
©2010, CG&M/IST e Figuras Addison Wesley
� Deformação Lateral
� Transformações no espaço 3D
� Matriz de transformação composta
� Grafos de Cena
Transformações no Espaço Homogéneo (1/2)
Translação Escala
1 0 dx0 1 dy0 0 1
MT = T(dx,dy) = ME = S(SX,SY) = SX 0 00 SY 00 0 1
©2010, CG&M/IST e Figuras Addison Wesley
Rotação
MR = R(β) =cos(β) -sin(β) 0sin(β) cos(β) 0 0 0 1
Transformações no Espaço Homogéneo (2/2)
Translação x´ 1 0 dx xy´ 0 1 dy y
1 0 0 1 1=
.
� Em coordenadas homogéneas� Transformação = Produto de Matrizes
©2010, CG&M/IST e Figuras Addison Wesley
1 0 0 1 1
Escala
Rotação
x´ Sx 0 0 xy´ 0 Sy 0 y
1 0 0 1 1=
.
x´ cos(β) -sin(β) 0 xy´ sin(β) cos(β) 0 y1 0 0 1 1
=.
Computação Gráfica
Composição de TransformaçõesComposição de Transformações
Composição de Transformações (1/4)
P P´ P´´T1 T2
P´ = T1 · P e P´´= T2 · P´
� No espaço homogéneo� Composição de Transformações = Produto de Matrizes
©2010, CG&M/IST e Figuras Addison Wesley
� Transformações associam-se � Da direita para a esquerda� Pela ordem inversa de aplicação
P´´= T2 · (T1 · P)
P´´= (T2 ○ T1) · P = (T2 · T1) · P
Exemplo: rotação em torno de um ponto
Composição de Transformações (2/4)
Problema: Rotação definida em relação a (0, 0). Como rodar em torno de um ponto qualquer?
Resposta: sequência de 3 transformações básicas.
Y Y YY T(-x1,-y1) R(θ) T(x1,y1)
©2010, CG&M/IST e Figuras Addison Wesley
X X
P1
XT(-x1,-y1)
P1
X
x1
y1
R (θ) T(x1,y1)
T = T(x1,y1) . R(θ) . T(-x1,-y1) =
1 0 x1 cos θ -sin θ 0 1 0 -x1 cos θ -sin θ x1(1 - cos θ) + y1sin θ0 1 y1 sin θ cos θ 0 0 1 -y1 sin θ cos θ y1(1 - cos θ) - x1sin θ0 0 1 0 0 1 0 0 1 0 0 1
. . =
T(-x1,-y1) R(θ) T(x1,y1)
Composição de Transformações (3/4)
� Em geral não é comutativa� Produto de matrizes não o é
� Alguns pares comutativos
©2010, CG&M/IST e Figuras Addison Wesley
� Alguns pares comutativos� Translação ○ Translação
(Translação + Translação)
� Escala ○ Escala (Escala + Escala)
� Rotação ○ Rotação (Rotação + Rotação)
Composição de Transformações (4/4)
Exemplos de Comutatividade
1 0 dx2 1 0 dx1 1 0 (dx1 + dx2)0 1 dy2 0 1 dy1 0 1 (dy1 + dy2)
0 0 1 0 0 1 0 0 1=
.
©2010, CG&M/IST e Figuras Addison Wesley
Sx2 0 0 Sx1 0 0 Sx1.Sx2 0 0 0 Sy2 0 0 Sy1 0 0 Sy1.Sy2 0
0 0 1 0 0 1 0 0 1=
.
cos α -sin α 0 cos β -sin β 0 cos (α + β) -sin (α + β) 0sin α cos α 0 sin β cos β 0 sin (α + β) cos (α + β) 00 0 1 0 0 1 0 0 1
=.
Composição de Transformações (5/5)
Exemplo de composições não comutativas
Translação + Escala
≠
Escala + Translação
©2010, CG&M/IST e Figuras Addison Wesley
Computação Gráfica
Transformações Geométricas:Transformações Geométricas:
Deformação Lateral
Deformação Lateral (shear transformation)
� Transformação primitiva� Não se define por composição
©2010, CG&M/IST e Figuras Addison Wesley
Deformação Lateral (shear transformation)
Deformação lateral em X
MSH = SHX(a) = 1 a 00 1 00 0 1
x´ 1 a 0 xy´ 0 1 0 y
1 0 0 1 1=
.
©2010, CG&M/IST e Figuras Addison Wesley
1 0 0 1 1
Deformação Lateral (shear transformation)
Deformação lateral em Y
x´ 1 0 0 xy´ b 1 0 y
1 0 0 1 1=
.MSH = SHY(b) = 1 0 0
b 1 00 0 1
©2010, CG&M/IST e Figuras Addison Wesley
1 0 0 1 10 0 1
Deformação Lateral (shear transformation)
� Tipo de transformação?
� Questões:� Preserva ângulos?
©2010, CG&M/IST e Figuras Addison Wesley
� Preserva comprimentos?� Preserva paralelismo de linhas?
� É transformação linear?� É transformação afim?� É transformação projectiva?
Transformações Geométricas
Classificação
Projectivas ⊃⊃⊃⊃ Afins ⊃⊃⊃⊃ Lineares
� Projectivas� Podem não preservar o paralelismo das linhas� A imagem de uma linha é um ponto ou uma linha
� Nunca uma curva
©2010, CG&M/IST e Figuras Addison Wesley
� Nunca uma curva
� Afins� Mantêm paralelismo de linhas� A imagem do vector (0,0) pode não ser (0,0)
� Lineares� Transformam linhas em linhas ou em pontos� A imagem do vector (0,0) é sempre (0,0)
Transformações Geométricas 2D
Transformações ElementaresTranslação Escala
Rotação
1 0 dx0 1 dy0 0 1
MT = T(dx,dy) = ME = S(SX,SY) = SX 0 00 SY 00 0 1
©2010, CG&M/IST e Figuras Addison Wesley
Rotação
MR = R(β) =cos(β) -sin(β) 0sin(β) cos(β) 0 0 0 1
Deformação Lateral
MSH = SHX(a) = 1 a 00 1 00 0 1
MSH = SHY(b) = 1 0 0b 1 00 0 1
Computação Gráfica
Transformações Geométricas 3DTransformações Geométricas 3D
Espaço vectorial tri-dimensional (1/2)
� Usa o referencial de mão direita“Right handed coordinate system”� Rotações positivas
� Sentido oposto ao da rotação dos ponteiros do relógio“counterclockwise”
©2010, CG&M/IST e Figuras Addison Wesley
“counterclockwise”
� Eixo ZZ “aponta” para “fora” da página
XZ
Y
(fora da página)
Espaço vectorial tri-dimensional (2/2)
� Referencial de mão direita� Convenção matemática
� Referencial de mão esquerda
©2010, CG&M/IST e Figuras Addison Wesley
� Interpretação natural em CG� Objecto com maiores valores na coordenada Z
� Encontram-se mais distantes do observador
� Na prática usam-se ambos os referenciais� Conforme sistema gráfico, aplicação ou biblioteca
Transformações Geométricas 3D
� Transformações 2D � Matrizes 3x3 no espaço homogéneo
Analogamente
©2010, CG&M/IST e Figuras Addison Wesley
� Transformações 3D� Matrizes 4x4 no espaço homogéneo
Analogamente
Coordenadas Homogéneas
� Espaço 3D representado num espaço 4D� Ponto (x,y,z) transformado num ponto (x,y,z,W)
P3d(x, y, z) → Ph(Wx, Wy, Wz, W), W ≠ 0
©2010, CG&M/IST e Figuras Addison Wesley
� Semelhante a 2D� Ponto 3D tem inúmeras representações em 4D
� Infinitos pontos no espaço homogéneo � representam o mesmo ponto em 3D
� Homogeneização idêntica
Homogeneização em 3D� Idêntica à realizada em 2D
� Dividem-se coordenadas homogéneas por W
(x, y, z, W) =3d (x/W , y/W, z/W, 1)
x/W, y/W e z/W: coordenadas
©2010, CG&M/IST e Figuras Addison Wesley
x/W, y/W e z/W: coordenadas Cartesianas do ponto homogéneo
(x, y, z, W) → (x/W , y/W, z/W)
(x, y, z) → (x , y, z, 1)W=1
Transformações Elementares 3D
Translação
1 0 0 dx0 1 0 dy
MT = T(dx, dy, dz) =
©2010, CG&M/IST e Figuras Addison Wesley
0 1 0 dy0 0 1 dz0 0 0 1
x´ 1 0 0 dx xy´ 0 1 0 dy yz´ 0 0 1 dz z
1 0 0 0 1 1
= .
Transformações Elementares 3D
Escala
Sx 0 0 00 Sy 0 0
MS = S(Sx, Sy, Sz) =
©2010, CG&M/IST e Figuras Addison Wesley
0 Sy 0 00 0 Sz 00 0 0 1
x´ Sx 0 0 0 xy´ 0 Sy 0 0 yz´ 0 0 Sz 0 z
1 0 0 0 1 1
= .
Transformações Elementares 3DRotação
Y
©2010, CG&M/IST e Figuras Addison Wesley
XZ
� Definir matriz de rotação única� Não trivial� Usam-se quaterniões
� Para definir rotações espaciais
Transformações Elementares 3DRotação
Y
Rz(ψ)
Ry(φ)
Rx(θ)
©2010, CG&M/IST e Figuras Addison Wesley
28
XZ
Rx(θ)
� Abordagem mais simples� Realizar rotações apenas sobre eixos de coordenadas� Três matrizes distintas
Transformações Elementares 3D
Rotação
cos θ -sin θ 0 0sin θ cos θ 0 0
Rz(ψ): em torno do eixo dos ZZY
Ry(φ)
©2010, CG&M/IST e Figuras Addison Wesley
sin θ cos θ 0 00 0 1 00 0 0 1
1 0 0 00 cos θ -sin θ 00 sin θ cos θ 00 0 0 1
cos θ 0 sin θ 00 1 0 0-sin θ 0 cos θ 00 0 0 1
Rx(θ): em torno do eixo dos XX Ry(φ): em torno do eixo dos YY
XZ
Rz(ψ) Rx(θ)
Transformações Elementares 3D
Rotação
cos θ -sin θ 0 0sin θ cos θ 0 0
Rz(ψ): em torno do eixo dos ZZY
Ry(φ)
©2010, CG&M/IST e Figuras Addison Wesley
sin θ cos θ 0 00 0 1 00 0 0 1
1 0 0 00 cos θ -sin θ 00 sin θ cos θ 00 0 0 1
cos θ 0 sin θ 00 1 0 0-sin θ 0 cos θ 00 0 0 1
Rx(θ): em torno do eixo dos XX Ry(φ): em torno do eixo dos YY
XZ
Rz(ψ) Rx(θ)
Transformações Elementares 3D
Rotação
� Aproximação Incremental� Para pequenos ângulos
� sin (α) ≈ α� cos(α) ≈ 1
©2010, CG&M/IST e Figuras Addison Wesley
� cos(α) ≈ 1
31
1 -ψ φ 0ψ 1 -θ 0-φ θ 1 00 0 0 1
Rz(ψ) Ry(φ) Rx(θ) =
Transformações Elementares 3D
Deformação Lateral em 3D� Semelhante a 2D
� 2D� Um eixo fixo� Variação no outro
� 3D
©2010, CG&M/IST e Figuras Addison Wesley
3D� Um eixo fixo� Variação nos outros dois
Transformações Elementares 3D
Deformação Lateral em 3D
Deformação Lateral
1 0 shx 00 1 shy 00 0 1 0
SHxy(shx, shy) =
©2010, CG&M/IST e Figuras Addison Wesley33
0 0 1 00 0 0 1
1 shx 0 00 1 0 00 shz 1 00 0 0 1
SHxz(shx, shz) =1 0 0 0shy 1 0 0shz 0 1 00 0 0 1
SHyz(shy, shz) =
Transformações de Corpo Rígido
� Preservam ângulos e comprimentos
� Objecto (corpo) não é� “Transformado” nem distorcido
� Cubo unitário
©2010, CG&M/IST e Figuras Addison Wesley
Cubo unitário� Permanece um cubo unitário
1 0 0 dx0 1 0 dy0 0 1 dz0 0 0 1
T(dx, dy, dz) = cos θ 0 sin θ 00 1 0 0-sin θ 0 cos θ 00 0 0 1
Ry(θ) =
Computação Gráfica
Matriz de Matriz de Transformação Composta
Matriz de Transformação Composta
� Qualquer sequência de� Translações� Rotações� Escalas
©2010, CG&M/IST e Figuras Addison Wesley
� Pode ser representada numa única matriz:
r11 r12 r13 txr21 r22 r23 tyr31 r32 r33 tz0 0 0 1
M =
Matriz de Transformação Composta
� Matriz de transformações genérica (MTC)� Permite aplicar transformação
� Com 9 somas e 9 multiplicações (4+4 se 2D)
©2010, CG&M/IST e Figuras Addison Wesley
x´= x · r11 + x · r12 + x · r13 + tx
y´= y · r21 + y · r22 + y · r23 + ty
z´= z · r31 + z · r32 + z · r33 + tz
xyz
.=x’y’z’
R + T
� Aumento de eficiência (+ eventuais optimizações)
� Avião definido no sistema de coordenadas local
� Problema:� Orientar o avião de acordo com a direcção de voo
Composição de Transformações em 3D
Exemplo Prático
©2010, CG&M/IST e Figuras Addison Wesley
� Numa posição determinada
� Solução:� Aplicar rotação seguida de translação
46
Composição de Transformações em 3D
Exemplo Prático
©2010, CG&M/IST e Figuras Addison Wesley
0|up x DOF| |DOF x (up x DOF)| |DOF| 0
00 0 0 1
R =
Composição de Transformações em 3D
Exemplo Prático
©2010, CG&M/IST e Figuras Addison Wesley
� Como calcular R?
� Funciona sempre?� Não, se DOF em yy
Transformações Geométricas
Mudança de Sistema de Coordenadas
P(2) = M2←3 · P(3) P(1) = M1←2 · P(2)
©2010, CG&M/IST e Figuras Addison Wesley
P = M2←3 · P
M1←3 = M1←2 · M2←3
P
P = M1←2 · P
Transformações Geométricas
Mudança de Sistema de Coordenadas
� Exemplo de aplicação:� Decomposição em sub-objectos
Y
Y
Z
©2010, CG&M/IST e Figuras Addison Wesley
X
Z
X
X
Y
Z
Transformações Geométricas
Mudança de Sistema de Coordenadas
� Para mover o triciclo� Temos de saber as relações das suas partes com o WCS� Exemplo:
� Roda da frente em relação ao WCS
©2010, CG&M/IST e Figuras Addison Wesley51
Transformações Geométricas
Mudança de Sistema de Coordenadas
©2010, CG&M/IST e Figuras Addison Wesley
P(wh) = Rz(β) · Pori(wh)
Mwo←wh = T(βr, 0, 0)
P(wo) = T(βr, 0, 0) · Rz(β) · P(wh)
Computação Gráfica
Grafo de CenaGrafo de Cena
Grafo de Cena
� Cenas 3D armazenadas em DAG� Grafo de Cena
� Java3D� VRML� OpenSceneGraph
Como descrever um paralelepípedo numa cena?
©2010, CG&M/IST e Figuras Addison Wesley
� OpenSceneGraph� OpenSG
� Grafo de Cena contém� Objectos (primitivas gráficas)
� Cubos, esferas, cones, superfícies,....)� Atributos e Transformações
(com estas primitivas)
Transformações em Grafos de Cena
raíz
t0
g1
t1 t2
t5 t6
p3 p4
g3
Exemplo de um Grafo de Cena
©2010, CG&M/IST e Figuras Addison Wesley
t1 t2
t3 t4
p1
p2
g3 g2
g3
transformações
grupos de obj
primitivas
� Neste grafo de cena� A transformação t0 afecta todos os objectos� Enquanto t2 só afecta p2 e uma instância do grupo g3
� t2 não afecta p1 e a outra instância de g3
Múltipla Instanciação
raíz
t0
g1
t1 t2
t5 t6
p3 p4
g3
Exemplo de um Grafo de Cena
©2010, CG&M/IST e Figuras Addison Wesley
� Múltiplas instâncias de uma sub-árvore� Podem utilizar-se várias� É necessário definir antes de instanciar
� Mais simples de concretizar
t1 t2
t3 t4
p1
p2
g3 g2
g3
transformações
grupos de obj
primitivas
Transformações Hierárquicas (1/2)
� Matriz de Transformação Composta (MTC)� Matriz a aplicar a cada objecto
� Cálculo da MTC� Concatenação de todas as transformações
©2010, CG&M/IST e Figuras Addison Wesley
� Concatenação de todas as transformações� Em nós superiores no caminho
� Desde a raiz até ao objecto
� Detalhes variam consoante o sistema� Tenham atenção
� OpenGL e VRML têm diferenças� Vejam a ordem com que são realizadas as transofrmações
� RTFM
Transformações Hierárquicas (2/2)
Exemplo
m0
� No grafo� para g0, temos MTC = m0
� para p1, MTC = m1 * m0
©2010, CG&M/IST e Figuras Addison Wesley
g0
m1
m3
p1
p3 p4
m2
g2
� para p1, MTC = m1 * m0
� para p3, MTC = m2 * m0
� para p4, MTC = m3 * m2 * m0
� Em que� mi - matriz de transformação� pi - primitiva associada ao nó i� gi - sub-árvore com raíz em i
?