OpenGL 3D

Instalação da Biblioteca

Para instalar OpenGL você precisa  obter as bibliotecas  que contém o código OpenGL assim como os aquivos de cabeçalho (.H). Clique aqui para obter um exemplo com estes arquivos.

Descompacte o arquivo obtido e abra o arquivo BasicoDEVCPP.dev. Isto deve carregar o DevC++.
No projeto do DevC++ verifique se estão incluídas as biblitoecas necessárias, quais sejam.
libglaux.a
libglu32.a
libglut32.a
libglut.a
libopengl32.a

Para verificar isto, tecle ALT-P e clique na pasta "parâmetros".

Dependendo da versão do DEVC++, não haverá a pasta citada acima. Neste caso, a inclusão das bibliotecas deverá ser feita através da seguinte linha de configuração, também  na janela de opções de projeto.

-lopengl32 -lglut32 -lglu32 -lglaux

Utilização da Biblioteca


Para usar OpenGL em 3D são necessárias as seguintes providências.

        1 .Definir a posição do observador na cena tridimensional. Isto é feito através do comandos apresentados a seguir, que devem ser colocados no início da rotina de redesenho da janela OpenGL:
 
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();

// define projeção perspectiva. Deve ser colocado ANTES do gluLookAt
    gluPerspective(AngVisao,1,1,1000);
// Define a posição do observador no cenário 3D
    gluLookAt(ObsX,ObsY,ObsZ, 0,0,29, 0,1,0);
    glMatrixMode(GL_MODELVIEW);

        2. Exibir os objetos em 3D.
glBegin(GL_POLYGON); // desenha um polígono
            glNormal3f(0,-1,0);   // define a normal da face (essencial para usar luzes)
            glVertex3f(-10.0, -10.0, -10.0); // define os vértices da face
            glVertex3f(10.0, -10.0, -10.0);
            glVertex3f(10.0, -10.0, 10.0);
            glVertex3f(-10.0, -10.0, 10.0);
glEnd; // fim do desenho
A seguir algumas destas funções são explicadas.

Função glMatrixMode (GL_PROJECTION)

        Define que as funções usadas a após a chamada desta rotina irão referir-se ao observador e não aos objetos do cenário 3D.

Função glMatrixMode (GL_MODELVIEW)

        Define que as funções usadas a após a chamada desta rotina irão referir-se ao aos objetos do cenário 3D e não ao observador.

Função gluPerspective

        O cabeçalho desta função é o seguinte:
                    gluPerperspective(AnguloDeVisao, RazaoDaJanela, LimitePerto, LimiteLonge).
        Onde,
AnguloDeVisao: ângulo de visão do observador, especificado em graus;
RazaoDaJanela: relação (divisão) entre a largura e a altura da janela OpenGL;

LimitePerto: menor distância desejada para um objeto visível. Se a distância entre um objeto e o observador for menor do que este número, este objeto não será visível;

LimiteLonge: maior distância desejada para um objeto visível. Se a distância entre um objeto e o observador for maior do que este número, este objeto não será visível;

Função gluLooAt

        O cabeçalho desta função é o seguinte:
void gluLookAt ( ObsX, ObsY, ObsZ
                             AlvoX, AlvoY, AlvoZ,
                             0,1,0 );
        Onde,
ObsX, ObsY, ObsZ: posição do observador;
AlvoX, AlvoY, AlvoZ: posição do ponto para onde o observador está olhando;
0,1,0: Define o lado de cima do cenário 3D.

Tutorial de OpenGL