Login Registre-se

Você pode ganhar um iPad 2 na promoção do Javafree

O Portal javafree.org inicia mais uma promoção para os usuários do fórum. Quem publicar mais posts válidos (perguntas ou respostas) entre 16/4 a 13/7 levará para casa um iPad 2 de 16GB!

Clique aqui e saiba mais.
Home > Artigos > Java em Geral >

OpenGL com Java

Publicado por Edinei Manica em 16/08/2009 - 36.453 visualizações


comentários: 1

Trabalhando com o Open GL com Java
Por: Edinei Manica
e-mail: edineimanica@javafree.com.br

Introdução

O OpenGl é uma biblioteca de rotinas gráficas para modelagem em 2 ou em 3D. O OpemGl permite o uso de iluminação, mapeamento de textura,transparência, sombreamento, animações, mas como esse tutorial é básico do OpenGl não chegaremos a utilizar todos estes recursos.
O OpenGl possui cerca de 150 comandos. As especificações do OpenGL não descrevem as interações entre OpenGL e o sistema de janelas utilizado. Assim, tarefas como criar janelas gráficas, gerenciar eventos ficam a cargo de bibliotecas próprias de cada sistema operacional.
Os principais fabricantes de Pcs adotaram como estratégia de padrão aberto para Hardware gráfico o OpenGl dentre elas a Compaq, a Sony, a Sun Mycrosystems, a Samsung dentre outras.
Hoje em dia nos temos vários jogos e CAD que utilizam o OpeGl, como por exemplo o famoso jogo quake e o famoso programa para modelagem Maya.
Neste tutorial veremos as transformações de translação, rotação e mudança de escala isso de forma bem fácil, sem precisar realizar cálculos com matrizes de transformações, isso por que a biblioteca para Java já implemento métodos para facilitar estas transformações.
Site oficial: htttp://www.opengl.org.

Instalando o OpenGl

Para realizar a instalação do OpenGl entre na página http://www.gopengl.org/tutoriels/configurerjava.php , e baixe as dlls que você deve adicionar em seu sistema.
- libGL4Java2.8.2.0-Win32-x86.zip

E as librarys necessárias, e adicione as em seu projeto.
- gl4java2.8.2.0-jar.zip,
- gl4java2.8.2.0-glffonts-jar.zip,
- gl4java2.8.2.0-glutfonts-jar.zip
- png-1.0a-jar.zip.

Trabalhando com o OpenGl

Primeiramente foi criada uma classe que contém todas as propriedades de cada objeto, como cor, quem é filho dele, etc. E permitindo que se altere estas propriedades.



A segunda classe é onde são criados os objetos, e os eventos para a realização de uma determinada transformação.


Explicações sobre a segunda classe:
O método public void iniciaObjetos(), cria os objetos e seta suas propriedades como o nome do objeto, os vértices dos objetos(vértices como em uma matriz, pois a tela é formada pr pontos cada ponto destes tem uma coordenada (x,y) que são os vertices), as core RGB de cada objeto e também quem são os filhos deste objeto.
Definição de filhos: Se um dedo é filho de uma mão, então se eu mexer a minha mão o meu dedo ira se movimentar juntamete. E se eu movimentar o meu dedo, não influenciara nada em minha mão.

O método public void populaCombo() popula o combo com todos os objetos que existem em meu ambiente OpenGl.

O método public void montaHierarquia(int indiceNodoPai) recebe como parâmetro um inteiro que seria o índice do nodo pai. Com isso ele monta a hierarquia dos objetos e os desenha na tela.



De maneira mais simples para montar a hierarquia:


Montando dessa forma, a cena é pai do filho1 e do filho dois, isto pois o filho1 e o filho2 foram criados dentro do Push e do Pop da cena. Então se eu realizar uma transformação na cena, esta operação influenciará nos filhos também.
O método public void display()é onde é passado para ficar redesenhando a cena. Neste método é passado a cada repaint que é realizado na tela.
O método public void desenha() desenha os objetos na tela, com sua determinada cor e coordenada.

A terceira classe é a classe do JFrame, ou JInternalFrame que ira chamar a animação do OpenGl.








comentários: 1