Download - COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Transcript
Page 1: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

COMPUTAÇÃO GRÁFICA E INTERFACES

Visualização e Transformações Geométricas em 3D

Curso de Engenharia InformáticaAno lectivo 2004/2005

Escola Superior de Tecnologia e Gestão da Guarda

Page 2: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Pipeline de visualização da OpenGL

Transformação“viewport”

Transformação“viewport”

DivisãoPerspectiva

DivisãoPerspectiva

Matriz deProjeção

Matriz deProjeção

Matriz deModelização

e Visualização

Matriz deModelização

e Visualização

vertice

objeto

olho recortenormalizadasde dispositivo janela

Page 3: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Estado inicial do pipeline

Inicialmente:•As matrizes modelview e projection são matrizes-identidade;

•Vértices não são transformados e a projecção é paralela sobre o plano x-y;

•O mundo visível é restrito ao cubo -1 ≤ x,y,z ≤ 1;

A transformação viewport mapeia o quadrado -1 ≤ x,y ≤ 1 (em coordenadas normalizadas de dispositivo) na superfície total da janela.

Page 4: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Viewport

A viewport é a área rectangular onde a imagem será visualizada.

Em OpenGL a viewport é definida com a função:

void glViewport( GLint x, GLint y, GLsizei width, GLsizei height )

glViewport(0,0, (GLint)width, (GLint)height); glViewport(-100,-100, (GLint)width, (GLint)height);

Page 5: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Primitivas gráficas

glBegin(TIPO_PRIMITIVA); glVertex3f(x, y, z); . . .glEnd()

Page 6: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Primitivas gráficas

Propriedades de linhas e pontos

Tamanho (default = 1):glPointSize( GLfloat size ) glLineWidth( GLfloat width )

Suavização (default = desligado):glEnable(GL_POINT_SMOOTH)glEnable(GL_LINE_SMOOTH)

glDisable(GL_POINT_SMOOTH)glDisable(GL_LINE_SMOOTH)

Page 7: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Primitivas gráficas

Propriedades de polígonos

A ordenação dos vértices define a face frontal;O default é o sentido anti-horário;

É possível alterar a ordem:

glFrontFace(GL_CW) Sentido horárioglFrontFace(GL_CCW) Sentido anti-horário

Page 8: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Primitivas gráficas

Modos de renderização

Wireframe: glPolygonMode(GL_FRONT, GL_LINE);

Sólido: glPolygonMode(GL_FRONT, GL_FILL);

Pontos: glPolygonMode(GL_FRONT, GL_POINT);

Backface Culling: glEnable(GL_CULL_FACE);

Z-Buffer: glEnable(GL_DEPTH_TEST);

Page 9: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Primitivas gráficas

Objectos sólidos da biblioteca GLUT

glutSolidTeapot(GLdouble size);

glutSolidCube(GLdouble size);

glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);

glutSolidCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks);

glutSolidTorus(GLdouble innerRadius, GLdouble outerRadious, GLint nsides, GLint rings);

glutSolidIcosahedron(void);

glutSolidOctahedron(void);

glutSolidTetrahedron(void);

glutSolidDodecahedron(GLdouble radious);

Todas estas funções também podem ser usadas para desenhar objectos em wire-frame Para isto, basta substituir a substring Solid por Wire no nome da função.

Page 10: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Transformações geométricas 3D

Translação

x

y

z

Page 11: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Transformações geométricas 3D

Rotação em torno do eixo Z

sin

cos

rP

rP

y

x

P

P’

x

y

rr

• Sabemos que

)sin(

)cos(

rP

rP

y

x

• Então

cossinsincos

sinsincoscos

rrP

rrP

y

x

cossin

sincos

yxy

yxx

PPP

PPP

• Ou, finalmente,

x

y

z

Page 12: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Transformações geométricas 3D

Matrizes de rotação

1000

0100

00cossin

00sincos

1000

0cossin0

0sincos0

0001

1000

0cos0sin

0010

0sin0cos

• Rotação em torno de Z

• Rotação em torno de X

• Rotação em torno de Y

Page 13: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Transformações geométricas 3D

Variação de escala

1000

000

000

000

z

y

x

escala S

S

S

T

x

y

z

x

y

z

Page 14: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Transformações geométricas 3D

Transformações geométricas 3D em OpenGL

As trnasformações geométricas são aplicadas nas matrizes modelview e projection do pipeline :

A matriz é escolhida através da função glMatrixMode(GL_MODELVIEW); ou glMatrixMode(GL_PROJECTION);

As transformações geométricas Translação, Rotação e Variação de escala são implementadas respectivamente pelas funções:

glTranslated( GLdouble x, GLdouble y, GLdouble z );glTranslatef( GLfloat x, GLfloat y, GLfloat z );

glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );

