Buscar

CG-Aula-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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Robson Lins
UNICAP – CCT – Ciência da Computação
http://www.dei.unicap.br/rcl/cg
INTRODUÇÃO À
PROGRAMAÇÃO EM OPENGL
OPENGL (Open Graphical Library)
� OpenGL é uma interface de software (API –
Aplication Program Interface) para aceleração da 
programação de dispositivos gráficos
� Extremamente portável e rápida, possibilitando a 
criação de imagens com excelente qualidade
� O gerenciamento de janelas e a interação com o 
usuário devem ser implementadas para cada 
ambiente
Programa HardwareOpenGL
OPENGL com Windows
� Os comandos em OpenGL são disponibilizados 
através das DLLs (Dynamic Link Library) e seus 
respectivos arquivos header e library
� opengl32.dll: gl.h e opengl32.lib
� glu32.dll: glu.h e glu32.lib
� glaux.dll: glaux.h e glaux.lib
� glut.dll: glut.h e glut.lib
� Os arquivos .h são incluídos em código fonte 
enquanto os arquivos .lib devem ser incluídos no 
projeto
OPENGL com Windows
� Componentes Oficiais
� GL: contém as funções padrão do OpenGL
definidas pela OpenGL Architeture Review Board
e são caracterizadas pelo prefixo gl
� GLU: A biblioteca de utilitários contém contém 
funções com o prefixo glu para desenho de 
esferas, cubos, discos, cilindros etc.
� Componentes não Oficiais
� GLUT: conjunto de ferramentas utilitárias do 
OpenGL (OpenGL Utility Toolkit)
� Um sistema de gerenciamento de janelas. 
Todas as suas rotinas começam com o prefixo 
glut
OPENGL com Dev-C++
� Criar um novo projeto em C
Nome do Projeto Projeto 
em C
Projeto 
vazio
OPENGL com Dev-C++
� Salvar o projeto
OPENGL com Dev-C++
� Adicionar um arquivo ao projeto
� Projeto -> Adicionar ao Projeto
OPENGL com Dev-C++
� Adicionar as bibliotecas ao projeto
� Projeto -> Opções do Projeto
bibliotecas
Sintaxe de Comandos em OPENGL
� GL
glColor3f
Biblioteca GL
Comando
Número de 
argumentos
Tipos dos 
argumentos
� GLU
� Prefixo glu
� GLUT
� Prefixo glut
OPENGL: UM SIMPLES 
PROGRAMA
/*simple.c */
/*projeto em OpenGL para desenhar um quadrado*/
#include <windows.h>
#include <GL/glut.h>
/*terminar a aplicação através do teclado*/
void keyboard(unsigned char key, int x, int y)
{
switch(key) {
case 27: exit(0);
break;
}
}
OPENGL: UM SIMPLES 
PROGRAMA
/*exibe um quadrado 2D */
void display()
{
//limpa o buffer de pixels 
glClear(GL_COLOR_BUFFER_BIT);
//desenha o quadrado
glBegin(GL_LINE_LOOP);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();
//inicia o processo de desenho através dos dados bufferizados
glFlush();
}
OPENGL: UM SIMPLES 
PROGRAMA
/*programa principal*/
int main(int argc, char** argv)
{
glutInit(&argc,argv); // inicializa a glut
glutCreateWindow("simple"); // cria a janela
glutDisplayFunc(display); //chama o proc. desenha
glutKeyboardFunc(keyboard);//finaliza o programa
glutMainLoop();
return(0);
}
ATRIBUTOS DA PRIMITIVA LINE
� GL_LINES
� Cada par de vértices entre glBegin() e glEnd() 
definem um segmento de reta
� GL_LINE_STRIP
� Os vértices definem uma seqüência de 
segmentos de retas com a extremidade de um 
segmento iniciando no próximo segmento de reta
� GL_LINE_LOOP
� Liga os segmentos de reta como em 
GL_LINE_STRIP mas, além disso, o último vértice 
é ligado ao primeiro
ATRIBUTOS DA PRIMITIVA LINE
� Alterando a largura do segmento de reta
� O comando glLineWidth(GLfloat width) fixa a 
largura do segmento de reta para exibição. O 
valor default é igual a 1
CORES E PREENCHIMENTO
� O comando glColor3f(GLfloat r, GLfloat g, GLfloa
b ) fixa a cor da linha
� Exemplo: glColor3f(1.0,0.0,0.0)
� O atributo GL_POLYGON define que o polígono 
deve ser exibido com preenchimento.

Outros materiais