33
1 Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366 Alberto Raposo – PUC-Rio Transformações Projetivas Projetivas Perspectiva Afins Translação Rotação Euclidianas Linear Similaridades Escalaento Isotrópico Identidade Escalamento Shear Reflexão

INF 1366 – Computação Gráfica Interativa Câmeras e ...webserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2004/07_cameras.pdf · 2 Alberto Raposo – PUC-Rio Visualização e Projeção

  • Upload
    phamdat

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

1

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Câmeras e Transformações Projetivas

Alberto B. Raposo e Marcelo [email protected]

http://www.tecgraf.puc-rio.br/~abraposo/INF1366

Alberto Raposo – PUC-Rio

TransformaçõesProjetivas

Projetivas

Perspectiva

Afins

TranslaçãoRotação

EuclidianasLinear

Similaridades

EscalaentoIsotrópico

IdentidadeEscalamento

Shear

Reflexão

2

Alberto Raposo – PUC-Rio

Visualização e Projeção

viewport

Modelos 3Dcamera setup

John Dingliana, 2004

Alberto Raposo – PUC-Rio

Projeção

Representação de 3 dimensõesem meios 2D

John Dingliana, 2004

3

Alberto Raposo – PUC-Rio

No início

Alberto Raposo – PUC-Rio

Aprimoramentos...

http://www.stedwards.edu/hum/randle/s32/SSgotpint/FrameSet.htm

http://www.personal.us.es/jcordero/DISTANCIA/cap_09.htm

4

Alberto Raposo – PUC-Rio

Câmera escura

Alberto Raposo – PUC-Rio

Câmeras fotográficas

Luis-Jacques-Mandé Daguerre (1839)Câmara escura - Leonardo da Vinci -1545

5

Alberto Raposo – PUC-Rio

Câmeras atuais

Alberto Raposo – PUC-Rio

Pinhole

6

Alberto Raposo – PUC-Rio

Geometria da projeção cônica

plano de projeção

centro de projeção

Projeção cônica

caixa

filme

objetopinhole

raios de luz

imagem

Câmera

Alberto Raposo – PUC-Rio

Projeção cônica

TT fyxpyxpZYfy

