79
1 Instituto de Computação - UFF Computação Computação Gráfica I Gráfica I Professor : Anselmo Montenegro www.ic.uff.br/~anse lmo Conteúdo : - Projeções e câmera virtual

Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

Embed Size (px)

Citation preview

Page 1: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

1

Instituto de Computação - UFF

Computação Gráfica IComputação Gráfica IProfessor:

Anselmo Montenegrowww.ic.uff.br/~anselmo

Conteúdo:

- Projeções e câmera virtual

Page 2: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

2

Instituto de Computação - UFF

• A geometria afim é capaz de descrever boa A geometria afim é capaz de descrever boa parte dos objetos e operações da Computação parte dos objetos e operações da Computação Gráfica.Gráfica.

• Entretanto, há operações que requerem um Entretanto, há operações que requerem um outro tipo de geometria.outro tipo de geometria.

• Este é o caso das Este é o caso das transformações de transformações de visualizaçãovisualização..

Projeções e câmera virtual:Projeções e câmera virtual: introdução introdução

Page 3: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

3

Instituto de Computação - UFF

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – motivaçãoprojetiva – motivação

Page 4: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

4

Instituto de Computação - UFF

• Nas figura (a) vemos uma vista aérea de um pista e na Nas figura (a) vemos uma vista aérea de um pista e na figura (b) uma foto tomada de um ponto sobre o terreno.figura (b) uma foto tomada de um ponto sobre o terreno.

• A figura (b) é uma A figura (b) é uma transformação projetivatransformação projetiva de (a). de (a).• Preserva retas mas Preserva retas mas não preserva paralelismonão preserva paralelismo..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – motivaçãoprojetiva – motivação

Page 5: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

5

Instituto de Computação - UFF

• O O espaço projetivo de dimensãoespaço projetivo de dimensão nn, com origem , com origem em um ponto em um ponto OO RRn+1n+1, é definido como o , é definido como o conjunto de retas que passam por conjunto de retas que passam por OO ( menos o ( menos o próprio próprio OO).).

• O espaço projetivo de dimensão O espaço projetivo de dimensão nn é é normalmente indicado por normalmente indicado por RPRPnn..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

Page 6: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

6

Instituto de Computação - UFF

• A geometria projetiva é uma extensão da A geometria projetiva é uma extensão da geometria euclidiana.geometria euclidiana.

• É comum representar um ponto É comum representar um ponto ((xx11,,xx22,...,,...,xxn+1n+1))

nesse espaço pela notação nesse espaço pela notação ((xx, , xxn+1n+1)) onde onde xx RRnn..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

Page 7: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

7

Instituto de Computação - UFF

• Sub-espaços de dimensão Sub-espaços de dimensão m<nm<n de de RPRPnn, são , são identificados com sub-espaços de dimensão identificados com sub-espaços de dimensão m+1m+1 em em RRn+1n+1..

• Exemplo: retas projetivas são sub-espaços Exemplo: retas projetivas são sub-espaços bidimensionais, isto é planos que passam bidimensionais, isto é planos que passam pela origem.pela origem.

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

Page 8: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

8

Instituto de Computação - UFF

• Espaço projetivo RPn

• Retas pela origem em Rn+1

• Coordenadas homogêneas (x, y) [x, y, 1] [lx, ly, l]

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

[u, v, w] = {(u, v, w) | ≠ 0}

ponto (u/w, v/w)

[u’, v’, 0] = {(u’, v’, 0) | ≠ 0}

vetor (u’, v’)

R2

1

Page 9: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

9

Instituto de Computação - UFF

• A identificação de pontos do espaço afim com A identificação de pontos do espaço afim com pontos do espaço projetivo leva a partição de pontos do espaço projetivo leva a partição de RPRPnn em dois conjuntos. em dois conjuntos.

• Tomemos o Tomemos o RPRP22 como base de nosso raciocínio: como base de nosso raciocínio:– RPRP22 = {( = {(xx,1)},1)}{({(xx,0)},0)}

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

Page 10: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

10

Instituto de Computação - UFF

• Os pontos da Os pontos da {({(xx,1)},1)} são os pontos do plano são os pontos do plano euclidiano euclidiano z z =1=1. Esses pontos são chamados . Esses pontos são chamados pontos afinspontos afins ou ou própriospróprios..

• O pontos da forma O pontos da forma {({(xx,0)},0)} são denominadossão denominados pontos ideaispontos ideais ou do ou do infinitoinfinito..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

Page 11: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

11

Instituto de Computação - UFF

• Não existem retas paralelas na geometria Não existem retas paralelas na geometria projetivaprojetiva..

• Para isto, basta ver que uma reta projetiva é Para isto, basta ver que uma reta projetiva é dada por uma plano que passa pela origem.dada por uma plano que passa pela origem.

• Como dois desses planos sempre se Como dois desses planos sempre se interceptam então, duas retas projetivas nunca interceptam então, duas retas projetivas nunca são paralelas.são paralelas.

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

Page 12: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

12

Instituto de Computação - UFF

• O que ocorre com duas retas O que ocorre com duas retas paralelas no plano afim?paralelas no plano afim?

– Duas retas paralelas Duas retas paralelas rr11 e e rr22

no plano afim no plano afim z=1z=1 se se interceptam em um ponto no interceptam em um ponto no infinito.infinito.

– As retas As retas rr11 e e rr22 correspondem correspondem

as retas projetivas as retas projetivas PP11 e e PP22

dados pelos planos na figura dados pelos planos na figura abaixo.abaixo.

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – espaço projetivoprojetiva – espaço projetivo

Page 13: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

13

Instituto de Computação - UFF

• É fácil introduzir coordenadas para o espaço É fácil introduzir coordenadas para o espaço projetivo.projetivo.

• Dado um ponto Dado um ponto pp RPRPnn,, tomamos as tomamos as coordenadas coordenadas ((xx11,,xx22,...,,...,xxnn,,xxn+1n+1) ) de um pontode um ponto p’p’

