1 / 20

Java Bindings for OpenGL JOGL An Overview

Java Bindings for OpenGL JOGL An Overview. Prof. Reginaldo do Prado Universidade Guarulhos - UnG. Objetivo. Configurar o ambiente de execução para o uso do JOGL Criar imagens bi e tridimensionais utilizando OpenGL Criar animações. 0. Configurar. Windows

fayre
Télécharger la présentation

Java Bindings for OpenGL JOGL An Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Bindings for OpenGLJOGLAn Overview Prof. Reginaldo do Prado Universidade Guarulhos - UnG

  2. Objetivo • Configurar o ambiente de execução para o uso do JOGL • Criar imagens bi e tridimensionais utilizando OpenGL • Criar animações

  3. 0. Configurar

  4. Windows • Incluir no CLASSPATH o caminho para jogl.jar e gluegen-rt.jar • Incluir no PATH o caminho para JOGL_HOME/lib • Eclipse • Deve ser feita a inclusão dos arquivos acima para cada projeto • Siga as instruções de: http://linus.uac.pt/~cogumbreiro/gfx/

  5. 1. Preparando o terreno

  6. O que é OpenGL... • API para programação gráfica • Biblioteca de rotinas gráficas e de modelagem • Interface para hardware gráfico • Produz imagens de alta qualidade, mas...

  7. OpenGL não é... • Uma linguagem de programação • Um programa para arte computacional • Um ray-tracer • Se quer fazer arte, visite http://www.povray.org/

  8. E como funciona? pipeline OpenGL

  9. O que é JOGL... • Pacote que permite o acesso de Java às rotinas do OpenGL • Exceção às chamadas relacionadas às janelas • Mantém a portabilidade do OpenGL • Inconsistente com a POO pela natureza procedural do OpenGL

  10. Como usá-los juntos • Primeiro: criar um GLCanvas ou GLJPanel • Depois registrá-lo a um GLEventListener • O listener deve implementar os métodos • init(GLDrawable drawable ) • reshape(GLDrawable drawable, int i, int x, int width, int height ) • display(GLDrawable drawable ) • displayChanged(GLDrawable drawable, boolean modeChanged, boolean deviceChanged )

  11. Criar uma janela • Criar um Frame ou JFrame • Adicionar o GLCanvas ou GLJPanel • Fazer a implementação dos métodos da interface GLEventListener Lesson01.java, FrameGL & projection.exe

  12. 2. Criar imagens

  13. Desenho de primitivas • Objetos criados com OpenGL são apenas combinações de primitivas • glBegin(tipo-primitiva) <vértices> glEnd() • Pontos • glBegin(GL_POINTS) • Segmentos • glBegin(GL_LINES) • glBegin(GL_LINE_STRIP) • glBegin(GL_LINE_LOOP) PrimitivaI.java & shapes.exe

  14. Desenho de primitivas • Triângulos • glBegin(GL_TRIANGLES) • glBegin(GL_TRIANGLE_STRIP) • glBegin(GL_TRIANGLE_FAN) • Quadriláteros • glBegin(GL_QUADS) • glBegin(GL_QUADS_STRIP) • Polígonos em geral • glBegin(GL_POLYGON) Lesson03.java

  15. 3. Animação

  16. Fazer animação é: • Fazer vários desenhos com pequenas diferenças • Fazer esses desenhos em um curto espaço de tempo • Fazer a troca dos desenhos antes que o usuário perceba

  17. ... e o que é necessário? • Uso de variáveis de controle • Atualizar essas variáveis a cada iteração do loop de animação... • ... ou atualizá-las a cada interação do usuário. PrimitivaII.java, Lesson04.java & transformation.exe

  18. Imagem 3D • Pode ser obtida como uma concatenação de primitivas 2D • Requerem o uso do sistema cartesiano tridimensional EspacoCartesiano.java & Lesson05.java

  19. ...e para saber mais? • Dê uma olhada em: • http://nehe.gamedev.net/ • http://today.java.net/pub/a/today/2003/09/11/jogl2d.html • http://www.inf.pucrs.br/~manssour/OpenGL/Tutorial.html • http://www.inf.pucrs.br/~pinho/CG/Aulas/OpenGL/OpenGL.html • http://pepijn.fab4.be/software/nehe-java-ports

  20. Muito obrigado contato: rprado@ime.usp.br rprado@ung.br

More Related