Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações...

69
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

Transcript of Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações...

Page 1: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 2: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Cena em Computação Gráfica

• 3 etapas– Especificação:

• Modelagem geométrica, transformações básicas (rotação, translação, escalamento), etc.

– Visualização• Qual porção da cena é vista

– Renderização• Como visualizar

Page 3: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

TransformaçõesProjetivas

Projetivas

Perspectiva

Afins

TranslaçãoRotação

EuclidianasLinear

Similaridades

EscalaentoIsotrópico

IdentidadeEscalamento

Shear

Reflexão

Page 4: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Visualização e Projeção

viewport

Modelos 3Dcamera setup

John Dingliana, 2004

Page 5: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeção

Representação de 3 dimensões em meios 2D

John Dingliana, 2004

Page 6: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

No início

Page 7: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 8: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Câmera escura

Page 9: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Câmeras fotográficas

Luis-Jacques-Mandé Daguerre (1839)

Câmara escura - Leonardo da Vinci -1545

Page 10: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Câmeras atuais

Page 11: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Pinhole

Page 12: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 13: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Plano e Janela de Projeção

• Plano de projeção: – Plano onde é projetada a

imagem

– Infinito

• Janela de projeção:– Porção retangular do

plano de projeção onde é vista a imagem (é a “janela” por onde se vê o mundo, ou a “tela” do quadro, por exemplo)

plano de projeção

centro de projeção

Projeção cônica

Page 14: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeção cônica

TT fyxpyxp

Z

Yfy

Z

Xfx

],,[],[

,

f

Page 15: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Taxonomia de Projeções

Page 16: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Projeções Planas Cônicas

A

BAp

Bp

realista

não preserva escala não preserva ângulos

Page 17: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Projeções Planas Paralelas

A

B

Ap

Bp

preserva paralelismo possui escala conhecida

pouco realista

N

Page 18: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 19: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Taxonomia de Projeções

Page 20: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 21: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeções Ortográficas

Top Side

Front

• DOP perpendicular ao view plane

D. Brogan, Univ. of Virginia

Page 22: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

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

para o plano z = 0

1

=

x

y

z

1

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0

1

MIT EECS 6.837, Durand and Cutler

Page 23: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 24: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

k

x

y

z

(1,1,1)

x

y1

1

M

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

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

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

000

sin10

cos01

k

k

M

Page 25: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Taxonomia de Projeções

Page 26: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 27: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 28: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeções Clássicas

D. Brogan, Univ. of Virginia

Page 29: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeção Perspectiva

3-PointPerspective

2-PointPerspective

1-PointPerspective

• Quantos pontos de fuga?

D. Brogan, Univ. of Virginia

Page 30: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Perspectiva na pintura

Filippo Lippi, La Anunciación (1442)

(sem perspectiva)

(com perspectiva)

Page 31: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeções Cônicas e Ponto de Fuga

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

Page 32: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeção cônica

TT fyxpyxp

Z

Yfy

Z

Xfx

],,[],[

,

f

Page 33: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeção Perspectiva

n

P (x, y, z)X

Z

Viewplane

(0,0,0) x’ = ?

D. Brogan, Univ. of Virginia

Page 34: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Projeção cônica simples

x

y

z

P

Pp

zp = -n

z

y

x

P

p

p

p

p

z

y

x

P

n

y

x

zn

zn

z

y

x

z

n

Page 35: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

zw

znz

yny

xnx

10100

000

000

000

e

e

e

h

h

h

z

y

x

n

n

n

w

z

y

x

Page 36: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

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

0100010000100001

n

M eperspectiv

D. Brogan, Univ. of Virginia

Page 37: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Matriz de Projeção Perspectiva

• Exemplo:

• Ou:

10100010000100001

zyx

nnzzyx

n

nz

y

nz

x,,

D. Brogan, Univ. of Virginia

Page 38: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

No limite, n → ∞

1

0

0

0

0

1

0

0

0

0

0

1/n

0

0

0

1

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0

1

...é a de projeção ortográfica

A matriz de projeção perspectiva...

MIT EECS 6.837, Durand and Cutler

-n

Page 39: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

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

D. Brogan, Univ. of Virginia

Page 40: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Modelos de Câmeras Virtuais

• Pinhole é a mais comum – Todos os raios de luz capturados chegam por retas até

o ponto focal, sem distorção de lentes

– Resposta do sensor proporcional à radiância

View plane

Posição dos olhos(ponto focal)

D. Brogan, Univ. of Virginia

Page 41: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Parâmetros de Câmera

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

Page 42: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Sistemas de Coordenadas

• Do mundo (world coordinates): ponto arbitrário no espaço, a partir do qual o mundo é modelado

• De câmera (eye coordinates): centrado na posição do observador, com o eixo “-z” na direção para onde se olha e o eixo “y” naquilo que se define como “para cima”

Page 43: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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)

(ou janela de visualização)• 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

Page 44: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Movimentando a câmera

View Frustum (cone de visão)

Right

BackTowards

Up

Page 45: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Câmera

Page 46: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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)

Page 47: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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ão distâncias( > 0)

view frustum

(OpenGL)

Page 48: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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)

Page 49: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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)

Page 50: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Câmera VRML: Viewpoint

Page 51: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Exemplo VRML

Page 52: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Exemplo VRML

The Annotated VRML Reference

Page 53: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Exemplo VRML

The Annotated VRML Reference

Page 54: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Exemplo VRML

The Annotated VRML Reference

Page 55: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Exemplo VRML

The Annotated VRML Reference

Page 56: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Exemplo X3D

Page 57: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 58: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 59: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

2 Passos básicos

• Translação para alinhar as origens

D. Brogan, Univ. of Virginia

Page 60: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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 da visualizaçãolookat point

• Especifica-se o vetor “up” up vector

• Movimentos intuitivosda câmera

D. Brogan, Univ. of Virginia

Page 61: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 62: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 63: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 64: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 65: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 66: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

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

Page 67: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Compondo vetores para formar a matriz V

• Componente de translação

D. Brogan,Univ. of Virginia

Page 68: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Matriz de Transformação de Visualização

Para transformar vértices:

Page 69: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br.

Alberto Raposo – PUC-Rio

Informações Adicionais

– Peter Shirley. Fundamentals of Computer Graphics, 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.