Slides Computação Gráfica · Questão (exame) [3.0v] Considere os polígonos “A” e “B” e...

Post on 14-Oct-2020

0 views 0 download

Transcript of Slides Computação Gráfica · Questão (exame) [3.0v] Considere os polígonos “A” e “B” e...

Transformações GeométricasComposição, Mudança de Coordenadas e Grafos de

Cena

Capítulo 3

1

Questão (exame)[3.0v] Considere os polígonos “A” e “B” e o ponto “P”

representados na figura abaixo.

a) calcule a matriz final que representa a transformação a aplicar

ao polígono “A” para que este se transforme no polígono “B”.

b) Calcule as coordenadas do ponto “Q” resultante da aplicação

da transformação referida anteriormente a “P”

2

Questão (exame)[2.0v] (…) calcular a matriz de transformação (…)

100

210

201

100

0)º45cos()º45sin(

0)º45sin()º45cos(

100

410

301

)2,2()º45()4,3( TRTM

100

2242

22

2

32

22

2

M

?3

Questão 2, exame de 20/07/11[1.0v] (…) calcular as coordenadas de “Q” (…)

1

224

3

1

4

4

100

2242

22

2

32

22

2

PMQ ?4

Transformações em 3DTransformações Geométricas

5

Transformações Elementares 3D

Translação

1 0 0 dx

0 1 0 dy

0 0 1 dz

0 0 0 1

MT = 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

= .

6

Transformações Elementares 3D

Escala

Sx 0 0 0

0 Sy 0 0

0 0 Sz 0

0 0 0 1

MS = 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

= .

7

Transformações Elementares 3D

Rotação

cos -sin 0 0

sin cos 0 0

0 0 1 0

0 0 0 1

Rz(): em torno do eixo dos ZZ

1 0 0 0

0 cos -sin 0

0 sin cos 0

0 0 0 1

cos f 0 sin f 0

0 1 0 0

-sin f 0 cos f 0

0 0 0 1

Rx(): em torno do eixo dos XX Ry(f): em torno do eixo dos YY

X

Y

Z

Rz()

Ry(f)

Rx()

8

Instâncias de Objectos

Cada instância de um objecto na cena

conjunto de Transformações Geométricas

9

Matriz de Transformação Composta

Transformações Geométricas

10

Matriz de Transformação Composta

Qualquer sequência deTranslações, Rotações e Escalas

Pode ser representada numa única matriz:

r11 r12 r13 txr21 r22 r23 tyr31 r32 r33 tz0 0 0 1

M =

11

Composição de Transformações

Transformações associam-se Da direita para a esquerda

Pela ordem inversa de aplicação

P P´ P´´T1 T2

P´ = T1 · P e P´´= T2 · P´

P´´= T2 · (T1 · P)

P´´= (T2 ○ T1) · P = (T2 · T1) · P

Coordenadas homogéneas

Composição de Transformações Produto de Matrizes

12

Mudança do Sistema de Coordenadas

p

X

Y

e

xe

ye

yp

xp

13

Mudança do Sistema de Coordenadas

 

x p

y p

1

é

ë

ê ê ê

ù

û

ú ú ú

=

1 0 xe

0 1 ye

0 0 1

é

ë

ê ê ê

ù

û

ú ú ú

ux vx 0

uy vy 0

0 0 1

é

ë

ê ê ê

ù

û

ú ú ú

up

v p

1

é

ë

ê ê ê

ù

û

ú ú ú

=

ux vx xe

uy vy ye

0 0 1

é

ë

ê ê ê

ù

û

ú ú ú

p

X

Y

e

uvxy pevu

p

100

14

Transformações Geométricas

Mudança de Sistema de Coordenadas

P(2) = M2←3 · P(3)

M1←3 = M1←2 · M2←3

P

P(1) = M1←2 · P(2)

15

WCS

DOF

45°

UE

V

P

S

C

T

Transformações Geométricas

Mudança de Sistema de Coordenadas

𝐷𝑂𝐹𝑊𝐶𝑆 = 1 1 𝑇

𝐸𝑊𝐶𝑆 = 2 0 𝑇

𝐶𝑈𝑉 = 0 2 𝑇

𝑃𝑆𝑇 = 3 0 𝑇

𝜃 = 45°

𝑀𝑆𝑇→𝑊𝐶𝑆 = ⋯

𝑃𝑊𝐶𝑆 = ⋯

16

Grafo de Cena

17

Motivação:

Modelo de um carro

Chassis e quatro rodas

Movimento do carro e rotação das rodas relacionados

18

Grafo de Cena

Cada nó (excepto raiz) tem exactamente um parent

Pode ter inúmeros filhos

Folha não tem filhos (usualmente é uma primitiva)

raiz

folha

19

Grafo do Carro

20

Grafo de Cena

Cenas 3D armazenadas em DAG

Grafo de Cena

• Java3D

• VRML

• OpenSceneGraph

• OpenSG

Grafo de Cena contém

Objectos (primitivas gráficas)

• Cubos, esferas, cones, superfícies,....

• Atributos e Transformações

Como descrever um

paralelepípedo numa cena?

(com estas primitivas)

21

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

22

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

23

Transformações Hierárquicas (1/2)

Matriz de Transformação Corrente (CTM)Matriz a aplicar a todos os vértices

Cálculo da CTMConcatenação de todas as transformações em nós superiores no caminho

24

Transformações Hierárquicas (2/2)

Exemplo

m0

g0

m1

m3

p1

p3 p4

m2

g2

No grafo

para g0, temos MTC = m0

para p1, MTC = m0 * m1

para p3, MTC = m0 * m2

para p4, MTC = m0 * m2 * m3

Em que

mi - matriz de transformação

pi - primitiva associada ao nó i

gi - sub-árvore com raíz em i

?

25

Grafo para um Robot

26

Realizar o Robot

Primitivas Geoméricas Simples (e.g. boxes)

Matrizes descrevem posição e orientação do nó

relativamente ao seu paiMlla posiciona left lower arm relativamente ao left upper arm

Mlla

27

Grafo com Matrizes

28

Construção de uma cena em Three.js

Transformações Geométricas

29

ModelaçãoUm exemplo

30

ModelaçãoUm exemplo

Primitivas (P1, P2 e P3)

Cubo Unitário

Transformações

Translação e Escala

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3P1P3

P2

31

P3 = Cubo Unitário

M4 = Escala

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

32

P3 = Cubo Unitário

M4 = Escala

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

33

P2 = Cubo Unitário

M3 = Escala seguida de Translação

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

34

P2 = Cubo Unitário

M3 = Escala seguida de Translação

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

35

G2 = composição de duas primitivas

M2 = Translação

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

36

G2 = composição de duas primitivas

M2 = Translação

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

37

P1 = Cubo Unitário

M1 = Escala

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

38

P1 = Cubo Unitário

M1 = Escala

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

39

G0 = Objecto Composto

M0 = Translação

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

40

G0 = Objecto Composto

M0 = Translação

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

41

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

42

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

43

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

44

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

45

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

46

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

47

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

48

ModelaçãoUm exemplo

m0

g0

m1

m4

p1

p2 p3

m2

g2

m3

49

Hierarquia: Modular Swinging Robot vs Hover Robot

50