Buscar

OpenGl

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Introdução à Computação Gráfica
DEINF-UFMA
Prof. Anselmo Paiva
OpenGL
UFMA
2
OpenGL: o que é?
• API
– Interface para programador de aplicação
Aplicação
API abstrata
Aplicação
OpenGL API
Software & Hardware 
Dispositivo
de saída
Dispositivo
de entrada
3
Por que OpenGL?
• primitivas geométricas e imagens
• arquitetura bem definida
• relativamente simples
• boa performance (sw & hw)
• bem documentado
• independente de sistemas de janelas
• padrão
– disponível em diversas plataformas
4
O que faz o OpenGL
• Desenhar objetos: desenha pontos, linhas and poligonos.
Using these
• Controlar a visualizacao dos objetos: possui um conjunto
de transformacoes para visualizacao e modelagem
• Aplicar iluminacao: permite a manipulacao de varios tipos
de fontes luminosas
• Especificar modelos de iluminacao
• Melhoramentos na Imagem: antialias, blend, fog
• Mapeamento de texturas:
• Animacoes:
• Implementa double buffering
5
Organização da Biblioteca (XWindow)
Programa de
Aplicacao
OpenGL
GLU
GL
GLUT
GLX
Frame
Buffer
Xlib, Xtk,Motif
6
Primitivas geométricas básicas
Ponto Linha
Polígono (convexo)
Triângulo
Quadrado
7
Objetos 3D
From SIGGRAPH’97 course
8
Imagem e Textura
9
Aplicação típica
Aplicação
Sistema de
Janelas/Interface (IUP) OpenGL
GLU
Hardware
10
Programa simples (usando GLUT)
int main (int argc, char* argv[])
{
 /* openg GLUT */
 glutInit(&argc, argv);
 glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
 glutInitWindowSize (250, 250); 
 /* create window */
 glutCreateWindow (”simple");
 glutDisplayFunc(display); 
 /* interact … */
 glutMainLoop();
 return 0;
}
#ifdef _WIN32
#include <windows.h>
#endif
#include "GL/gl.h"
#include "GL/glu.h”
#include “GL/glut.h”
11
Programa simples (usando GLUT) - cont.
void display (void)
{
 /* clear window */
 glClearColor(1,1,1,1);
 glClear(GL_COLOR_BUFFER_BIT);
 /* draw red triangle */
 glColor3d(1,0,0);
 glBegin(GL_TRIANGLES);
 glVertex2d(-1,-1);
 glVertex2d(1,-1);
 glVertex2d(0,1);
 glEnd();
 /* update screen */
 glFlush();
}
12
OpenGL: máquina de estado
• Trabalha com o conceito de valor corrente
– Iluminação
– Shading
– Textura
– etc.
glEnable/glDisable
13
Primitivas geométricas
…define attributo de vértice
…define vértice
glBegin(tipo_de_prim);
glEnd();
14
Tipos de primitivas
GL_POINTS
GL_QUAD_STRIPGL_QUADSGL_POLYGON
GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN
GL_LINE_LOOPGL_LINE_STRIPGL_LINES
2
0
1
2
3 5
4 0
1
2
3
0 1
23
4
0
4
3
2
1
0
3
2
1
4 7
65
0
3
1
2 4
5
0
1
2
3
4
5
1
0
2
3
4
5
0
1
2 3
4
15
Especificação de vértice
glVertex{tam}{tipo}{vetor} (…);
exemplo:
 GLdouble pos[ ] = {0.4,9.0,2.0};
 glVertex3dv(pos);
ou
 glVertex3d(0.4,9.0,2.0);
16
• Modelo de cor
– RGB
glColor3d(red,green,blue);
– Color index
• Paleta previamente definida
IupGLPalette (handle, index, red, green, blue);
...
glIndexi(index);
Especificação de atributos: Cor
17
Projeção
• 2D
– retângulo de clipping
– Exemplo:
glMatrixMode(GL_PROJECTION)
glLoadIdentity();
gluOrtho2D(left, right, bottom, top)
glmatrixMode(GL_MODELVIEW)
18
Referências
• “The Red Book”
OpenGL: Programming Guide
Release 1.1
M. Woo, J. Neider, T. Davis
• Web sites
The official OpenGL web page
http://www.opengl.org
SGI’s OpenGL WWW Center
http://www.sgi.com/Technology/openGL
Gateway to OpenGL
http://reality.sgi.com/mjk_asd/opengl-links.html

Outros materiais