Aula Prática: Introdução à OpenGL Disciplina: Computação Gráfica Professora: Isabel Harb Manssour |
O objetivo desta aula é aprender a utilizar a biblioteca OpenGL. Para isto, será utilizado o projeto JOGL, uma implementação de referência que permite o desenvolvimento de programas Java com OpenGL. Inicialmente, serão utilizados apenas objetos GL e GLU. Nas aulas práticas será utilizado o ambiente de programação Eclipse. Em princípio, tanto este ambiente como a biblioteca JOGL já estão instalados no laboratório. Portanto, logo abaixo é explicado como utilizá-los. Caso queiras instalar a JOGL em casa, é necessário: fazer o download da JOGL clicando aqui ou aqui; descompactar o arquivo zip; modificar a variável CLASSPATH para incluir o caminho completo para os arquivos jogl.jar e gluegen-rt.jar; modificar a variável PATH para incluir o caminho para a pasta lib criada ao descompactar o arquivo zip. Para implementação de aplicações OpenGL na linguagem de programação Java utilizando o Eclipse é necessário configurar o projeto da seguinte maneira: (1) Criar um novo projeto; (2) Indicar que os arquivos .jar devem ser incluídos como "External JAR" (Menu Project -> Opção Properties -> Item Java Build Path -> Aba Libraries -> Botão Add External JARs); (3) Incluir as DLLs existentes na pasta lib, criadas quando o arquivo zip da JOGL foi descompactado, no diretório Windows/System32 ou no próprio projeto (Menu File -> Opção import -> Item general, file system -> Selecionar as DLLs); (4) Inserir os arquivos .java. Clicando aqui, você pode obter os códigos fontes que serão utilizados na aula de hoje. Para informações mais detalhadas de como configurar o Eclipse, clique aqui (meus agradecimentos ao Régis Araújo e ao prof. Marcelo Cohen). Para informações mais detalhadas de como configurar o JOGL com o Eclipse no Linux, clique aqui (meus agradecimentos ao Diego Medaglia que elaborou o tutorial). Inicialmente, verifique o conteúdo do programa fonte fornecido para tentar entender o seu conteúdo. Depois, compile e execute o programa que abrirá uma janela com fundo branco e um triângulo, conforme mostra a próxima figura. ![]() Observe atentamente o código para entender o seu funcionamento, considerando a estrutura básica de um programa OpenGL:
Agora altere o código fonte conforme descrito a seguir e, a cada alteração, execute novamente o programa para verificar os resultados obtidos. Em caso de dúvida, consulte a professora ou o tuturial de introdução à OpenGL disponível em http://www.inf.pucrs.br/~manssour/OpenGL/Tutorial.html.
![]() Como fazer para interagir com o programa sem que seja necessário alterar e executar o código cada vez que o objeto, por exemplo, é trocado de lugar? Neste caso, é necessário gerenciar eventos do teclado e/ou mouse. Assim como já é feito com a tecla ESC, vamos tratar o evento de outras teclas para que o usuário possa interagir com a aplicação. Em seguida, declare os seguintes atributos na classe Renderer2D que serão inicializados,
por default, com 0:
Agora altere os parâmetros passados para o método gl.glTranslatef que é
chamado no método display, para que sejam passados estes atributos, da seguinte maneira:
Finalmente, para fazer o tratamento dos eventos, complemente a implementação do método keyPressed de maneira a permitir transladar o objeto para cima, para baixo, para a esquerda e para a direita sempre que o usuário pressionar cada uma das teclas de setas (incremente e decremente as variáveis translacaoX e translacaoY) public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_RIGHT: break; case KeyEvent.VK_LEFT: break; case KeyEvent.VK_UP: break; case KeyEvent.VK_DOWN: break; case KeyEvent.VK_ESCAPE:System.exit(0); break; } glDrawable.display(); }
|
Última alteração em 16 de março de 2008.