RRn+1n+1 na reta que representana reta que representa pp..

• Desta forma tomamos Desta forma tomamos coordenadas euclidianascoordenadas euclidianas para um ponto projetivo.para um ponto projetivo.

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – coordenadas homogêneasprojetiva – coordenadas homogêneas

Page 14: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

14

Instituto de Computação - UFF

• Entretanto, Entretanto, p’p’, , RR e e 00, representa o , representa o mesmo ponto projetivo mesmo ponto projetivo pp..

• Desse modo, Desse modo, ((xx11,,xx22,...,,...,xxnn,,xxn+1n+1)) também também

representa coordenadas de representa coordenadas de pp..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – coordenadas homogêneasprojetiva – coordenadas homogêneas

Page 15: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

15

Instituto de Computação - UFF

• Isto significa que as coordenadas projetivas Isto significa que as coordenadas projetivas são definidas são definidas a menos de um fator escalar a menos de um fator escalar não nulonão nulo..

• A notação utilizada na literatura para A notação utilizada na literatura para coordenadas homogêneas é:coordenadas homogêneas é:

[[xx11,...,,...,xxnn,,xxn+1n+1]=]=[[xx11,...,,...,xxnn,,xxn+1n+1]]

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – coordenadas homogêneasprojetiva – coordenadas homogêneas

Page 16: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

16

Instituto de Computação - UFF

• Uma transformação projetivaUma transformação projetiva TT: : RPRPnn RPRPnn, , leva pontos projetivos em pontos projetivos.leva pontos projetivos em pontos projetivos.

• TT deve transformar uma reta passando pela deve transformar uma reta passando pela origem em outra reta que passa pela origem.origem em outra reta que passa pela origem.

• LogoLogo TT deve ser uma deve ser uma transformação lineartransformação linear

invertívelinvertível de de RPRPn+1n+1 em em RPRPn+1n+1..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

Page 17: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

17

Instituto de Computação - UFF

• Daí decorre que Daí decorre que TT preserva elementos preserva elementos lineares do espaço projetivo.lineares do espaço projetivo.

• TT é representada por uma matriz de ordem é representada por uma matriz de ordem n+1n+1..

• TT é definida a menos de um fator de escala, é definida a menos de um fator de escala, pois, pois, T(p)=T(T(p)=T(p)=T(P)p)=T(P), , R R e e 00..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

Page 18: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

18

Instituto de Computação - UFF

• Matriz que representa uma transformação Matriz que representa uma transformação T: T: RPRP22 RP RP22 no plano projetivo: no plano projetivo:

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

ihg

fed

cba

ihg

fed

cba

Page 19: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

19

Instituto de Computação - UFF

• Suponha que a matriz seja dada por: Suponha que a matriz seja dada por:

• Aplicando a um ponto do infinito Aplicando a um ponto do infinito ((xx,,yy,0,0)) e a um ponto e a um ponto afim afim ((xx,,yy,1,1)), temos respectivamente:, temos respectivamente:

• Logo, leva pontos próprios em pontos próprios e Logo, leva pontos próprios em pontos próprios e pontos ideais em pontos ideais (pontos ideais em pontos ideais (transformação afimtransformação afim))

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

11100

e

00100

fdybx

ecyax

y

x

fdb

eca

fdybx

ecyax

y

x

fdb

eca

11100

e

00100

fdybx

ecyax

y

x

fdb

eca

fdybx

ecyax

y

x

fdb

eca

100

fdb

eca

100

fdb

eca

Page 20: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

20

Instituto de Computação - UFF

• Suponha que a matriz seja dada por: Suponha que a matriz seja dada por: (com (com r r 00 ou ou ss 0 0) )

• Aplicando a um ponto do infinito Aplicando a um ponto do infinito ((xx,,yy,0,0)) e a um ponto e a um ponto afim afim ((xx,,yy,1,1)), temos respectivamente:, temos respectivamente:

• Há pontos ideais levados em pontos afins e pontos Há pontos ideais levados em pontos afins e pontos afins levados em pontos ideais.afins levados em pontos ideais.

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

111

e

01 syrx

fdybx

ecyax

y

x

sr

fdb

eca

syrx

fdybx

ecyax

y

x

sr

fdb

eca

111

e

01 syrx

fdybx

ecyax

y

x

sr

fdb

eca

syrx

fdybx

ecyax

y

x

sr

fdb

eca

1sr

fdb

eca

1sr

fdb

eca

Page 21: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

21

Instituto de Computação - UFF

• Suponha que um ponto ideal é levado em um Suponha que um ponto ideal é levado em um ponto afim ponto afim PP00..

• A família de retas paralelas, que se A família de retas paralelas, que se interceptam no ponto ideal, são transformadas interceptam no ponto ideal, são transformadas em um feixe de retas que incidem em em um feixe de retas que incidem em PP00..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

Page 22: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

22

Instituto de Computação - UFF

• PP00 é denominado é denominado ponto de fuga da ponto de fuga da

transformaçãotransformação..

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

Page 23: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

23

Instituto de Computação - UFF

• Uma transformação projetiva P em RP2 fica caracterizada quando são conhecidas as imagens por P de 4 pontos em “posição geral” (3 quaisquer não estão em linha reta).

• Generalização para RPn: n+2 pontos em posição geral.

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações projetivasprojetiva – transformações projetivas

Page 24: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

24

Instituto de Computação - UFF

• TransformarTransformar um quadrilátero um quadrilátero QQ em um quadrilátero em um quadrilátero RR..

• Solução: Solução:

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – transformações entre dois projetiva – transformações entre dois quadriláterosquadriláteros

q1=(1,0)q1=(1,0)

q4=(1,1)q4=(1,1)q2=(0,1)q2=(0,1)

q3=(0,0)q3=(0,0) r1=(1,0)r1=(1,0)

r4=(2,2)r4=(2,2)

