Ferramentas de Desenvolvimento

IA725 - Computação Gráfica I

Primeiro semestre de 2008

DCA/FEEC/Unicamp

[OpenGL/GLU/GLUT] [Linguagem de Desenvolvimento] [Máquina Virtual Java 2] [Ambiente Eclipse]

OpenGL/GLU/GLUT

Neste curso são utilizadas a API OpenGL e as bibliotecas auxiliares GLU e GLUT para o desenvolvimento dos programas. Uma descrição sucinta de cada ferramenta é dada a seguir. Para maiores informações consulte a documentação disponível em formato PDF ou HTML na página oficial do OpenGL. Para aqueles que não dispõem de um acelerador gráfico com drivers compatíveis com OpenGL, pode-se utilizar a biblioteca Mesa 3D.

OPENGL - O OpenGL (Open Graphics Library) é uma biblioteca de funções e estruturas de dados que constitui uma interface portável de alto nível para acesso ao hardware gráfico. Essa interface consiste basicamente de 120 funções que podem ser utilizadas para especificar objetos e operações necessárias para produzir aplicações 3D interativas. O OpenGL tem sido a API padrão de facto para o desenvolvimento das novas gerações de hardware gráfico e é utilizado em diversos tipos de aplicações em Computação Gráfica, tais como visualização científica, animação 3D, projeto auxiliado por computador, entretenimento e realidade virtual. Entretanto, um dos principais atrativos do OpenGL é a sua facilidade de utilização e portabilidade. Podem ser encontradas implementações do OpenGL nas mais diferentes plataformas de hardware, desde PCs equipados com Windows ou Linux, até estações de trabalho UNIX e supercomputadores. Para atingir esses resultados o OpenGL não implementa comandos de controle de eventos, manipulação de janelas ou controle de dispositivos de entrada. Por outro lado, essas funcionalidades são disponíveis em bibliotecas auxiliares, como o GLUT.

GLEW - O GLEW (OpenGL Extension Wrangler Library) provê um mecanismo eficiente para determinar em tempo de execução as extensões do OpenGL suportadas no ambiente em que roda o seu programa. Tanto as funções do núcleo quanto as das extensões do OpenGL podem ser declaradas por meio de um único arquivo de include: glew.h.

GLUT - O GLUT (OpenGL Utility Toolkit) é um conjunto de ferramentas auxiliares para o desenvolvimento de programas OpenGL em sistemas de janelas tais como o X Window System, Windows, OS/2 e Mac. O GLUT é implementado como uma API de funções de controle de janelas para o OpenGL, incluindo controle de eventos e de dispositivos de entrada. Através do GLUT o usuário não precisa se preocupar com as particularidades de tratamento de eventos e janelas em cada sistema, o que torna o aprendizado de programação em OpenGL uma tarefa mais simples. O GLUT também foi desenvolvido com o intuito de ser portável, de modo que os programas OpenGL escritos nele podem trabalhar tanto em PCs Win32 como em estações de trabalho X11 sem modificações em seu código. Este pacote não é integrante da interface do OpenGL. Deve-se baixá-lo do site e instalá-lo. Por outro lado, o Mesa inclui automaticamente a biblioteca GLUT (veja abaixo).

GLU - O GLU (OpenGL Utility Library) é um conjunto de funções auxiliares do OpenGL para gerar texturas mipmap a partir de imagens base, mapear coordenadas entre o espaço da tela e o espaço de objeto e desenhar superfícies quádricas e NURBS.

MESA - A implementação oficial do OpenGL é distribuída pelo seu desenvolvedor, a Silicon Graphics Inc. Entretanto, o OpenGL também é disponibilizado através de diversas outras implementações que se diferem entre si nos detalhes das funcionalidades, mas principalmente no desempenho obtido quando não existe hardware gráfico disponível e as funcionalidades requisitadas precisam ser emuladas em software. O Mesa, uma implementação não-licenciada do OpenGL, porém autorizada pela Silicon Graphics, se destaca por sua facilidade de instalação em diferentes plataformas, mas também por sua corretude e conformidade técnica com o OpenGL. O Mesa compreende tanto o OpenGL, GLUT e GLU num só pacote. O procedimento de instalação desta biblioteca em Windows e Linux é encontrado no site do Mesa 3D, nas seções Download/Unpacking e Compilation/Installation.