ZXfx

],,[],[

,

=⇔=

==

f

7

Alberto Raposo – PUC-Rio

Taxonomia de Projeções

Projeções Planas Cônicas

A

BAp

Bp

☺ realista

não preserva escalanão preserva ângulos

8

Projeções Planas Paralelas

A

B

Ap

Bp

☺ preserva paralelismo☺ possui escala conhecida

pouco realista

N

Alberto Raposo – PUC-Rio

Perspectiva vs. Paralela

• Perspectiva+ Tamanho varia inversamente à distância: realista– Distância e ângulos (em geral) não preservados– Linhas paralelas (em geral) não permanecem

paralelas

• Paralela+ Boa para medições precisas+ Linhas paralelas permanecem paralelas– Ângulos (em geral) não são preservados– Aparência menos realista

D. Brogan, Univ. of Virginia

9

Alberto Raposo – PUC-Rio

Taxonomia de Projeções

Alberto Raposo – PUC-Rio

Projeção Paralela

• Centro de projeção no infinito– Direção de projeção (DOP) é a mesma para

todos os pontos

DOP

ViewPlane

D. Brogan, Univ. of Virginia

10

Alberto Raposo – PUC-Rio

Projeções Ortográficas

Top Side

Front

• DOP perpendicular ao view plane

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Projeção Ortográfica Simples• Projeta todos os pontos ao longo do eixo z

para o plano z = 0

x´y´z´1

=

xyz1

1000

0100

0000

0001

MIT EECS 6.837, Durand and Cutler

11

Alberto Raposo – PUC-Rio

Projeções Oblíquas

• DOP não é perpendicular ao view plane

Cavalier(DOP α = 45o)

tan(α) = 1

Cabinet(DOP α = 63.4o)

tan(α) = 2

45=α 4.63=α

D. Brogan, Univ. of Virginia

Projeções Cavaleiras (Cavalier) e Cabinetes (Cabinet)

α kx

y

z

(1,1,1)

x

y1

1

ℜ3 ℜ2

M

T(1,0,0) = (1,0,0)

T(0,1,0) = (0,1,0)

T(0,0,1) = ( -k cos α, -k sin α , 0) ⎥⎥⎥

⎢⎢⎢

⎡−−

=000sin10cos01

αα

kk

M

12

Alberto Raposo – PUC-Rio

Taxonomia de Projeções

Alberto Raposo – PUC-Rio

Transformação Perspectiva

• Descoberta por Donatello, Brunelleschi, e DaVinci durante o Renascentismo

• Objetos mais próximos parecem maiores• Linhas paralelas convergem em um único ponto

(ponto de fuga)

MIT EECS 6.837, Durand and Cutler

13

Projeções de um cubo

planta ouelevação iso-métrica

α

1/2

α

1

Cabinete(α=45 ou 30)

Cavaleira(α=45 ou 60)

1

1

1

1

• Paralelas

• Cônicas

1 pto de fuga 2 ptos de fuga

Alberto Raposo – PUC-Rio

Projeções Clássicas

D. Brogan, Univ. of Virginia

14

Alberto Raposo – PUC-Rio

Projeção Perspectiva

3-PointPerspective

2-PointPerspective

1-PointPerspective

• Quantos pontos de fuga?

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Perspectiva na pintura

Filippo Lippi, La Anunciación (1442)

(sem perspectiva)

(com perspectiva)

15

Alberto Raposo – PUC-Rio

Projeções Cônicas e Ponto de Fuga

Vermeer, “La lección de música”

Alberto Raposo – PUC-Rio

Projeção cônica

TT fyxpyxpZYfy

ZXfx

],,[],[

,

=⇔=

==

f

16

Alberto Raposo – PUC-Rio

Projeção Perspectiva

n

P (x, y, z)X

Z

Viewplane

(0,0,0) x’ = ?

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Projeção cônica simples

x

y

z

PPp

zp = -n

⎟⎟⎟

⎜⎜⎜

⎛=

zyx

P

⎟⎟⎟

⎜⎜⎜

=

p

p

p

p

zyx

P⎟⎟⎟

⎜⎜⎜

−= −

nyx

zn

zn

⎟⎟⎟

⎜⎜⎜

−=

zyx

zn

17

Alberto Raposo – PUC-Rio

Projeção cônica simples

xe

ye

ze

P

Pp

nz

yz

ny

xz

nx

p

ee

p

ee

p

−=−

=

−=

e

eh

eh

eh

zwznzynyxnx

−====

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

10100000000000

e

e

e

h

h

h

zyx

nn

n

wzyx

Alberto Raposo – PUC-Rio

Outra representação para matriz de transformção perspectiva

⎥⎥⎥⎥

⎢⎢⎢⎢

=

0100010000100001

n

M eperspectiv

D. Brogan, Univ. of Virginia

18

Alberto Raposo – PUC-Rio

Matriz de Projeção Perspectiva

• Exemplo:

• Ou:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

10100010000100001

zyx

nnzzyx

⎟⎟⎠

⎞⎜⎜⎝

⎛n

nzy

nzx ,,

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

No limite, n →∞

1000

0100

000

1/n

0001

1000

0100

0000

0001

...é a de projeçãoortográfica

A matriz de projeçãoperspectiva...

MIT EECS 6.837, Durand and Cutler

19

Alberto Raposo – PUC-Rio

Câmera Virtual – Computação Gráfica

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Modelos de Câmeras Virtuais

• Pinhole é a mais comum– Todos os raios de luz

capturados chegam por retasaté o ponto focal, semdistorção de lentes

– Resposta do sensor proporcional à radiância

View plane

Posição dos olhos(ponto focal)

D. Brogan, Univ. of Virginia

20

Alberto Raposo – PUC-Rio

Parâmetros de Câmera

• O que é necessário saber para modelar umacâmera virtual?

Alberto Raposo – PUC-Rio

Parâmetros de Câmera

• Posição dos olhos (px, py, pz)• Orientação

– View direction (dx, dy, dz)– Up direction (ux, uy, uz)

• Abertura– Field of view (xfov, yfov)

• Plano do filme– “Look at” point– View plane normal right

back

Up direction

Eye Position

View direction

ViewPlane

“Look at”Point

D. Brogan, Univ. of Virginia

21

Alberto Raposo – PUC-Rio

Movimentando a câmera

View Frustum (cone de visão)

Right

BackTowards

Up

Alberto Raposo – PUC-Rio

Câmera

22

Alberto Raposo – PUC-Rio

Projeção Cônica (Perspectiva)

aspect = w/h

xe

ye

ze

void glPerspective( GLdouble fovy, GLdouble aspect,GLdouble near_, GLdouble far_ );

near

far

w

h

xeze

fovy

(OpenGL)

Alberto Raposo – PUC-Rio

Projeção Cônica (Frustum)

zexe

ye

near

ye

ze far

tb

xeze

near

l r

far

void glFrustum( GLdouble left, GLdouble right,GLdouble bottom, GLdouble top,GLdouble near_, GLdouble far_ );

Obs.: near e far sãodistâncias( > 0)

view frustum

(OpenGL)

23

Alberto Raposo – PUC-Rio

Glu Look At

Dados: eye, center, up (definem o sistema de coordenadas do olho)

Determine a matriz que leva do sistema de Coordenadas dos Objetospara o sistema de Coordenadas do Olho

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

up eye

center

Coordenadas dosObjetos

Coordenadas doOlho

(OpenGL)

Alberto Raposo – PUC-Rio

xe

ye

ze

Projeção Paralela (Ortho)

leftright

bottom

top near far

A

( )nearbottomleftA −=

( )fartoprightB −=

void glOrtho( GLdouble left, GLdouble right,GLdouble bottom, GLdouble top,GLdouble near_, GLdouble far_ );

void gluOrtho2D( GLdouble left, GLdouble right,GLdouble bottom, GLdouble top );

(OpenGL)

24

Alberto Raposo – PUC-Rio

Câmera VRML: Viewpoint

Alberto Raposo – PUC-Rio

Exemplo VRML

25

Alberto Raposo – PUC-Rio

Exemplo VRML

The AnnotatedVRML Reference

Alberto Raposo – PUC-Rio

Exemplo VRML

The AnnotatedVRML Reference

26

Alberto Raposo – PUC-Rio

Exemplo VRML

The AnnotatedVRML Reference

Alberto Raposo – PUC-Rio

Exemplo VRML

The AnnotatedVRML Reference

27

Alberto Raposo – PUC-Rio

Transformações de Visualização

• Cria-se uma visualização centrada na câmera

• Câmera está na origem• Câmera olha para o eixo z no sentido negativo• O ‘up’ é alinhado com o eixo y

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

2 Passos básicos

• Alinha-se os sistemas de coordenadas (de câmera e do mundo) por rotação

D. Brogan, Univ. of Virginia

28

Alberto Raposo – PUC-Rio

2 Passos básicos

• Translação para alinhar as origens

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Espaço de coordenadas da câmera

• Especifica-se ponto onde a câmera estálocalizada (origem do espaço) eye point

• Especifica-se ponto onde será o centro davisualizaçãolookat point

• Especifica-se o vetor “up” up vector

• Movimentos intuitivosda câmera

D. Brogan, Univ. of Virginia

29

Alberto Raposo – PUC-Rio

Transformação de visualização

• Vetor da origem até o centro de visualização (look at point)

• Normalização do vetor

• Rotação para alinhar esse vetor com [0, 0, -1]T

(câmera apontando para –z)

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformação de visualização

• Se lookat-vector deve se alinhar com –z e o vup-vector se alinha com y:

• Esse vetor, normalizado, deve alinhar-se com [1, 0, 0]T

D. Brogan, Univ. of Virginia

30

Alberto Raposo – PUC-Rio

Transformação de visualização

• Mais um vetor…

• Esse vetor, normalizado, se alinha com [0, 1, 0]T

• Juntando os resultados…

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Compondo vetores para formar a matriz V

• Conhecemos os eixos de coordenadas do mundo (x, y, z)

• E também os eixos da câmera (r, u, l)• A transfomação de visualização, V, deve converter o

sistema do mundo para o sistema da câmera

D. Brogan, Univ. of Virginia

31

Alberto Raposo – PUC-Rio

Compondo vetores para formar a matriz V

• Cada eixo da câmera é de módulo unitário• Cada eixo é perpendicular aos demais

• A matriz de câmera é ortogonal e normalizada– Ortonormal

• Matriz ortonormal: M-1 = MT

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Compondo vetores para formar a matriz V

• Logo, a componente de rotação da matriz de transformação de visualização …

... é simplesmente a transposta

D. Brogan, Univ. of Virginia

32

Alberto Raposo – PUC-Rio

Compondo vetores para formar a matriz V

• Componente de translação

D. Brogan,Univ. of Virginia

Alberto Raposo – PUC-Rio

Matriz de Transformação de Visualização

Para transformar vértices:

33

Alberto Raposo – PUC-Rio

Informações Adicionais

– Peter Shirley. Fundamentals of ComputerGraphics, A K Peters, Ltd., Natick, MA, USA, 2002.

– Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics, Addison-Wesley, 1995.

– D. F. Rogers, J. A. Adams. “Mathematical Elements for Computer Graphics”. 2nd Ed., McGraw-Hill, 1990.