r2=(0,1)r2=(0,1)

r3=(0,0)r3=(0,0)

QQ RR

311

020

002

T

311

020

002

T

Page 25: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

25

Instituto de Computação - UFF

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – verificaçãoprojetiva – verificação

2

2

1

2

2

1

1

1

311

020

002

)1,1,1()1,1(

0

0

1

0

0

3

0

0

1

0

0

311

020

002

)1,0,0()0,0(

1

0

1

1

0

2

2

0

1

1

0

311

020

002

)1,1,0()1,0(

0

1

1

0

1

2

0

2

1

0

1

311

020

002

)1,0,1()0,1(

TT

TT

TT

TT

2

2

1

2

2

1

1

1

311

020

002

)1,1,1()1,1(

0

0

1

0

0

3

0

0

1

0

0

311

020

002

)1,0,0()0,0(

1

0

1

1

0

2

2

0

1

1

0

311

020

002

)1,1,0()1,0(

0

1

1

0

1

2

0

2

1

0

1

311

020

002

)1,0,1()0,1(

TT

TT

TT

TT

Page 26: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

26

Instituto de Computação - UFF

Projeções e câmera virtual:Projeções e câmera virtual: geometria geometria projetiva – pontos de fuga da transformaçãoprojetiva – pontos de fuga da transformação

11-1-1

11

22

22

-2-2

-2-2

-1-1

Pontos de fugaPontos de fuga

Page 27: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

27

Instituto de Computação - UFF

• A geração de imagens a partir de modelos de A geração de imagens a partir de modelos de tridimensionais é uma das etapas mais tridimensionais é uma das etapas mais importantes em Computação Gráfica.importantes em Computação Gráfica.

Projeções e câmera virtual:Projeções e câmera virtual: visualização de visualização de cenas 3Dcenas 3D

Page 28: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

28

Instituto de Computação - UFF

• O processo de geração de imagens a partir de cenas O processo de geração de imagens a partir de cenas virtuais é análogo à geração de imagens através de virtuais é análogo à geração de imagens através de câmeras fotográficas.câmeras fotográficas.

Projeções e câmera virtual:Projeções e câmera virtual: visualização de visualização de cenas 3Dcenas 3D

Page 29: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

29

Instituto de Computação - UFF

• A diferença é que em C.G., os objetos, as luzes e a A diferença é que em C.G., os objetos, as luzes e a câmera são descritos por câmera são descritos por modelos matemáticosmodelos matemáticos..

• Por este motivo, a câmera em C.G. é denominada Por este motivo, a câmera em C.G. é denominada câmera virtualcâmera virtual..

Projeções e câmera virtual:Projeções e câmera virtual: câmera virtual câmera virtual

ze

xe

ye

Page 30: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

30

Instituto de Computação - UFF

• O modelo matemático que rege os processos O modelo matemático que rege os processos de geração de imagens, tanto em câmeras de geração de imagens, tanto em câmeras reais quanto em câmeras virtuais é o de reais quanto em câmeras virtuais é o de projeçãoprojeção. .

• Por este motivo, a Por este motivo, a Geometria ProjetivaGeometria Projetiva tem um tem um papel fundamental na geração de imagens a papel fundamental na geração de imagens a partir de objetos tridimensionais.partir de objetos tridimensionais.

Projeções e câmera virtual:Projeções e câmera virtual: câmeras e câmeras e geometria projetivageometria projetiva

Page 31: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

31

Instituto de Computação - UFF

Projeções e câmera virtual:Projeções e câmera virtual: câmeras e câmeras e geometria projetivageometria projetiva

Canaletto (Giovanni Antonio Canal) (1697-1768).

Ponto de fuga

Page 32: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

32

Instituto de Computação - UFF

• Uma câmera pode ser caracterizada matematicamente Uma câmera pode ser caracterizada matematicamente através de seus parâmetrosatravés de seus parâmetros intrínsecosintrínsecos e e extrínsecosextrínsecos..

• Os Os parâmetros intrínsecosparâmetros intrínsecos correspondem aos correspondem aos parâmetros internos da câmera como a distância focal, parâmetros internos da câmera como a distância focal, tamanho do pixel e as distorções de lente.tamanho do pixel e as distorções de lente.

• Os Os parâmetros extrínsecosparâmetros extrínsecos correspondem a orientação correspondem a orientação e posição da câmera em relação a um sistema de e posição da câmera em relação a um sistema de referência no mundo.referência no mundo.

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera

Page 33: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

33

Instituto de Computação - UFF

• O modelo que utilizaremos para a definição da câmera O modelo que utilizaremos para a definição da câmera virtual é baseado em uma virtual é baseado em uma câmera de furocâmera de furo..

• Neste modelo, a luz passa pelo orifícioNeste modelo, a luz passa pelo orifício OO em um dos em um dos lados de uma caixa e projeta a imagem do plano lados de uma caixa e projeta a imagem do plano oposto.oposto.

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera – câmera de furo– câmera de furo

Page 34: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

34

Instituto de Computação - UFF

• A geometria do modelo de A geometria do modelo de câmera de furo se reduz a câmera de furo se reduz a projeção cônicaprojeção cônica..

• Para evitar que a imagem seja Para evitar que a imagem seja invertida, invertida, deslocamos o plano deslocamos o plano

dede projeçãoprojeção que é posicionado que é posicionado entre o entre o centro de projeçãocentro de projeção e o e o objeto.objeto.

• O único parâmetro intrínseco é O único parâmetro intrínseco é a a distância focaldistância focal..

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera – câmera de furo– câmera de furo

caixacaixa

filmefilme

objetoobjetopinholepinhole

raios de luzraios de luz

imagemimagem

CâmeraCâmera

plano de projeçãoplano de projeção

centro de projeçãocentro de projeção

Projeção cônicaProjeção cônica

distância focaldistância focal

Page 35: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

35

Instituto de Computação - UFF

• Existem diversas formas de especificar uma Existem diversas formas de especificar uma câmera virtual que segue o modelo da câmera virtual que segue o modelo da câmera de furo (câmera de furo (pinholepinhole).).

• O modelo de câmera e o esquema utilizado O modelo de câmera e o esquema utilizado para sua especificação, aqui apresentados, para sua especificação, aqui apresentados, são baseados na câmera virtual utilizada na são baseados na câmera virtual utilizada na biblioteca biblioteca OpenGLOpenGL..

Projeções e câmera virtual:Projeções e câmera virtual: especificação de especificação de câmera virtualcâmera virtual

Page 36: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

36

Instituto de Computação - UFF

• Os parâmetro intrínsecos da câmera são Os parâmetro intrínsecos da câmera são definidos pelo definidos pelo centro de projeçãocentro de projeção, o , o eixo ópticoeixo óptico e as dimensões da e as dimensões da tela virtualtela virtual (um (um retângulo de retângulo de wwhh pixels pixels))..

• O eixo óptico é determinado pela reta que O eixo óptico é determinado pela reta que passa pelo centro de projeção e fura a tela passa pelo centro de projeção e fura a tela virtual em um ponto denominado virtual em um ponto denominado centro ópticocentro óptico ou ou ponto principalponto principal..

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera virtualvirtual

Page 37: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

37

Instituto de Computação - UFF

w pixelsw pixels largura largura bb

h pi

xels

h pi

xels

a

ltur

a al

tura

aa

janelajanela

oocentro de centro de projeçãoprojeção janela janela

eixoeixoópticoóptico

centro centro ópticoóptico

ooeyeeye

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera virtualvirtual

Page 38: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

38

Instituto de Computação - UFF

• Um caso bastante comum é aquele em que o Um caso bastante comum é aquele em que o eixo óptico é perpendicular à tela virtual e eixo óptico é perpendicular à tela virtual e intercepta exatamente seu centrointercepta exatamente seu centro..

• Nestes casos o tamanho do retângulo e a sua Nestes casos o tamanho do retângulo e a sua distância ao centro de projeção definem a distância ao centro de projeção definem a abertura da câmeraabertura da câmera ou ou campo de visãocampo de visão ( (fovfov).).

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera virtualvirtual

Page 39: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

39

Instituto de Computação - UFF

ddff11

ddff22

fovfov11

fovfov22

aa

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera virtualvirtual

Page 40: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

40

Instituto de Computação - UFF

• O eixo óptico e as direções dos lados do O eixo óptico e as direções dos lados do retângulo da tela definem três direções que retângulo da tela definem três direções que definem os definem os eixos da câmeraeixos da câmera xxeeyyeezzee e os e os eixos da eixos da

imagem imagem uvuv..

• A escolha do eixo A escolha do eixo zzee voltado para trásvoltado para trás é feito é feito

para que o referencial tenha orientação positiva para que o referencial tenha orientação positiva (mão direita), isto é, seja (mão direita), isto é, seja dextrógirodextrógiro..

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera virtualvirtual

Page 41: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

41

Instituto de Computação - UFF

eixo ópticoeixo óptico

vv

uu

eyeeye

xxee

yyee

zzee

eixo horizontaleixo horizontal

eixo verticaleixo vertical

Projeções e câmera virtual:Projeções e câmera virtual: modelo de câmera modelo de câmera virtualvirtual

Page 42: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

42

Instituto de Computação - UFF

• Os seguintes parâmetros são parâmetros internos da Os seguintes parâmetros são parâmetros internos da câmera virtual:câmera virtual:

dfdf – distância focal– distância focal

fovfov – campo de visão– campo de visão

aa e e bb – altura e largura da tela – altura e largura da tela

ww e e hh – numero de pixels na horizontal e vertical – numero de pixels na horizontal e vertical

• Esses parâmetros Esses parâmetros não são independentesnão são independentes..• As relações entre os parâmetros permitem escolher As relações entre os parâmetros permitem escolher

quais especificam a câmera e quais ficam definidos quais especificam a câmera e quais ficam definidos automaticamente.automaticamente.

Projeções e câmera virtual:Projeções e câmera virtual: especificação da especificação da câmera virtualcâmera virtual

Page 43: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

43

Instituto de Computação - UFF

• Na maioria dos dispositivos o pixel é quadrado.Na maioria dos dispositivos o pixel é quadrado.• Nestes casos, a razão entre os lados da janela é Nestes casos, a razão entre os lados da janela é

dada por:dada por:

w pixelsw pixels largura largura bb

h pi

xels

h pi

xels

a

ltur

a al

tura

aa

janelajanela

ooah

wb

Projeções e câmera virtual:Projeções e câmera virtual: especificação da especificação da câmera virtualcâmera virtual

Page 44: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

44

Instituto de Computação - UFF

• Uma outra expressão importante é a que Uma outra expressão importante é a que relaciona o campo de visão relaciona o campo de visão fovfov, o número , o número de pixels na vertical de pixels na vertical aa e a distância focal e a distância focal ff..

ddff11ddff22

fovfov11

fovfov22aa

2tan2

2tan

2

fovdfa

fov

df

a

Projeções e câmera virtual:Projeções e câmera virtual: especificação da especificação da câmera virtualcâmera virtual

Page 45: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

45

Instituto de Computação - UFF

• Uma boa escolha para parametrizar uma câmera é Uma boa escolha para parametrizar uma câmera é utilizar os parâmetros utilizar os parâmetros fovfov e a e a razão de aspectorazão de aspecto w/hw/h entre a largura e altura da tela.entre a largura e altura da tela.

• Estes parâmetros, juntamente com duas distâncias Estes parâmetros, juntamente com duas distâncias nearnear e e farfar em relação ao centro de projeção são os em relação ao centro de projeção são os parâmetros usados pela função da parâmetros usados pela função da OpenGLOpenGL : :

void glPerspective(Gldouble fovy,Gldouble aspect, void glPerspective(Gldouble fovy,Gldouble aspect, Gldouble near, Gldouble far);Gldouble near, Gldouble far);

Projeções e câmera virtual:Projeções e câmera virtual: especificação da especificação da câmera virtualcâmera virtual

Page 46: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

46

Instituto de Computação - UFF

• Os parâmetros descritos determinam um Os parâmetros descritos determinam um volume de visualizaçãovolume de visualização ( (frustumfrustum) na ) na forma de um tronco de pirâmide reta.forma de um tronco de pirâmide reta.

view frustumview frustum

zzee xxee

yyee

eyeeye

Projeções e câmera virtual:Projeções e câmera virtual: especificação da especificação da câmera virtualcâmera virtual

Page 47: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

47

Instituto de Computação - UFF

• Precisamos de um conjunto de parâmetros Precisamos de um conjunto de parâmetros mais gerais quando o eixo ótico não atravessa mais gerais quando o eixo ótico não atravessa o centro do plano de projeção.o centro do plano de projeção.

nearnear

yyee

zzee

farfar

toptop

bottonbotton

xxeezzee

near

near

leftleft rightright

far

far

view frustumview frustum

zzee xxee

yyee

eyeeye

Projeções e câmera virtual:Projeções e câmera virtual: especificação da especificação da câmera virtualcâmera virtual

Page 48: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

48

Instituto de Computação - UFF

• Podemos utilizar as coordenadas dos cantos inferior Podemos utilizar as coordenadas dos cantos inferior esquerdo esquerdo ((leftleft, , bottombottom)) e superior direito e superior direito ((rightright, , toptop)) que que definem a tela virtual, juntamente com os planos em definem a tela virtual, juntamente com os planos em –near–near e e –far–far..

• Estes parâmetros são utilizados pela função Estes parâmetros são utilizados pela função glFrustumglFrustum da biblioteca da biblioteca OpenGLOpenGL::

void glFrustum(GLdouble left,GLdouble right, GLdouble void glFrustum(GLdouble left,GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);bottom, GLdouble top, GLdouble near, GLdouble far);

Projeções e câmera virtual:Projeções e câmera virtual: especificação da especificação da câmera virtualcâmera virtual

Page 49: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

49

Instituto de Computação - UFF

• Até o momento especificamos uma câmera na posição Até o momento especificamos uma câmera na posição padrão, o que é de pouca utilidade.padrão, o que é de pouca utilidade.

• Precisamos agora definir os parâmetros externos para Precisamos agora definir os parâmetros externos para que possamos que possamos posicionar e orientar a câmeraposicionar e orientar a câmera no no espaço como um objeto qualquer.espaço como um objeto qualquer.

Projeções e câmera virtual:Projeções e câmera virtual: sistema de sistema de coordenadas da câmera virtualcoordenadas da câmera virtual

Page 50: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

50

Instituto de Computação - UFF

• A posição da câmera é dada pelo proprio vetor A posição da câmera é dada pelo proprio vetor ((eyeeyexx,,eyeeyeyy,,eyeeyezz))..

• O eixo O eixo zzee é definido pelo vetor normalizado é definido pelo vetor normalizado

correspondente a direção do eixo óptico.correspondente a direção do eixo óptico.• O eixo óptico, por sua vez, é dado pela reta que passa O eixo óptico, por sua vez, é dado pela reta que passa

pelopelo eyeeye e pelo e pelo centercenter..

eyecentereyecenter

ze

1 eyecenter

eyecenterze

1

Projeções e câmera virtual:Projeções e câmera virtual: sistema de sistema de coordenadas da câmera virtualcoordenadas da câmera virtual

Page 51: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

51

Instituto de Computação - UFF

• O vetor O vetor UpUp é um vetor qualquer é um vetor qualquer posicionado no plano posicionado no plano xxeeyyee..

• Logo o vetor unitário Logo o vetor unitário xxee pode ser obtido pode ser obtido

através da normalização de através da normalização de up up z zee..

ee

e zupzup

x

1 e

ee zup

zupx

1

Projeções e câmera virtual:Projeções e câmera virtual: sistema de sistema de coordenadas da câmera virtualcoordenadas da câmera virtual

Page 52: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

52

Instituto de Computação - UFF

• Finalmente, o vetor Finalmente, o vetor yyee é obtido pelo produto vetorial é obtido pelo produto vetorial yyee

zzee..

• O uso dos parâmetros O uso dos parâmetros eyeeye, , centercenter e e upup na definição do na definição do sistema de coordenadas da câmera é o mesmo sistema de coordenadas da câmera é o mesmo utilizado pela função utilizado pela função gluLookAtgluLookAt da biblioteca utilitária da biblioteca utilitária GLUGLU da da OpenGLOpenGL..

void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz);centerz, GLdouble upx, GLdouble upy, GLdouble upz);

