Computação Gráfica – Transformações Projetivas
description
Transcript of Computação Gráfica – Transformações Projetivas
Computação Gráfica – Transformações Projetivas
Profa. Mercedes Gonzales Márquez
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
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
4
Analogia entre o sistema visual humano e a Analogia entre o sistema visual humano e a câmera fotográficacâmera fotográfica
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
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
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
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
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
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
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
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
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
14
EEspecificação da câmera virtualspecificação da câmera virtual
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
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
Tipos de Projeção
Resumindo, existem dois tipos de projeção: (a)Projeção Paralela, Ortogonal ou ortográfica(b)Projeção perspectiva
Tipos de Projeção
Projeção perspectiva e projeção paralela
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
Modelo perspectivo ideal
P
p
O
P
O o P1
p
p1
y x
z
yx
z
Plano imagem
Plano imagem f
f
oP1p1
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