Ferramentas de Desenvolvimento

IA725 - Computação Gráfica I

Primeiro semestre de 2006

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 de OpenGL. Para aqueles que não dispõem de um acelerador gráfico provido da API OpenGL, pode-se utilizar a bilioteca Mesa. O procedimento de instalação destas bibliotecas em Linux e em Windows é apresentado na sequência.

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". E durante a ligação, é necessário inidicar o diretório que contém as bibliotecas "libGL" e "libGLU" para o ligador. No caso do Microsoft Visual C++, deve-se incluir explicitamente na configuração do projeto os nomes das bibliotecas.

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 para o ligador, o diretório que contém a biblioteca "libglut" para o ligador.

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.

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 mais 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 consideravelmente 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.

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, que se destaca por sua facilidade de instalação em diferentes plataformas, mas também por sua corretude e conformidade técnica com o OpenGL versão 1.5. O Mesa compreende tanto o OpenGL, GLUT e GLU num só pacote.

Instalação do Mesa em Linux:

  1. Descompacte os arquivos "MesaDemos-*.zip", "MesaGLUT-*.zip" e "MesaLib-*.zip", sendo * a última versão do pacote, a partir do site em um mesmo diretório através dos comandos "unzip MesaDemos-*.zip", "unzip MesaGLUT-*.zip" e "unzip MesaLib-*.zip"
  2. No diretório "Mesa-*" recém-criado digite "./configure" e em seguida "make". Esse procedimento gera as bibliotecas "libGL.so" no diretório "src/.libs/", "libGLU.so" em "si-glu/.libs/" e assim por diante.
  3. Digite "make install" para copiar as bibliotecas para os diretórios "usr/local/lib" e "usr/local/include". Para isso o usuário deve possuir acesso de escrita nesses locais, por exemplo, acessando o sistema como root.
  4. Após a instalação, digite "make check" para compilar as demonstrações. Para compilar as demonstrações e em seguida executá-las, digite "make exec". Essa etapa é opcional.

Uso do Mesa em Windows:

O seguinte procedimento de instalação do Mesa em Windows supõe a presença do compilador Microsoft Visual C++ 6.0.

  1. Descompacte os arquivos "MesaDemos-*.zip" e "MesaLib-*.zip" a partir do site em um mesmo diretório através de um programa de descompactação de arquivos zip como o WinZip.
  2. Na linha de comando, carregue as variáveis de ambiente do Visual C++ executando o arquivo "vcvars32.bat" que se encontra (usualmente) no diretório "Arquivos de programas/Microsoft Visual Studio/vc98/bin". Este passo é fundamental para o uso do comando "nmake".
  3. No diretório Mesa-* digite "nmake -f Makefile.win NODEBUG=1". Esse procedimento gera as bibliotecas "MesaGL.dll", "MesaGL.lib", "osmesa.dll", "osmesa.lib" no diretório "src", "MesaGLU.dll", "MesaGLU.lib" no diretório "si-glu", "MesaGlut.dll", "MesaGlut.lib" em "src-glut" e demos executáveis nos diretórios "demos", "book" e "samples".
  4. Copie todos os arquivos com extensão .lib gerados no passo 3 para o diretório "lib" do Visual C++. Faça também uma cópia do arquivo "MesaGlut.lib" com o nome alterado para "glut32.lib".
  5. Copie todos os arquivos com extensão .dll gerados no passo 3 para o diretório "Windows/System32".
  6. Copie o diretório "Mesa*/include/gl" para o diretório "include" do Visual C++.

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 Linkagem 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 linkagem 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.


Ambiente de Máquina Virtual Java 2

Observação: Esta instalação não é necessária para quem tiver o pacote de desenvolvimento Java 2 Platform Standard Edition da Sun Microsystems Inc instalado.

Para a execução das demonstrações interativas é preciso um navegador de Internet instalado com uma máquina virtual Java 2 (Java 2 Runtime Environment, Standard Edition, da Sun Microsystems Inc). A instalação pode ser feita conforme as instruções a seguir.

Instalação do J2SE em Linux:

  1. Digite "bash j2re-1_4_2_03-linux-i586-rpm.bin Linux RPM self-extracting file)".
  2. Altere o modo do arquivo para execução com o comando "chmod +x j2re-1_4_1_01-fcs-linux-i586.rpm.bin".
  3. Extraie o arquivo rpm com o comando "./j2re-1_4_1_01-fcs-linux-i586.rpm.bin".
  4. Instale a versão mais recente com o comando "rpm -Uvh j2re-1_4_1_01-fcs-linux-i586.rpm" (requer status de root).

Instalação do J2SE em Windows:

  1. Execute o arquivo "j2re-1_4_2_03-windows-i586-p.exe (Windows multi-language))".

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. Widowns: 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: Fri Aug 4 16:05:41 2006

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."