Projeções e câmera virtual:Projeções e câmera virtual: sistema de sistema de coordenadas da câmera virtualcoordenadas da câmera virtual

Page 53: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

53

Instituto de Computação - UFF

yyee

centercenter

eyeeye

zzoo

yyoo

xxoo

zzeexxee

upup

Projeções e câmera virtual:Projeções e câmera virtual: sistema de sistema de coordenadas da câmera virtualcoordenadas da câmera virtual

Page 54: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

54

Instituto de Computação - UFF

• O processo de geração de imagens envolve, O processo de geração de imagens envolve, além do processo de projeção, transformações além do processo de projeção, transformações entre os seguintes sistemas de coordenadas:entre os seguintes sistemas de coordenadas:

– Sistema de coordenadas do objeto.Sistema de coordenadas do objeto.– Sistema de coordenadas do mundo.Sistema de coordenadas do mundo.– Sistema de coordenadas da câmera.Sistema de coordenadas da câmera.

– Sistema de coordenadas da telaSistema de coordenadas da tela..

Projeções e câmera virtual:Projeções e câmera virtual: transformações de transformações de visualizaçãovisualização

Page 55: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

55

Instituto de Computação - UFF

• A mudança das coordenas de um objeto no A mudança das coordenas de um objeto no seu sistema próprio, para as coordenadas do seu sistema próprio, para as coordenadas do sistema do mundo (global) é obtida através sistema do mundo (global) é obtida através de uma matriz de transformação de uma matriz de transformação MMobjobj..

