18
SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela, como na figura 4. As coordenadas da imagem projetada do ponto P medido nas coordenadas do observador são facilmente calculadas. Figura 5 - O plano mostrando detalhes da projeção em perspectiva. x Dx Sz s e e y Dy Sz s e e (13)

SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

Embed Size (px)

Citation preview

Page 1: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 14 -A Transformação de Perspectiva

Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela, como na figura 4. As coordenadas da imagem projetada do ponto P medido nas coordenadas do observador são facilmente calculadas.

Figura 5 - O plano mostrando detalhes da projeção em perspectiva.

xDxSzs

e

e

y

DySzs

e

e

(13)

Page 2: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 15 -A Transformação de Perspectiva Alternativamente, podemos converter para coordenadas de tela, incluindo uma especificação da localização da janela pela qual a imagem é mostrada

xDxSz

V Vse

esx cx

y

DySz

V Vse

esy cy

(14)

Os quatro parâmetros são dados em notação “center-size”: a janela está centrada em , tem unidades de altura e unidades de largura. Estes quatro parâmetros podem ser determinados a partir dos parâmetros da janela de visualização.

A transformação de perspectiva é fundamentalmente diferente daquela para rotação, translação e mudança de escala: ela envolve divisão pelo valor da coordenada , enquanto as outras envolvem apenas multiplicações e adições. Gerar uma imagem em perspectiva verdadeira, requer divisão pela profundidade de cada ponto.

Page 3: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

. Se a razão D/S for pequena, abertura será “ampla” e produzirá imagens similares àquelas de ângulo aberto.

. Uma razão D/S grande especifica uma abertura “estreita” correspondendo a vistas do tipo “telefoto”

D1 D2

SImagem

Vista 2

Vista 1

Page 4: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

Se a razão D/S for pequena, abertura será “ampla” e produzirá imagens similares àquelas de ângulo aberto como a foto acima

Uma razão D/S grande especifica uma abertura “estreita” correspondendo a vistas do tipo “telefoto” como a foto acima

Page 5: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 16 – Clipping tridimensional

É possível demonstrar que:

eee

eee

zySDz

zxSDz

(14)

Page 6: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 17 – Clipping tridimensional

Por conveniência da tarefa de recorte, definiremos um novo sistema de coordenadas, “o sistema de coordenadas de clipping”, em função do sistema de coordenadas do observador

(14)

1000010000/0000/

SDSD

N cc

Nzyxzyx eeeccc 11

Onde

ccc

ccc

zyze

zxz

Page 7: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 17 – Clipping tridimensional

Reescrevedo a equação 14

(14)

cc

cxsxc

cs VV

zxx

cxsxc

cs VV

zyy

Page 8: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 18 - Visão em perspectiva de um cuboConsidere um cubo centrado na origem do sistema de coordenadas do “mundo”, definido pelos seguintes pontos e linhas

Linhas Pontos

x y z

AB, BC, A -1 1 -1

CD, DA, B 1 1 -1

EF, FG, C 1 -1 -1

GH, HE D -1 -1 -1

AE, BF, E -1 1 1

CG, DH F 1 1 1

G 1 -1 1

H -1 -1 1

Vamos observar este cubo a partir do ponto (6,8,7.5), com o eixo de visualização apontando diretamente para a origem do sistema de coordenadas do “mundo”. Existe ainda um grau de liberdade sobrando, que é uma rotação arbitrária em torno do eixo : vamos assumir que o eixo está no plano z = 7.5.

Page 9: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 19 - Visão em perspectiva de um cubo

Figura 10 - Cinco passos para realizar a transformação de visualização: (a) Translação; (b) Rotação em torno do eixo x; (c) Rotação em torno do eixo y; (d) Rotação em torno do eixo x; (e) Invertendo o eixo z.

Page 10: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

1) O sistema de coordenadas é transladado para (6,8,7.5), como mostrado na figura (a). O ponto (6,8,7.5) no sistema de coordenadas original passa a ser a origem:

T1

1 0 0 00 1 0 00 0 1 06 8 7 5 1

.

Operação desejada Matriz Translação

Resultando Note que usamos a operação inversa (-6, -8, -7.5)

