3Dopengl
2581 palavras
11 páginas
COMPUTAÇÃO GRÁFICA E INTERFACESVisualizaçã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