• Estas transformações são exatamente as Estas transformações são exatamente as transformações de rotação, escala, transformações de rotação, escala, cisalhamento e etc. que vimos anteriormentecisalhamento e etc. que vimos anteriormente

Projeções e câmera virtual:Projeções e câmera virtual: coordenadas do coordenadas do objeto para coordenadas do mundoobjeto para coordenadas do mundo

Page 56: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

56

Instituto de Computação - UFF

• A transformação das coordenadas do mundo A transformação das coordenadas do mundo para as coordenadas da câmera, dos vértices para as coordenadas da câmera, dos vértices de uma primitiva, consiste na composição de de uma primitiva, consiste na composição de duas transformações, nesta ordem:duas transformações, nesta ordem:

– Uma translação que leve o observador Uma translação que leve o observador ((eyeeye) ) para para a origem.a origem.

– Uma rotação que alinhe os eixos da câmera com Uma rotação que alinhe os eixos da câmera com os eixos do mundo.os eixos do mundo.

Projeções e câmera virtual:Projeções e câmera virtual: coordenadas do coordenadas do mundo para coordenadas da câmeramundo para coordenadas da câmera

Page 57: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

57

Instituto de Computação - UFF

• A matriz que representa esta composição é:A matriz que representa esta composição é:

• O entendimento da translação é trivial.O entendimento da translação é trivial.