glScaled( GLdouble x, GLdouble y, GLdouble z ); glScalef( GLfloat x, GLfloat y, GLfloat z );

Existem outras funções para manipular as matrizes das transformações:glLoadIdentity() glMultMatrix ()glLoadMatrix() glPushMatrix ()glPopMatrix()

Page 15: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

As projecções permitem a visualização planar de objectos tridimensionais.

Para gerar a imagem de um objecto 3D, precisamos converter as coordenadas 3D em coordenadas 2D que correspondem a uma visão específica do objecto. Esse processo é chamado de projecção.

Page 16: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Elementos básicos das projecções

Sendo a projecção de um objecto a sua representação gráfica num plano, e tendo os objectos três dimensões, para a sua representação num plano bidimensional devem ser considerados os seguintes elementos básicos da projecção:

•Plano de Projecção; •Projectante, ou raio de projecção; •Centro de projecção.

Centro de Projeção

Plano de Projeção

Projectante ouRaio de projecção

A projectante é a recta que passa pelos pontos do objecto na direcção do centro de projecção e intercepta o plano de projecção. Ela pode ser oblíqua ou ortogonal ao plano de projecção, definindo assim o tipo de projecção.

Page 17: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Tipos de projecções geométricas

Existem dois tipos de projecção: a perspectiva e a ortográfica (paralela).

Na projecção perspectiva as projectantes convergem para o centro de projecção fazendo com que a projecção resultante tenha em conta a distância a que se encontra o objecto, do plano de projecção.

A projecção perspectiva é aquela que acontece no processo de formação de imagens nos nossos olhos ou numa câmara fotográfica, por isso é a que gera imagens mais realistas e mais familiares ao observador humano.

Page 18: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Tipos de projecções geométricas

Na projecção ortográfica ou paralela, o centro de projecção está no infinito e as projectantes são paralelas entre si.

Na projecção paralela, as linhas que unem os pontos A e B às suas projecções A’ e B’ são paralelas, isto faz com que o segmento projectado tenha o mesmo tamanho para qualquer distância entre o plano de projecção e o objecto.

Este tipo de projecção é utilizada em projectos de arquitectura e engenharia onde não há preocupação com a distância aparente dos objectos e o que realmente interessa é que a escala e os ângulos dos objectos seja preservada

Page 19: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

As projecções geométricas são classificadas conforme o organograma seguinte. Esta classificação depende das relações entre o centro de projecção, o plano de projecção e as projectantes.

Page 20: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções GeométricasProjecções paralelas ortográficas

Usadas em desenhos técnicos– Engenharias Civil e Mecânica– Arquitectura

Vantagens– Medidas precisas;– Todas as vistas na mesma escala;

Limitações– Não é possível “visualizar” objectos 3D;– Múltiplas vistas para definir peça;

Page 21: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções GeométricasProjecções paralelas axonométricas

Mesmo método das vistas ortogonais

• Isométricas:– ângulos de 120º entre eixos (1 escala)

• Dimétricas:– dois ângulos iguais (2 escalas)

• Trimétrica:– três ângulos diferentes (3 escalas)

Page 22: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Projecções paralelas obliquas

Raios projectores formam ângulo oblíquo com o plano de projecção.Plano de projecção normal a um dos eixos principais.

Vantagens– Mostra forma exacta de uma face;– Comparação de dimensões possível;– Ideia da aparência 3D de um objecto;

Desvantagens– aparência distorcida dependendo do plano de projecção;– falta de “realismo”;

Page 23: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Projecções paralelas obliquas (dois casos especiais)

Cavaleira– Ângulo entre projectores e normal = 45º;– Faces perpendiculares à escala.

Gabinete– Ângulo entre projectores e normal arctg(2) = 63.4º;– Faces perpendiculares à escala de 50%.

Page 24: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Projecções perspectivas

Usadas mais em publicidade e artes gráficas mas também em arquitectura, desenho industrial, engenharia.

Garantem maior “realismo” mas alteram a geometria dos objectos

As linhas paralelas dos objectos (não ao plano de projecção), convergem empontos de fuga. As linhas paralelas aos eixos definem pontos de fuga axiais (máximo de 3). Não mantém proporcionalidade entre distâncias. O tamanho dos objectos diminui com a distância. Só mantém a amplitude dos ângulos em faces paralelas ao plano de projecção.

Page 25: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Projecções perspectivas

