Material de Auxílio Didático

EA978 - Sistemas de informações gráficas

Primeiro semestre de 2003

DCA/FEEC/Unicamp


Ferramentas de Desenvolvimento

Neste curso são utilizadas as APIs OpenGL e as bibliotecas auxiliares GLU e GLUT segundo a implementação Mesa 5.0. O OpenGL e suas bibliotecas serão utilizados para o desenvolvimento dos projetos de aula linguagem C e para a execução das demonstrações didáticas. 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 através dos vínculos que se encontram após a descrição de cada ferramenta.

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 indústria 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.
Documentação em HTML:
PDF: [OpenGL Programming Guide] [OpenGL Reference Manual]
HTML: [OpenGL Programming Guide] [OpenGL Reference Manual]

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.
Documentação (PDF): [GLUT Specification]

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.
Documentação (PDF): [GLU Specification]

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. Neste curso utilizaremos 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.4. O Mesa compreende tanto o OpenGL, GLUT e GLU num só pacote. O procedimento de instalação em Linux e em Windows é mostrado a seguir:

Procedimentos de Instalação

Instalação do Mesa em Linux:

  1. Descompacte os arquivos "MesaDemos-5.0.zip" e "MesaLib-5.0.zip" a partir do site em um mesmo diretório através dos comandos "unzip MesaDemos-5.0.zip" e "unzip MesaLib-5.0.zip"
  2. No diretório "Mesa-5.0" 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.

Observação: o Mesa 5.0 já está instalado em todas nas máquinas do laboratório LE-20, no diretório "/softs/Mesa-5.0".

Instalação 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-5.0.zip" e "MesaLib-5.0.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".
  3. No diretório Mesa-5.0 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 "Mesa5.0/include/gl" para o diretório "include" do Visual C++.

Instalação do Java 2:

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

Instalação do J2SE em Linux:

  1. Digite "bash j2re-1_4_1_01-linux-i586-rpm.bin (Linux RPM self-extracting file)" e siga as instruções apresentadas (requer status de root).
  2. Digite "rpm -ivh j2re-1_4_1_01-fcs-linux-i586.rpm".

Observação: o Java 2 já está instalado em todas nas máquinas do laboratório LE-20 e pode ser acessado através do Netscape 4.77.

Instalação do J2SE em Windows:

  1. Execute o arquivo "j2re-1_4_1_01-windows-i586-i.exe (Windows (all languagens including English))" e siga as instruções apresentadas.

Autor: Harlen Costa Batagelo (harlen@dca.fee.unicamp.br)