• A matriz de rotação A matriz de rotação RRewew é a matriz inversa da é a matriz inversa da

matriz matriz RRwewe que transforma a base do sistema do que transforma a base do sistema do

mundo mundo xxwwyywwzzww para a base do sistema da para a base do sistema da

câmera.câmera.

1000

100

010

001

1000

0

0

0

z

y

x

exexex

ezeyex

ezeyex

ewewat eye

eye

eye

zzz

yyy

xxx

TRL

1000

100

010

001

1000

0

0

0

z

y

x

exexex

ezeyex

ezeyex

ewewat eye

eye

eye

zzz

yyy

xxx

TRL

Projeções e câmera virtual:Projeções e câmera virtual: coordenadas do coordenadas do mundo para coordenadas da câmeramundo para coordenadas da câmera

Page 58: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

58

Instituto de Computação - UFF

• As colunas da matrizAs colunas da matriz RRwewe são os vetores da base são os vetores da base

do mundo transformados para a base da do mundo transformados para a base da câmera.câmera.

• ComoComo RRwewe é ortogonal, sua inversa, isto é, é ortogonal, sua inversa, isto é, RRewew é é

dada por dada por RRweweTT..

1000

0

0

0

,

1000

0

0

0

1

exexex

ezeyex

ezeyex

Tweweew

ezezez

eyeyey

exexex

we zzz

yyy

xxx

RRRzyx

zyx

zyx

R

1000

0

0

0

,

1000

0

0

0

1

exexex

ezeyex

ezeyex

Tweweew

ezezez

eyeyey

exexex

we zzz

yyy

xxx

RRRzyx

zyx

zyx

R

Projeções e câmera virtual:Projeções e câmera virtual: coordenadas do coordenadas do mundo para coordenadas da câmeramundo para coordenadas da câmera

Page 59: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

59

Instituto de Computação - UFF

• No sistema gráfico definido pela No sistema gráfico definido pela OpenGLOpenGL existe existe uma uma única matrizúnica matriz que realiza a transformação que realiza a transformação de coordenadas do sistema do objeto para o de coordenadas do sistema do objeto para o sistema da câmera.sistema da câmera.

• Esta matriz é denominada Esta matriz é denominada ModelviewModelview..

Projeções e câmera virtual:Projeções e câmera virtual: a matriz a matriz modelviewmodelview

Page 60: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

60

Instituto de Computação - UFF

• Ela realiza as transformações de modelagem e Ela realiza as transformações de modelagem e a transformação das coordenadas do mundo a transformação das coordenadas do mundo nas coordenadas da câmera.nas coordenadas da câmera.

• Logo, a Logo, a modelviewmodelview é dada por é dada por MMviewview==LLatat MMobjobj, isto , isto

é, a composição da matriz de transf. de câmera é, a composição da matriz de transf. de câmera com a matriz de modelagem do objeto.com a matriz de modelagem do objeto.

Projeções e câmera virtual:Projeções e câmera virtual: a matriz a matriz modelviewmodelview

Page 61: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

61

Instituto de Computação - UFF

• Como na OpenGL acumulamos as matrizes através de Como na OpenGL acumulamos as matrizes através de uma uma multiplicação à direitamultiplicação à direita, devemos:, devemos:

– Definir primeiramente a transformação de câmera através Definir primeiramente a transformação de câmera através da da glLookAtglLookAt, por exemplo., por exemplo.

– Aplicar as transformações de modelagem aos objetos.Aplicar as transformações de modelagem aos objetos.

• Quando vários objetos precisam ser instanciados Quando vários objetos precisam ser instanciados podemos utilizar o podemos utilizar o esquema de pilhaesquema de pilha para armazenar para armazenar matrizes que serão posteriormente recuperadas.matrizes que serão posteriormente recuperadas.

Projeções e câmera virtual:Projeções e câmera virtual: a matriz a matriz modelviewmodelview

Page 62: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

62

Instituto de Computação - UFF

• A A transformação de projeção cônicatransformação de projeção cônica pode ser facilmente definida pode ser facilmente definida na posição canônica.na posição canônica.

