Computação Gráfica – Transformações Projetivas

21
Computação Gráfica – Transformações Projetivas Profa. Mercedes Gonzales Márquez

description

Computação Gráfica – Transformações Projetivas. Profa. Mercedes Gonzales Márquez. Modelo de câmera. Uma câmera pode ser caracterizada matematicamente através de seus parâmetros intrínsecos e extrínsecos . - PowerPoint PPT Presentation

Transcript of Computação Gráfica – Transformações Projetivas

Page 1: Computação Gráfica – Transformações Projetivas

Computação Gráfica – Transformações Projetivas

Profa. Mercedes Gonzales Márquez

Page 2: Computação Gráfica – Transformações Projetivas

2

• Uma câmera pode ser caracterizada matematicamente Uma câmera pode ser caracterizada matematicamente através de seus parâmetros através de seus parâmetros intrínsecosintrínsecos e e extrínsecos extrí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 (isto foi visto nos slides anteriores referência no mundo (isto foi visto nos slides anteriores ao falarmos da gluLookAt).ao falarmos da gluLookAt).

• Falaremos a continuaFalaremos a continuação dos parâmetros intrínsecos.ção dos parâmetros intrínsecos.

Modelo de câmeraModelo de câmera

Page 3: Computação Gráfica – Transformações Projetivas

3

• 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ício Neste 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.

Modelo de câmera – câmera de furoModelo de câmera – câmera de furo

Page 4: Computação Gráfica – Transformações Projetivas

4

Analogia entre o sistema visual humano e a Analogia entre o sistema visual humano e a câmera fotográficacâmera fotográfica

Page 5: Computação Gráfica – Transformações Projetivas

5

• 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 perspectiva ou projeção perspectiva ou cônicacônica..

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

dede projeção que é posicionado projeção 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..

centro de projeçãocentro de projeçãodistância focaldistância focal

Modelo de câmera – câmera de furoModelo de câmera – câmera de furo

pinholepinhole

Page 6: Computação Gráfica – Transformações Projetivas

6

• Dentre as várias formas de especificar uma Dentre as várias 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), escolhemos a ), escolhemos a especificaçãoespecificação usada pelo OpenGL.usada pelo OpenGL.

• 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 eixo ópticoóptico e as dimensões da tela virtual (um e as dimensões da tela virtual (um retângulo de retângulo de wwhh pixels pixels).).

Especificação de câmera virtualEspecificação de câmera virtual

Page 7: Computação Gráfica – Transformações Projetivas

7

• 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..

Modelo de câmera virtualModelo de câmera virtual

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 janelajanela

eixoeixoópticoóptico

centro centro ópticoóptico

ooeyeeye

Page 8: Computação Gráfica – Transformações Projetivas

8

• Um caso bastante comum é aquele em que o eixo Um caso bastante comum é aquele em que o eixo óptico é perpendicular à tela virtual e intercepta óptico é perpendicular à tela virtual e intercepta exatamente seu centro.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).).

Modelo de câmera virtualModelo de câmera virtual

Page 9: Computação Gráfica – Transformações Projetivas

9

• 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..

Modelo de câmera virtualModelo de câmera virtual

eixo ópticoeixo óptico

vv

uu

eyeeyexxee

yyee

zzee

eixo horizontaleixo horizontal

eixo verticaleixo vertical

Page 10: Computação Gráfica – Transformações Projetivas

10

• A escolha de OpenGL para parametrizar uma câmera A escolha de OpenGL 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/h w/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, Gldouble void glPerspective(Gldouble fovy,Gldouble aspect, Gldouble near, Gldouble far);near, Gldouble far);

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

Especificação da câmera virtualEspecificação da câmera virtual

Page 11: Computação Gráfica – Transformações Projetivas

11

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 12: Computação Gráfica – Transformações Projetivas

12

• 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

EEspecificação da câmera virtualspecificação da câmera virtual

Page 13: Computação Gráfica – Transformações Projetivas

13

• 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 definem a tela virtual, juntamente com os planos que definem a tela virtual, juntamente com os planos em 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);

EEspecificação da câmera virtualspecificação da câmera virtual

Page 14: Computação Gráfica – Transformações Projetivas

14

EEspecificação da câmera virtualspecificação da câmera virtual

Page 15: Computação Gráfica – Transformações Projetivas

15

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

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

PProjeção ortográficarojeção ortográfica

xxee

yyee

zzee

rightright

nearnear

leftleft

toptop

bottombottom

farfar

Page 16: Computação Gráfica – Transformações Projetivas

16

• A função da OpenGL que produzem tal matriz são:A função 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)

PProjeção ortográficarojeção ortográfica

Page 17: Computação Gráfica – Transformações Projetivas

Tipos de Projeção

Resumindo, existem dois tipos de projeção: (a)Projeção Paralela, Ortogonal ou ortográfica(b)Projeção perspectiva

Page 18: Computação Gráfica – Transformações Projetivas

Tipos de Projeção

Projeção perspectiva e projeção paralela

Page 19: Computação Gráfica – Transformações Projetivas

Matriz de Projeção Paralela

Se quisermos a projeção ortográfica em relação ao plano xy (ou z=0), a matriz em coordenadas homogêneas é

11000

0000

0010

0001

1

'

'

'

z

y

x

z

y

x

Se no lugar do plano z=0 for escolhido outro plano qualquer z=Tz paralelo a ele, a matriz será

11000

000

0010

0001

1

'

'

'

z

y

x

Tzz

y

x

Page 20: Computação Gráfica – Transformações Projetivas

Modelo perspectivo ideal

P

p

O

P

O o P1

p

p1

y x

z

yx

z

Plano imagem

Plano imagem f

f

oP1p1

Page 21: Computação Gráfica – Transformações Projetivas

Matriz de Projeção Perspectiva

11/100

0000

0010

0001

1

'

'

'

z

y

x

f

z

y

x

Por similaridade de triângulos temos

Centro de projeção

Plano de projeção

(x,y,z)

(x´,y´)

f

fz

y

f

y

fz

x

f

x

'

'

x

y