Page 26: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição matemática da projecção genérica

Qualquer projecção pode ser definida matematicamente por uma matriz 4 x 4.

Considere-se a projecção de um ponto P ilustrada na figura ao lado.

O plano de projecção é perpendicular ao eixo z na distância zp da origem.

O centro de projecção está a uma distância D do ponto (0, 0, zp).

O vector normalizado (dx, dy, dz) dá a direcção de projecção e é a direcção de (0, 0, zp) para o centro de projecção.

Page 27: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição matemática da projecção genéricaPara construir a matriz geral de projecção, a qual chamaremos de Mgeral, basta sabermos apenas os valores de zp, (dx, dy, dz) e D.

A partir desta matriz geral é possível definir qualquer tipo de projecção. Deve-se apenas ter em conta as características gerais das projecções paralelas e perspectivas, e as características específicas dos casos especiais dessas projecções.

A direcção do vector unitário (dx, dy, dz) e o valor de D (distância do ponto (0, 0, zp) ao centro de projecção) pode ser calculada da seguinte forma:

Page 28: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções GeométricasMatriz geral de projecção em OpenGL

void __fastcall Form1::FormResize(){

GLfloat mprojecao[16]; glViewport(0,0,width,height); glMatrixMode( GL_PROJECTION ); glLoadIdentity();

mprojecao [0]=1; mprojecao [1]= 0; mprojecao [2]= 0; mprojecao [3]= 0; mprojecao [4]= 0; mprojecao [5]= 1; mprojecao [6]= 0; mprojecao [7]= 0; mprojecao [8]= 0; mprojecao [9]= 0; mprojecao [10]= 0; mprojecao [11]= 1/7; mprojecao [12]= 0; mprojecao [13]= 0; mprojecao [14]= 0; mprojecao [15]= 1;

glLoadMatrixf (mprojecao); glClearColor(0.0f,0.0f,0.0f,0.0f); glClear( GL_COLOR_BUFFER_BIT );

glClear(GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST);

glMatrixMode( GL_MODELVIEW ); glLoadIdentity();}

Formato da matriz em OpenGL

Page 29: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição da matriz de projecção perspectiva – 1º exemplo

Para simplificar, considere-se a projecção perspectiva representada na figura ao lado com o centro de projecção em (0, 0, 0) e direcção de projecção ortogonal.

Os parâmetros para definir a matriz de projecção perspectiva Mper para este exemplo, são respectivamente:

Substituindo estes valores na matriz de projecção geral, obtemos a seguinte matriz de projecção perspectiva:

Notar que neste exemplo basta conhecer a distância D para que a matriz de projecção possa ser definida.

Page 30: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição da matriz de projecção perspectiva – 2º exemplo

Considere-se uma nova projecção perspectiva ortogonal representada na figura ao lado, agora com o plano de projecção em zp = 0 e o centro de projecção em (0, 0, -D).

Os parâmetros para definir a matriz de projecção perspectiva M’per, são respectivamente:

Substituindo estes valores na matriz de projecção geral, obtemos a seguinte matriz de projecção perspectiva:

Notar que mais uma vez, basta conhecer a distância D para que a matriz de projecção possa ser definida.

Page 31: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Projecção perspectiva em OpenGL

Em OpenGL existe uma matriz de projecção perspectiva default com direcção ortogonal.

Para configuração de uma projecção perspectiva em OpenGL (utilizando a matriz default), é apenas necessário definir o volume visível representado na figura ao lado.

O volume visível é definido pelo tronco de uma pirâmide. São especificados os valores de X máximo e mínimo assim como os valores de Y máximo e mínimo. O valor de Near é igual a -Z min e o valor de Far é igual a -Z max.

Somente será visualizado o que estiver dentro deste volume visível.

A projecção é definida pelos seguintes comandos:

glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glFrustum(Xmin, Xmax, Ymin, Ymax, Near, Far);

Page 32: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Projecção perspectiva em OpenGL

Existe outra função da biblioteca GLU (utilitária da OpenGL), que fornece uma outra maneira de se configurar uma projecção perspectiva em OpenGL. Ela permite que seja especificado o ângulo de visão (ou field of vision), da projecção:

gluPerspective (fovy, aspecto, near, far);

Onde:

fovy -> é o ângulo de visãoaspect -> Largura (w na figura) / Altura (h na figura)  da janela de visualização.near e far -> idênticos aos parâmetros do comando Frustum.    

   

Page 33: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição da matriz de projecção perspectiva – 3º exemplo

Considere-se agora a projecção perspectiva da figura ao lado em que a direcção de projecção não é ortogonal ao plano de projecção.