Compilação e Ligação

Para compilar um programa contendo as funções de OpenGL no Linux/Windows, é necessário indicar para o compilador o diretório que contém o arquivo "gl.h". Além disso, durante a ligação é necessário indicar o diretório que contém as bibliotecas "GL" e "GLU" para o ligador. Por exemplo, no GCC deve-se utilizar as opções -lGL e -lGLU. No Microsoft Visual C++ (a versão Express Edition pode ser baixada gratuitamente do site da Microsoft), deve-se incluir explicitamente na configuração do projeto os nomes das bibliotecas: "opengl32.lib" e "glu32.lib".

Para aplicativos que utilizam GLUT para acessar as facilidades do sistema de janela, deve-se indicar adicionalmente o diretório que contém o arquivo "glut.h" para o compilador, e o diretório que contém a biblioteca "glut" para o ligador. No GCC, utiliza-se a opção -lglut. No MS Visual C++, essa biblioteca é "glut32.lib".


Linguagem de Desenvolvimento

O OpenGL dispõe de interfaces para diversas linguagens de programação. A linguagem "nativa" é a linguagem C, mas a especificação padrão contempla ainda as linguagens C++, Fortran, Ada e Java. Neste curso fica a critério de cada grupo de projeto a escolha da linguagem de desenvolvimento, conforme as experiências anteriores. Recomendamos, no entanto, o uso de C ou de Java, para as quais poderemos dar melhor suporte ao longo do curso.

Instalação da Interface de Ligação de Java:

  1. Baixe os arquivos "jogl.jar" e & jogl-natives-*.jar", onde * corresponde à plataforma em que você vai desenvolver o seu programa, disponíveis na página JOGL API. JOGL API é uma interface de ligação do OpenGL com a linguagem Java, em conformidade com a especificação JSR-231.
  2. Coloque no subdiretório "${JRE_HOME}$/lib/ext" o arquivo "jogl.jar".
  3. Desempacote o arquivo "jogl-natives-*.jar" utilizando o comando "jar -xv jogl-natives-*.jar" e coloque as bibliotecas dinâmicas em:
    • Linux: "${JRE_HOME}$/lib/i386".
    • Windows: "${JRE_HOME}$/bin".

Pronto! Agora é só programar... Para os iniciantes recomendamos a introdução rápida a JOGL do Gene Davis ou o documento do grupo de desenvolvimento do JOGL.


Eclipse: Ambiente de Desenvolvimento de Programas

Eclipse é uma plataforma de desenvolvimento de projetos em diferentes linguagens de programação para distintos sistemas operacionais. Atualmente, ele suporta C/C++, COBOL e Java. Para instalar o conjunto básico das funções desta plataforma (Eclipse SDK) que integra um ambiente de desenvolvimento para programas em Java, recomendamos em

  1. Linux: dar uma lida no procedimento apresentado pelo Mike Shigueru Matsumoto.
  2. Windows: faça o download e descomprima o arquivo .zip, mantendo a estrutura dos diretórios. Execute o arquivo eclipse.exe existente na raiz.

Back to home page.

Last modified: Mon Mar 2 09:56:19 2009

Autores: Harlen Costa Batagelo, José Mario de Martino e Wu Shin - Ting

"Esta página, assim como todas as páginas sob esta mesma árvore, não é uma publicação oficial da UNICAMP, seu conteúdo não foi examinado e/ou editado por esta instituição. A responsabilidade por seu conteúdo é exclusivamente do autor."

"This page, as well as all pages under this same tree, is not an official publication from UNICAMP; its content has not been verified and/or edited by this institution. The author is solely responsible by its contents."