• Para projetarmos um ponto genérico no plano Para projetarmos um ponto genérico no plano nearnear, basta , basta escalarmos as coordenadas por um fator que leve a coordenada escalarmos as coordenadas por um fator que leve a coordenada zz para a posição para a posição –n–n..

• Ou seja, as coordenadas do pontoOu seja, as coordenadas do ponto pppp na projeção de um ponto na projeção de um ponto pp

são:são:

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

e

e

e

ep

p

p

p

z

y

x

z

n

z

y

x

p

e

e

e

ep

p

p

p

z

y

x

z

n

z

y

x

p

Page 63: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

63

Instituto de Computação - UFF

• Esta mesma transformação também pode ser Esta mesma transformação também pode ser derivada por derivada por semelhança de triângulossemelhança de triângulos..

xxee

nn

xxee

xxpp

yyee

yypp

-z-zee

nn

zzee

yyeezzee

ee

p

z

n

x

x

ee

p

z

n

x

x

ee

p

z

n

y

y

ee

p

z

n

y

y

ee

p xz

nx

e

ep x

z

nx

e

ep y

z

ny

e

ep y

z

ny

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 64: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

64

Instituto de Computação - UFF

• Finalmente, podemos escrever a transformação Finalmente, podemos escrever a transformação como uma transformação projetiva (em como uma transformação projetiva (em coordenadas homogêneas), conforme abaixo:coordenadas homogêneas), conforme abaixo:

e

e

e

ep

p

p

e

e

e

e

e

e

e

p

p

p

nz

ny

nx

zz

y

x

z

nz

ny

nx

z

y

x

n

n

n

w

wz

wy

wx

1

10100

000

000

000

e

e

e

ep

p

p

e

e

e

e

e

e

e

p

p

p

nz

ny

nx

zz

y

x

z

nz

ny

nx

z

y

x

n

n

n

w

wz

wy

wx

1

10100

000

000

000

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 65: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

65

Instituto de Computação - UFF

• Um dos problemas com esta formulação é o de que Um dos problemas com esta formulação é o de que perdemos a informação de profundidade dos pontos perdemos a informação de profundidade dos pontos já já que as coordenadas que as coordenadas zz são levadas no plano são levadas no plano z = -nz = -n..

• Por este motivo, Por este motivo, não seremos capazes de determinar não seremos capazes de determinar quando uma superfície está a frente de uma outraquando uma superfície está a frente de uma outra..

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 66: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

66

Instituto de Computação - UFF

• Para evitar este problema utilizamos uma Para evitar este problema utilizamos uma transformação transformação projetiva que projetiva que leva o centro de projeção para o infinitoleva o centro de projeção para o infinito..

• Este processo Este processo transforma a transformação projetiva em transforma a transformação projetiva em uma transformação paralela ortográficauma transformação paralela ortográfica..

• Lembremos que uma projeção cônica pode ser definida Lembremos que uma projeção cônica pode ser definida como a composição de uma transformação projetiva como a composição de uma transformação projetiva com uma transformação paralela.com uma transformação paralela.

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 67: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

67

Instituto de Computação - UFF

• A transformação projetiva A transformação projetiva torna os raios torna os raios projetores paralelosprojetores paralelos..

• As coordenadas As coordenadas xx e e yy dos vértices paralelos dos vértices paralelos ao plano de projeção tem seus valores ao plano de projeção tem seus valores determinados corretamente. determinados corretamente.

• Além disso, Além disso, as profundidades relativas são as profundidades relativas são preservadas na coordenada preservadas na coordenada zz..

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 68: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

68

Instituto de Computação - UFF

• Vejamos como determinar a matriz que transforma Vejamos como determinar a matriz que transforma um tronco de pirâmide em um paralelepípedo.um tronco de pirâmide em um paralelepípedo.

xxee

yyee

zzee

zzee = -n = -n zzee = -f = -f

11

22

33

44

5566

7788

zzee = -f = -f

zzee = -n = -n

11

22

33

44

55

66

77

88

xxee

yyee

zzee ?H ?H

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 69: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

69

Instituto de Computação - UFF

Projeção cônica

plano de projeçãoeyedireção de projeção

plano de projeção

Projeção ortográfica

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 70: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

70

Instituto de Computação - UFF

• Para determinar a matriz, partimos de uma matriz de Para determinar a matriz, partimos de uma matriz de transformação projetiva genérica em coordenadas transformação projetiva genérica em coordenadas homogêneas.homogêneas.

• ((xxii,y,yii,z,zii) são as coordenadas cartesianas do ponto e ) são as coordenadas cartesianas do ponto e

((xxii’,y’,yii’,z’,zii’’) são as coordenadas do ponto transformado.) são as coordenadas do ponto transformado.

0100

00

000

000

nffn

n

n

H

0100

00

000

000

nffn

n

n

H

Projeções e câmera virtual:Projeções e câmera virtual: a transformação a transformação de projeçãode projeção

Page 71: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

71

Instituto de Computação - UFF

• Para efetuar operações de forma mais simples, Para efetuar operações de forma mais simples, normalizamos o normalizamos o paralelepípedo de visãoparalelepípedo de visão de forma que se torne um cubo de forma que se torne um cubo definido por definido por [-1,1][-1,1] [-1,1] [-1,1] [-1,1] [-1,1]..

• Para isso, aplicamos as seguintes transformações:Para isso, aplicamos as seguintes transformações:

– TransladamosTransladamos o centro do paralelepípedo para a origem. o centro do paralelepípedo para a origem.

– Aplcamos uma escalaAplcamos uma escala s sobre paralelepípedo de forma que se obre paralelepípedo de forma que se torne um cubo normalizado.torne um cubo normalizado.

– EspelhamosEspelhamos o cubo resultante em relação ao plano o cubo resultante em relação ao plano xyxy para para que os menores que os menores zz representem os pontos mais próximos. representem os pontos mais próximos.

Projeções e câmera virtual:Projeções e câmera virtual: transformação de transformação de normalizaçãonormalização