1010000100001

11

zyx TTT

zyxzyx

Page 11: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

2) Rotação de -90 do sistema de coordenadas em torno do eixo “x’”, como mostrada na figura (b). Observe que, devido à utilização da transformação inversa, substituímos = 90 na equação de rotação em torno do eixo “x”.

Operação desejada Matriz de Rotação de um ângulo , em torno de do eixo X

Resultando

T2

1 0 0 00 0 1 00 1 0 00 0 0 1

x y z x y zsin

sin1 1

1 0 0 00 00 00 0 0 1

coscos

Page 12: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

3) Rotação em torno do eixo y’ , de um ângulo , tal que o eixo z’ fique na direção do eixo z (embora no sentido contrário), como mostrado na figura (c). Novamente devemos utilizar a transformação inversa.

Operação desejada Matriz de Rotação de um ângulo , em torno de do eixo Y

Resultando

100008.006.0001006.008.0

3T

10000cos0001000cos

11

sin

sin

zyxzyx

Page 13: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

4) Rotação em torno do eixo X’ , de um ângulo , tal que a origem do sistema de coordenadas original fique sobre o eixo , como mostrado na figura (d). Novamente devemos utilizar a transformação inversa.

Operação desejada Matriz de Rotação de um ângulo , em torno de do eixo X

Resultando T4

1 0 0 00 08 0 6 00 0 6 08 00 0 0 1

. .. .

x y z x y zsin

sin1 1

1 0 0 00 00 00 0 0 1

coscos

Page 14: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

5) Finalmente, invertendo o sentido do eixo z , de modo a criar um sistema de coordenadas de “mão-esquerda”, de acordo com as convenções do sistema de coordenadas do observador, como mostrado na figura (e). Uma matriz de mudança de escala é utilizada. Esta operação completa as cinco transformações primitivas necessárias para estabelecer a transformação de visualização.

Operação desejada Matriz de Mudança de escala

Resultando

1000010000100001

5T

x y z x y z

SS

S

x

y

z1 1

0 0 00 0 00 0 00 0 0 1

Page 15: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

Suponha que desejamos preencher uma tela de 30 cm x

30 cm, desenhada para ser vista de uma distância de 60 cm, e cujo o sistema de coordenadas da tela vai de 0 a 1023. Assim, D = 60, S = 15, e a transformação resultante será

Page 16: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 21 - Visão em perspectiva de um cubo

N

4 0 0 00 4 0 00 0 1 00 0 0 1

e a equação 18 passa a ser

x xzs

c

c

5115 5115. . y y

zsc

c

5115 5115. . (23)

Todos os detalhes das transformações já foram especificados. Cada vértice do cubo é transformado pela matriz VN, sofre um processo de “clipping”, e convertido para coordenadas de tela usando-se a equação 23.

V TT T T T N

1 2 3 4 5

3 2 144 0 48 02 4 192 0 64 00 3 2 0 6 00 0 12 5 1

. . .. . .

. ..

Page 17: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 22 - Visão em perspectiva de um cubo

Podemos agora aplicar esta transformação aos oito vértices do cubo:

xc yc zc

A 5.6 -3.68 12.94

B -0.8 -6.56 11.98

C -5.6 -2.72 13.26

D 0.8 0.16 14.22

E 5.6 2.72 11.74

F -0.8 -0.16 10.78

G -5.6 3.68 12.06

H 0.8 6.56 13.02

Page 18: SLIDE 14 -A Transformação de Perspectiva Uma visão em perspectiva pode ser gerada simplesmente pela projeção de cada ponto de um objeto no plano da tela,

SLIDE 23 - Visão em perspectiva de um cubo Apesar da necessidade da rotina de “clipping” ser aplicada a cada linha no cubo, está

aparente na tabela que todos os vértices estão dentro da pirâmide de visualização, e o algoritmo de “clipping” irá aceitar trivialmente todas as linhas. As coordenadas de tela das extremidades das linhas são calculadas com a equação 23, e as linhas são desenhadas como mostrado na figura 11.

Figura 11 - A visão em perspectiva do cubo, gerada pelos cálculos do exemplo do texto.