trabalho 2 – imagens panorâmicas andrei monteiro fundamentos de computação gráfica prof....

12
Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Trabalho 2 – Imagens Panorâmicas

Andrei MonteiroFundamentos de Computação GráficaProf. Marcelo Gattass

Page 2: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Objetivo

Implementar um visualizador de imagens panorâmicas.

Page 3: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Método

Sphere Mapping Geração de doordenadas de textura

automática do OpenGL Manipulação na matrix de textura;

Setar coordenadas de textura por vértice da esfera. Manipulação da câmera no espaço do olho.

Page 4: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Implementação - Esfera

x = r cos( theta ) cos( alpha );

y = r sin( theta )

z = r cos( theta ) sin( alpha );

alpha [0, 2π], theta [-π/2, π/2]

Page 5: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Implementação - Textura

Segmentação: 12x12

0, 0 1, 2π

0, -π/2

1, π/2

Inverter culling (front -> back)

Page 6: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Implementação - Câmera

y(c)

z(c)

r

sphere

p(w)

Rotacionar apenas a câmera!

Page 7: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Implementação - Câmeray(c)

x(c)

ERRADO!

-zNão pode girar no eixo z da câmera!

Page 8: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

y(c)z(c)

r

sphere

p

Implementação - Câmera

y-axis = ??

Page 9: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Implementação - Câmera

y-axis em coordenadas do olho? Utilizar ModelView

P(eye) = MV * P(world) y-axis(eye) = MV * (0,1,0) Girar em torno de y-axis(eye)!!!

Page 10: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Implementação - Câmera

Restrição: ERRADO!!!

Page 11: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Implementação - Câmera

Restrição up(w) = MV-1 * (0,1,0) <up(w) . (0,1,0)> = 0 <up(w) . (0,-1,0)> = 0

Obs: (0,1,0) e (0,-1,0) escolhidos como polos.

Page 12: Trabalho 2 – Imagens Panorâmicas Andrei Monteiro Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Referências

Fonte de Imagens http://www.flickr.com/groups/equirectangular/