Page 72: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

72

Instituto de Computação - UFF

xxee

yyee

zzee

ll

rr

bb

tt

-(r-l)/2-(r-l)/2

(r-l)/2(r-l)/2

-(t-b)/2-(t-b)/2

(t-b)/2(t-b)/2

(f-n)/2(f-n)/2 -(f-n)/2-(f-n)/2

xxee

yyee

zzee

111111

--11-1-1-1-1

farfar

nearnearxxnn

yynn

zznn

111111

-1-1-1-1-1-1

nearnear

farfar

1000

0100

0010

0001

1000

0200

0020

0002

nf

bt

lr

1000

2100

2010

2001

nf

bt

lr

xxee

yyee

zzee

Projeções e câmera virtual:Projeções e câmera virtual: transformação de transformação de normalizaçãonormalização

Page 73: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

73

Instituto de Computação - UFF

• A matriz associada a A matriz associada a transformação de normalizaçãotransformação de normalização é dada pela seguinte composição:é dada pela seguinte composição:

1000

2100

2010

2001

1000

0200

0020

0002

1000

0100

0010

0001

nf

bt

lr

nf

bt

lr

N

1000

2100

2010

2001

1000

0200

0020

0002

1000

0100

0010

0001

nf

bt

lr

nf

bt

lr

N

1000

200

02

0

002

nf

nf

nf

bt

bt

bt

lr

lr

lr

N

1000

200

02

0

002

nf

nf

nf

bt

bt

bt

lr

lr

lr

N

Projeções e câmera virtual:Projeções e câmera virtual: transformação de transformação de normalizaçãonormalização

Page 74: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

74

Instituto de Computação - UFF

• Multiplicando a matriz de normalização pela matriz Multiplicando a matriz de normalização pela matriz de projeção chegamos àde projeção chegamos à

• Esta é a matriz que a especificação da OpenGL Esta é a matriz que a especificação da OpenGL apresenta com a apresenta com a matriz correspondente a função matriz correspondente a função glFrustumglFrustum..

0100

200

02

0

002

nf

n

nf

nfbt

bt

bt

lr

lr

lr

NHP

0100

200

02

0

002

nf

n

nf

nfbt

bt

bt

lr

lr

lr

NHP

Projeções e câmera virtual:Projeções e câmera virtual: transformação de transformação de normalizaçãonormalização

Page 75: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

75

Instituto de Computação - UFF

Projeções e câmera virtual:Projeções e câmera virtual: resumo resumo

yyee

centercenter

eyeeye

zzoo

yyoo

xxoo

zzeexxee

upup

xe

ye

ze

xxee

yyee

zzee

110

0

0

z

y

x

Mz

y

x

viewe

e

e

110

0

0

z

y

x

Mz

y

x

viewe

e

e

1e

e

e

c

c

c

z

y

x

P

w

z

y

x

1e

e

e

c

c

c

z

y

x

P

w

z

y

x

w

z

y

x

wz

y

x

c

c

c

n

n

n1

w

z

y

x

wz

y

x

c

c

c

n

n

n1

Page 76: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

76

Instituto de Computação - UFF

• Na projeção ortográfica, Na projeção ortográfica, os raios projetores os raios projetores não convergem para um centro de projeçãonão convergem para um centro de projeção..

• Ao contrário, são Ao contrário, são paralelos ao eixoparalelos ao eixo zz e e ortogonais ao plano de projeção ortogonais ao plano de projeção z=nearz=near..

cederj

Projeções e câmera virtual:Projeções e câmera virtual: projeção projeção ortográficaortográfica

xxee

yyee

zzee

rightright

nearnear

leftleft

toptop

bottombottom

farfar

Page 77: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

77

Instituto de Computação - UFF

• O paralelepípedo de visão associado a um projeção O paralelepípedo de visão associado a um projeção ortográfica da ortográfica da OpenGLOpenGL é o mesmo que resulta da é o mesmo que resulta da transformação do troco de pirâmide pela transformação do troco de pirâmide pela transformação transformação HH..

• Logo, a matriz de projeção paralela, simplemente Logo, a matriz de projeção paralela, simplemente leva o paralelepípedo para o cubo no espaço leva o paralelepípedo para o cubo no espaço normalizadonormalizado..

Projeções e câmera virtual:Projeções e câmera virtual: projeção projeção ortográficaortográfica

Page 78: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

78

Instituto de Computação - UFF

• A matriz de projeção paralela é a seguinte:A matriz de projeção paralela é a seguinte:

• As funções da OpenGL que produzem tal matriz são:As funções da OpenGL que produzem tal matriz são:

glOrtho(GLdouble left,GLdouble right, GLdouble bottom, glOrtho(GLdouble left,GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)GLdouble top, GLdouble near, GLdouble far)

glOrtho2D(GLdouble left,GLdouble right, GLdouble bottom, glOrtho2D(GLdouble left,GLdouble right, GLdouble bottom, GLdouble top)GLdouble top)

1000

200

02

0

002

nf

nf

nf

bt

bt

bt

lr

lr

lr

N

1000

200

02

0

002

nf

nf

nf

bt

bt

bt

lr

lr

lr

N

Projeções e câmera virtual:Projeções e câmera virtual: projeção projeção ortográficaortográfica

Page 79: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Projeções e câmera virtual

79

Instituto de Computação - UFF

• A projeção ortográfica, apesar de não ser tão realista A projeção ortográfica, apesar de não ser tão realista tem muitas aplicações em engenharia e arquiteturatem muitas aplicações em engenharia e arquitetura..

• Ela Ela preserva paralelismo entre linhas e permite a preserva paralelismo entre linhas e permite a definição de escaladefinição de escala tornando possível a tomada de tornando possível a tomada de medidas diretamente sobre a planta.medidas diretamente sobre a planta.

Projeções e câmera virtual:Projeções e câmera virtual: projeção projeção ortográficaortográfica