Os parâmetros para definir uma matriz de projecção perspectiva M1, são respectivamente:

Substituindo estes valores na matriz de projecção geral, obtemos a seguinte matriz de projecção perspectiva:

Page 34: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição da matriz de projecção ortográfica – Exemplo 1

Considere-se a projecção ortográfica da figura ao lado com direcção de projecção ortogonal.

Como a projecção paralela pode ser vista como uma projecção perspectiva onde o centro de projecção está no infinito, o valor de D (distância do centro de projecção ao ponto (0,0, zp), neste caso zp = 0) será infinito.

Os parâmetros para definir uma matriz de projecção perspectiva Mpar, são respectivamente:

Substituindo estes valores na matriz de projecção geral, obtemos a seguinte matriz de projecção paralela:

Notar que neste caso especial de projecção paralela não é necessário conhecer qualquer parâmetro da projecção e a matriz da mesma é constante.

Page 35: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Projecção ortográfica em OpenGL

Em OpenGL já vem definida também uma matriz de projecção com direcção ortogonal default para a projecção ortográfica. Como na projecção perspectiva, para realizar uma projecção deste tipo em OpenGL (utilizando esta matriz default), é necessário definir-se apenas o volume visível ilustrado na figura ao lado.

O volume visível é definido por um paralelepípedo. São especificados os valores de X máximo e mínimo assim como os valores de Y máximo e mínimo. O valor de Near é igual a -Z min e o valor de Far é igual a - Z max.

Como na projecção perspectiva, somente será visualizado o que estiver dentro deste volume visível.   A projecção é definida pelos seguintes comandos:

glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(Xmin, Xmax, Ymin, Ymax, Near, Far);

Page 36: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição da matriz de projecção ortográfica – Exemplo 2

A projecção isométrica é uma projecção onde o plano de projecção (e consequentemente a direcção de projecção) faz o mesmo ângulo com cada eixo principal (x, y, e z). Existem apenas oito direcções (uma em cada octante), que satisfazem esta condição. Por exemplo: (1, 1, 1), (1, -1, -1) e (-1, -1, -1). Essa projecção é muito útil, pois as medidas junto aos eixos são feitas na mesma escala (iso: igual, metric: medida).

A matriz Miso de uma projecção isométrica com direcção de projecção igual a (-1, -1, -1) é definida pelos parâmetros:

Substituindo estes valores na matriz de projecção geral, obtemos a seguinte matriz de projecção paralela:

Page 37: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Projecções Geométricas

Definição da matriz de projecção ortográfica – Exemplo 3

As projecções cabinet e cavaleira são muito utilizadas em arquitectura e engenharia. Para a projecção cavaleira, a direcção de projecção faz um ângulo de 45º  com o plano de projecção. Já a projecção cabinet, tem uma direcção de projecção fazendo um ângulo de arctan(2) = 63,4º com o plano de projecção. Para estas projecções, considerando t o ângulo entre o eixo z e o eixo x (tipicamente 30º ou 45º), teremos como parâmetros das matrizes Mcav (cavaleira) e Mcab (cabinet) os valores mostrados na figura 4.5.11.

Substituindo estes valores na matriz de projecção geral, obtemos a seguinte matriz resultantes das projecções cavaleira e cabinet para t = 45º. :

Page 38: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Modelo de câmara sintética

A OpenGL utiliza uma analogia comparando a visualização 3D com tirar fotografias com uma câmara.

câmara

tripé modelo

volume visível

Page 39: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Modelo de câmara sintéticaInterpretação do modelo da câmara

Duas interpretações possíveis:Levam a câmara até a cena que se quer visualizar;Levam os objectos da cena até uma câmara estacionária;

Em OpenGL a câmara pode ser posicionada com a função:

gluLookAt(eyex, eyey, eyez,aimx, aimy, aimz, upx, upy, upz);

eye = ponto onde a câmara será posicionadaaim = ponto para onde a câmara será apontadaup = vector que dá a direcção “para cima” da câmara

x

y

z

aim

eye

up

Page 40: COMPUTAÇÃO GRÁFICA E INTERFACES Visualização e Transformações Geométricas em 3D Curso de Engenharia Informática Ano lectivo 2004/2005 Escola Superior de.

Modelo de câmara sintética

Interpretação do modelo da câmara

Modelação:Mover /deformar os objectos

Visualização:Mover e orientar a câmara

Projecção:Ajuste da lente / objectiva da câmara

Viewport:Aumentar ou reduzir a fotografia

x

y

z

aim

eye

up