Mestrado em Engenharia Informática e de Computadores
Ambientes de Visualização Tridimensional
Modelação Geométrica
Grafos de Cena e Transformações
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Grafos de Cena
Modelação Geométrica
MEIC
AVT
Grafo de Cena
Motivação
Cenas são geralmente demasiado complexas
Para se representarem como um único modelo
•
Malha de polígonos, instanciação de primitivas, ....
Modelos são dinâmicos
Posição e orientação de partes variam no tempo
Grafo de cena permite representação hierárquica
facilita o a modelação e controle dos modelos
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Grafo de Cena
Motivação
MEIC
AVT
Grafo de Cena
Motivação
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Grafo de Cena
Motivação
MEIC
AVT
Grafo de Cena
Motivação
∆
x
1∆
y
1α
β
X
Y
α
β
∆
x
2∆
x
3∆
x
4∆
y
2∆
y
4∆
y
3© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Grafo de Cena
MEIC
AVT
Grafos de Cena
Hierarquia modular
Organização em árvore ou DAG
Construção ascendente (bottom-up)
Permitem construir modelos geométricos
A partir de primitivas básicas
Propagação de actualizações
Alteração num componente reflecte-se no modelo
Ex.: aumentar comprimento de braço do pêndulo
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
∆
x
∆
y
1θ
∆
w
1∆
v
2φ
X
Y
∆
v
1Grafos de Cena
MEIC
AVT
Grafos de Cena
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transf. Geom. Planas Elementares
Transformações Geométricas
MEIC
AVT
Transf. Geom. Planas Elementares
Operações sobre vectores (matrizes)
Soma
Multiplicação
Suficientes para grande parte da modelação
Translação
Rotação
Escala
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Mover Objectos
Num Espaço Vectorial
aqui = [2, 3]
Tali = [8, 5]
TY
X
[0, 0]
TSolução:
Somar a
6
2
2
3
MEIC
AVT
Transformações Geométricas
Translação
(1/2)
Soma de vectores
P´= T + P com T =
dx
dy
P = P´ =
x
y
x´
y´
onde
x´ = x + dx, y´ = y + dy
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Geométricas
Translação
(2/2)
Para deslocar polígonos
aplicar a transformação a cada um dos vértices
X
Y
P(x,y)
P´(x´,y´)
x
x’
y
y’
MEIC
AVT
Transformações Geométricas
Escala
(1/2)
Multiplicação matricial
P = P´ =
x
y
x´
y´
x´ = S
x
. x , y´ = S
y
. y
Sx 0
0 Sy
x
y
x´
y´
Sx 0
0 Sy
=
.
P´= S · P com S =
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Geométricas
Escala
(2/2)
X
Y
P(x,y)
P´(x´,y´)
Sx = Sy = 2 (Ampliação)
X
Y
X
Y
Sx = 2; Sy = 1
Sx = 1; Sy = -1
X
Y
Sx = 1; Sy = 2
Uniforme
Não - Uniforme
MEIC
AVT
Transformações Geométricas
Escala
(3/3)
Propriedades
Não preserva comprimentos
Não preserva ângulos
•
Excepto escala
uniforme
Escala uniforme é CONFORME
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Geométricas
Rotação
(1/3)
X
Y
P (x,y)
P´(x´,y´)
α
β
x
x´
y
y´
sin (
α
+
β
) = cos
α
. sin
β
+ sin
α
. cos
β
cos (
α
+
β
) = cos
α
. cos
β
- sin
α
. sin
β
MEIC
AVT
Transformações Geométricas
Rotação
(2/3)
Rotação de vectores por um ângulo β
P = P´ =
x
y
x´
y´
P’ = R
β
. P
x´= x . cos
β
- y . sin
β
y´= x . sin
β
+ y . cos
β
onde
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Geométricas
Rotação
(3/3)
X
Y
P (x,y)
P´(x´,y´)
α
β
x
x´
y
y´
P´= R
β. P com R
β=
cos β
sin β
-sin β
cos β
MEIC
AVT
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
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)
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Geométricas
Transformações Lineares
Escala e Rotação
Transformações Lineares
•
Expressas pelas matrizes:
cos
β
-sin
β
sin
β
cos
β
Sx 0
0 Sy
MEIC
AVT
Transformações Geométricas
Transformações Lineares
Translação
Não é transformação Linear
•
Não se pode representar na forma:
É uma transformação afim.
•
Porquê?
x’ = ax + by
y’ = cx + dy
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Sistema de equações lineares e matrizes
Problema
Modelo apresentado não é uniforme
•
Translação - Soma de vectores
•
Escala e Rotação - Produto de matrizes
Gostaríamos de ter
Transformações como sistemas de equações
x´ = a x + b y
y´ = c x + d y
MEIC
AVT
Coordenadas Homogéneas
Transformações Geométricas
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Coordenadas Homogéneas
(1/5)
Transformações são multiplicações
Espaço 2D representado num espaço 3D
Ponto (x,y) transformado num ponto (x,y,W)
x
y
w
P
h(x·W, y·W, W)
P
2d
(x, y)
→
P
h
(Wx, Wy, W), W
≠
0
P
2d(x, y)
MEIC
AVT
Coordenadas Homogéneas
(2/5)
x
y
w
P
h(x·W, y·W, W)
P
2d(x, y)
(x, y, W) =
2d
(x’ , y’, W’) se múltiplos
Em coordenadas homogéneas
Cada ponto 2D tem inúmeras representações
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Coordenadas Homogéneas
(3/5)
Dois pontos no espaço homogéneo
Podem representar o mesmo ponto em 2D
x
y
w
P
h(x’, y’, W’)
P
2d(u, v)
(x, y, W) =
2d
(x’ , y’, W’) se (x/W, y/W) = (x’/W’, y’/ W’)
P
h(x, y, W)
MEIC
AVT
Coordenadas Homogéneas
(4/5)
Infinitos pontos no espaço homogéneo
Correspondem a um ponto 2D
Ponto 2D
Representa uma recta no espaço homogéneo
x
y
w
P
h(x’, y’, w’)
P
2d(u, v)
P
h(x, y, w)
P
h(x”, y”, w”)
(tx, ty, tW), com t ≠ 0
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Coordenadas Homogéneas
(5/5)
x
y
w
P
h(x, y, w)
P
2d(x/w, y/w, 1)
(x, y, W) =
2d
(x/W , y/W, 1)
x/W
e y/W: coordenadas Cartesianas do
ponto homogéneo
W=1
MEIC
AVT
Transformações
no Espaço Homogéneo
(1/4)
Pontos 2D
Escrevem-se como vectores de 1x3
P = [x y 1]
T
• Transformações geométricas 2D
– Escrevem-se como matrizes de 3x3
• No espaço homogéneo considera-se
– W=1
para transformações afins em 2D
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Translação
Transformações
no Espaço Homogéneo
(2/4)
x´
1 0 dx x
y´
0 1 dy y
1 0 0 1 1
=
.
P´= M
T
· P com M
T
=
1 0 dx
0 1 dy
0 0 1
MEIC
AVT
Transformações
no Espaço Homogéneo
(3/4)
Escala
P´= M
T
· P com M
T
=
S
X
0 0
0 S
Y
0
0 0 1
x´
Sx 0 0 x
y´
0 Sy 0 y
1 0 0 1 1
=
.
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações
no Espaço Homogéneo
(4/4)
Rotação
P´= M
T
· P com M
T
=
cos(β) -sin(β) 0
sin(β) cos(β) 0
0 0 1
x´
cos(
β
) -sin(
β
)
0 x
y´
sin(
β
)
cos(
β
) 0 y
1 0 0 1 1
=
.
MEIC
AVT
Matrizes de Transformação
M
T
= T(dx,dy) =
1 0 dx
0 1 dy
0 0 1
Translação
Escala
M
E
= S(S
X
,S
Y
) =
S
0 S
X
0 0
Y
0
0 0 1
Rotação
M
R
= R(β) =
cos(β) -sin(β) 0
sin(β) cos(β) 0
0 0 1
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Composição de Transformações
Transformações Geométricas
MEIC
AVT
Composição de Transformações
Transformações associam-se
Da direita para a esquerda
Pela ordem inversa de aplicação
P P´
T
P´´
1
T
2
P´ = T
1
· P e P´´= T
2
· P´
P´´= T
2
· (T
1
· P)
P´´= (T
2
○ T
1
) · P = (T
2
·
T
1
) · P
No espaço homogéneo
Composição de Transformações = Produto de Matrizes
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
Exemplo: rotação em torno de um ponto
Composição de Transformações
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.
X Y X Y P1 X Y T(-x1,-y1) P1 X Y 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
.
.
=
MEIC
AVT
Composição de Transformações
Em geral não é comutativa
Produto de matrizes não o é
Alguns pares comutativos
Translação ○ Translação
(Translação + Translação)
Escala ○ Escala
(Escala + Escala)
Rotação ○ Rotação
(Rotação + Rotação)
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Composição de Transformações
Exemplos de Comutatividade
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 (
α
+
β
) 0
sin
α
cos
α
0 sin
β
cos
β
0 sin (
α
+
β
) cos (
α
+
β
) 0
0 0 1 0 0 1 0 0 1
=
.
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
=
.
MEIC
AVT
Composição de Transformações
Exemplo de composições não comutativas
Translação + Escala
≠
Escala + Translação
MEIC
AVT
Transformações Inversas
Transformações Geométricas
MEIC
AVT
Transformações Inversas
Podemos fazer o cálculo algebricamente
Calcular a matriz inversa directamente
Computacionalmente pesado
−
−
−
=
−
−
=
⇒
=
−a
c
b
d
bc
ad
a
c
b
d
A
A
d
c
b
a
A
11
1
=
⇒
=
− 22 21 12 11 31 32 11 12 32 31 22 21 21 23 11 13 33 31 13 11 31 33 21 23 23 22 13 12 32 33 12 13 33 32 23 22 1 33 32 31 23 22 21 13 12 111
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
A
A
a
a
a
a
a
a
a
a
a
A
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Inversas
Conhecendo transformação representada pela matriz
Podemos usar a geometria para determinar as inversas
T(d
x
, d
y
, d
z
)
-1
=?
S(s
x
, s
x
, s
z
)
-1
=?
R
x
(θ)
-1
=?
R
y
(θ)
-1
=?
R
z
(θ)
-1
=?
MEIC
AVT
Transformações Inversas
(
)
(
)
−
−
=
−
−
=
−1
0
0
1
0
0
1
,
,
1 y x y x y xd
d
d
d
T
d
d
T
( )
=
=
−1
0
0
0
1
0
0
0
1
1
,
1
,
1 y x y x y xs
s
s
s
S
s
s
S
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
−
=
−
−
−
−
−
=
−
=
−1
0
0
0
cos
sin
0
sin
cos
1
0
0
0
cos
sin
0
sin
cos
1θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
z zR
R
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Inversão de
Transformações Compostas
A inversa de uma série de transformações
É uma série das inversas em ordem inversa ☺
1
1
1
2
1
1
2
1
−
−
−
−
=
=
M
M
M
M
M
M
M
M
n
n
L
L
MEIC
AVT
Transformações em 3D
Transformações Geométricas
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
Espaço vectorial tridimensional
(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”
Eixo ZZ “aponta” para “fora” da página
X
Z
Y
MEIC
AVT
Espaço vectorial tridimensional
(2/2)
Referencial de mão direita
Convenção matemática
Referencial de mão esquerda
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
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Geométricas 3D
Transformações 2D
Matrizes 3x3 no espaço homogéneo
Transformações 3D
Matrizes 4x4 no espaço homogéneo
Analogamente
MEIC
AVT
Coordenadas Homogéneas
Espaço 3D representado num espaço 4D
Ponto (x,y,z) transformado num ponto (x,y,z,W)
P
3d
(x, y, z)
→
P
h
(Wx, Wy, Wz, W), W
≠
0
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
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
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
Cartesianas do ponto homogéneo
(x, y, z, W) → (x/W , y/W, z/W)
(x, y, z) → (x , y, z, 1)
MEIC
AVT
Transformações Elementares 3D
Translação
1 0 0 dx
0 1 0 dy
0 0 1 dz
0 0 0 1
M
T
= T(dx, dy, dz) =
x´
1 0 0 dx x
y´
0 1 0 dy y
z´
0 0 1 dz z
1 0 0 0 1 1
=
.
MEIC
AVT
Transformações Elementares 3D
Escala
Sx 0 0 0
0 Sy 0 0
0 0 Sz 0
0 0 0 1
M
S
= S(Sx, Sy, Sz) =
x´
Sx
0 0 0 x
y´
0 Sy 0 0 y
z´
0 0 Sz 0 z
1 0 0 0 1 1
=
.
MEIC
AVT
Transformações Elementares 3D
Rotação
X
Y
Z
Definir matriz de rotação única
Não trivial
Usam-se quaterniões
•
Para definir rotações espaciais
MEIC
AVT
Transformações Elementares 3D
Rotação
X
Y
Z
R
z(ψ)
R
y(φ)
R
x(θ)
Abordagem mais simples
Realizar rotações apenas sobre eixos de coordenadas
Três matrizes distintas
MEIC
AVT
Transformações Elementares 3D
Rotação
cos
θ
-sin
θ
0 0
sin
θ
cos
θ
0 0
0 0 1 0
0 0 0 1
R
z(
ψ
): em torno do eixo dos ZZ
1 0 0 0
0 cos
θ
-sin
θ
0
0 sin
θ
cos
θ
0
0 0 0 1
cos
θ
0 sin
θ
0
0 1 0 0
-sin
θ
0 cos
θ
0
0 0 0 1
R
x(
θ
): em torno do eixo dos XX
R
y
(
φ
): em torno do eixo dos YY
X
Y
Z
R
z(ψ)
R
y(φ)
R
x(θ)
MEIC
AVT
Transformações Elementares 3D
Rotação
cos
θ
-sin
θ
0 0
sin
θ
cos
θ
0 0
0 0 1 0
0 0 0 1
R
z(
ψ
): em torno do eixo dos ZZ
1 0 0 0
0 cos
θ
-sin
θ
0
0 sin
θ
cos
θ
0
0 0 0 1
cos
θ
0 sin
θ
0
0 1 0 0
-sin
θ
0 cos
θ
0
0 0 0 1
R
x(
θ
): em torno do eixo dos XX
R
y(
φ
): em torno do eixo dos YY
X
Y
Z
R
z(ψ)
R
y(φ)
R
x(θ)
MEIC
AVT
Transformações Elementares 3D
Rotação
Aproximação Incremental
Para pequenos ângulos
•
sin (
α
)
≈
α
•
cos (
α
)
≈ 1
1 -
ψ
φ
0
ψ
1 -
θ
0
-
φ
θ
1 0
0 0 0 1
R
z(
ψ
) R
y(
φ
) R
x(
θ
) =
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
OpenGL
Transformações Geométricas
MEIC
AVT
Current Transformation Matrix
Matriz 4 x 4 no espaço homogéneo
A current transformation matrix (CTM) é parte do
estado do OpenGL
CTM é aplicada a todos os vértices que “passam”
pelo pipeline geométrico
A CTM é definida na aplicação e carregada na
unidade de transformação
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Pipeline de Geometria OpenGL
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MODELVIEW
matrix
PROJECTION
matrix
perspective
division
viewport
transformation
w
z
y
x
eye eye eye eyew
z
y
x
1
dev dev devz
y
x
proj proj proj projw
z
y
x
=dev win win winz
y
x
original
vertex
vertices in the
eye coordinate
space
Clipping Coordinates
normalized device
coordinates
(foreshortened)
final window
coordinates
MEIC
AVT
Pilhas de Matrizes em OpenGL
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Transformações Elementares 3D
Translação
glTranslate{f,d}( TYPE x, TYPE, y, TYPE z );
=
1
0
0
0
1
0
0
0
1
0
0
0
1
*
z
y
x
CTM
CTM
MEIC
AVT
Transformações Elementares 3D
Escala
=
1
0
0
0
0
0
0
0
0
0
0
0
0
*
z
y
x
CTM
CTM
glScale{f,d}( TYPE x, TYPE y, TYPE z);
MEIC
AVT
Transformações Elementares 3D
Rotação
+
−
+
−
−
−
−
−
+
−
+
−
+
−
+
−
+
−
=
=
1
0
0
0
0
cos
)
cos
1
(
sin
)
cos
1
(
sin
)
cos
1
(
0
sin
)
cos
1
(
cos
)
cos
1
(
sin
)
cos
1
(
0
sin
)
cos
1
(
sin
)
cos
1
(
cos
)
cos
1
(
*
2 2 2θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
z
x
yz
y
xz
x
yz
y
z
yx
y
xz
z
xy
x
M
M
CTM
CTM
R RMEIC
AVT
Matriz de Transformação Composta
Transformações Geométricas
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Matriz de Transformação Composta
Qualquer sequência de
Translações
Rotações
Escalas
Pode ser representada numa única matriz:
r
11
r
12
r
13
t
x
r
21
r
22
r
23
t
y
r
31
r
32
r
33
t
z
0 0 0 1
M =
MEIC
AVT
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)
x´= x · r
11
+ x · r
12
+ x · r
13
+ t
x
y´= y · r
21
+ y · r
22
+ y · r
23
+ t
y
z´= z · r
31
+ z · r
32
+ z · r
33
+ t
z
x
y
z
.
=
x’
y’
z’
R
+ T
Aumento de eficiência (+ eventuais optimizações)
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Mudança do Sistema de Coordenadas
p
X
Y
e
x
e
y
e
y
p
x
p
MEIC
AVT
Mudança do Sistema de Coordenadas
=
=
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
e v u e v u p p v u v u e e p py
y
y
x
x
x
v
u
y
y
x
x
y
x
y
x
p
X
Y
e
uv
xy
p
e
v
u
p
=
1
0
0
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Composição de Transformações em 3D
Exemplo Prático
x
y
z
.
=
x’
y’
z’
R
+ T
MEIC
AVT
0
up
x
DOF DOF
x
(up
x
DOF)
DOF 0
0
0 0 0 1
R =
Como calcular R?
Composição de Transformações em 3D
Exemplo Prático
x
y
z
.
=
x’
y’
z’
R
+ T
MEIC
AVT
Mudança do Sistema de Coordenadas
=
=
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
e v u e v u p p v u v u e e p py
y
y
x
x
x
v
u
y
y
x
x
y
x
y
x
p
X
Y
e
uv
xy
p
e
v
u
p
=
1
0
0
MEIC
AVT
C
x
up
x
DOF DOF
x
(up
x
DOF)
DOF C
y
C
z
0 0 0 1
P’ =
Composição de Transformações em 3D
Exemplo Prático
⋅P
MEIC
AVT
Transformações Geométricas
Mudança de Sistema de Coordenadas
P
(2)
= M
2←3
· P
(3)
M
1←3
= M
1←2
· M
2←3
P
P
(1)
= M
1←2
· P
(2)
MEIC
AVT
Grafo de Cena
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Grafo de Cena
Cenas 3D armazenadas em DAG
Grafo de Cena
•
Java3D
•
VRML
•
OpenSceneGraph
•
OpenSG
•
Na vossa aplicação…
Grafo de Cena contém
Objectos (primitivas gráficas)
•
Cubos, esferas, cones, superfícies,....)
•
Atributos e Transformações
MEIC
AVT
Transformações em Grafos de Cena
raíz
t0
g1
t1
t2
t3
t4
t5
t6
p1
p2
p3
p4
g3
g2
g3
g3
transformações
grupos de obj
primitivas
Exemplo de um Grafo de Cena
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
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL
MEIC
AVT
Múltipla Instanciação
Múltiplas instâncias de uma sub-árvore
Podem utilizar-se várias
É necessário definir antes de instanciar
•
Mais simples de concretizar
raíz
t0
g1
t1
t2
t3
t4
t5
t6
p1
p2
p3
p4
g3
g2
g3
g3
transformações
grupos de obj
primitivas
Exemplo de um Grafo de Cena
MEIC
AVT
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
•
Em nós superiores no caminho
Desde a raiz até ao objecto
Detalhes variam consoante o sistema
RTFM
© 2011 Corpo docente de AVT/ CG&M / DEI / IST / UTL