Вы находитесь на странице: 1из 3

05/11/2014

Camara Virtual
 Interface de visualizao
 Um sistema de Visualizao consiste num conjunto de parmetros
atravs dos quais um utilizador pode estabelecer uma transformao
que conduza ao mapeamento de pontos definidos em coordenadas do
Mundo (WCS: World Coordinates System - 3D), em pontos sobre uma
superfcie de visualizao (2D).

Modelo de Camara Virtual


Computao Grfica 2013/2014
Jos Braz

 Desse modo, o utilizador tem que definir


 a posio da cmara,
 a posio e a orientao do Plano de Visualizao no sistema de
coordenadas WCS

Departamento de Sistemas e Informtica


Escola Superior de Tecnologia Instituto Politcnico de Setbal

 e o volume de visualizao dentro do qual reside a poro da cena a


visualizar.

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

Camara Virtual

Camara Virtual

 Os passos necessrios para gerar uma imagem num


computador a partir de uma cena 3D, so idnticos
aos envolvidos para obter uma fotografia.

 Plano de Visualizao

 Fotografia:
 Posicionar a mquina num ponto particular do espao.
 Decidir a orientao da mquina.
 A lente utilizada define que parte da cena aparece na
fotografia.

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

Camara Virtual

Camara Virtual


 Plano de Visualizao

Camera e Plano de visualizao





VRP View Reference Point


VPN - View Plane Normal

 Direco de visualizao: o vector apoiado em VRP e normal ao plano de


visualizao. Define a direco para onde a camera est a apontar.


VUV - View Up Vector

 Define o ngulo de rotao em torno do VPN




D - Distncia do plano de visualizao ao VRP, sobre a direo do VPN

 Posio da camera (ou ponto de vista/eyepoint): o ponto de captao de


imagem coincide com o ponto de fuga da projeco perspectiva e com o pice
da pirmide que engloba o volume de visualizao.

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

05/11/2014

Volumes de Visualizao (2)

Pipeline de Visualizao 3D (2)

 Volume de Visualizao
Perspectivo (once again)


 No caso da projeco perspectiva, o volume de visualizao


definido pelas seguintes desigualdades:
( w / D) Z v X v ( w / D ) Z v

Janela de Visualizao: parte do plano de


visualizao, com centro na interseco
com o VPN e definida por:


2w x 2h: 2 vezes a largura por duas vezes


a altura, ou

FOV Field of view dois angulos (no


plano zx e no plano zy) que definem a
largura de campo da janela de
visualizao.

Plano de Recorte Anterior: paralelo ao


plano de visualizao e uma distncia F do
VRP

Plano de Recorte Posterior: paralelo ao


plano de visualizao e a uma distncia B
do VRP.

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

(h / D) Z v Yv (h / D ) Z v
F Zv B
 Onde (Xv,Yv,Zv) constitui o Sistema de coordenadas de visualizao
 O referencial ortonormal (u,v,n) define-se como:

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

Pipeline de Visualizao 3D (1)

OpenGL - Primitivas

 Resumo dos parmetros necessrios para a interface de um sistema


grfico baseado na projeco perspectiva

 OpenGL
 glMatrixMode(GL_PROJECTION)
 glFrustum(letf, right, bottom, top, near, far)

 Glu.h
 gluLookAt(eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz)
 Por defeito: gluLookAt(0.0,0.0,0.0, 0.0, 0.0, -100.0, 0.0,1.0,0.0)
 gluPerspective(fovy, aspect, near, far)

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

OpenGL - Primitivas

10

OpenGL Exemplo
void resizeCallback(GLsizei w, GLsizei h)

 OpenGL

 glMatrixMode(GL_PROJECTION)
 glFrustum(letf, right, bottom, top, near, far)

 Glu.h

if (h==0) h = 1;

// At least 1 pixel of height

glViewport(0, 0, w, h);

// Viewport definition

glMatrixMode(GL_PROJECTION);

// Projection matrix

glLoadIdentity();

// Loads identity matrix

if (w <= h)

 gluPerspective(fovy, aspect, near, far)

glFrustum (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w,

 gluLookAt(eyex, eyey, eyez,


centerx,centery,centerz,
upx,upy,upz)

1.5*(GLfloat)h/(GLfloat)w, 1.0, 40.0);


else
glFrustum (-1.5*(GLfloat)w/(GLfloat)h,
1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5,1.0,40.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

11

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

12

05/11/2014

OpenGL (glu.h) Exemplo

Blender - Exemplo
 Definies da camara:

void displayCallback ()

 Por defeito a cena inclui uma camara e


normalmente suficiente, mas se o quiser fazer
pode adicionar outras camaras.

{
// Clears screen
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 Lens Perspective / Orthographic

glPushMatrix();

 Lens Angle

 Projeo perspetiva ou ortogrfica


gluLookAt(8,10,30,0,0.0,0,0,1,0);

 Define uma lente como se de uma lente real de se


tratasse. 35mm a norma, mas podemos escolher
maiores ou menores aberturas.

// Camera

scene->draw();
glPopMatrix();

 Lens Panorama Shift

glFlush();

 Move a camera num direco sem alterar a


perspectiva

// Swap buffers (double-buffering)

 Lens Panorama Clipping start/End:

glutSwapBuffers();

 At que ponto um objecto pode estar perto/longe


da camara e continuar a ser visivel (near plane/far
plane)

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

13

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

14

Blender - Exemplo
 Depth of Field:
 Profundidade de campo Utilizado com os Nodes
(ns) para esbater objetos no fundo. Ser
abordado posteriormente.

 Display Limits:
 Desenha uma linha na cena para ajudar a
perceber o alcance da camara

 Display Mist:
 Apresenta a neblina. Usada para mostrar at
onde que a camara v se usarmos o Mist.

 Display Title Safe:


 Apresenta a caixa interior para ajudar colocar
texto e outros objectos.

 Display Size / Passepartout / Alpha

05/11/2014

Jos Braz - Departamento de Sistemas e Informtica

15

Вам также может понравиться