3Dopengl

2581 palavras 11 páginas
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 Tecnologia e Gestão da Guarda

Pipeline de visualização da OpenGL

v e r t i c e

Matriz de Modelização e Visualização

Matriz de Projeção

Divisão Perspectiva

Transformação “viewport”

objet o

olho

recorte

normalizadas de dispositivo

janela

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.

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);

Primitivas gráficas glBegin(TIPO_PRIMITIVA); glVertex3f(x, y, z); ... glEnd()

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)

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ário glFrontFace(GL_CCW) Sentido anti-horário

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);

Primitivas gráficas
Objectos sólidos

Relacionados