JOGL - Visão geral

Este capítulo apresenta o OpenGL, suas funções, os vínculos OpenGL em java (GL4java, LWJGL, JOGL) e as vantagens do JOGL sobre outros vínculos OpenGL.

Java binding para OcanetaGL(JOGL) é a ligação recente para API gráfica OpenGL em Java. É uma biblioteca de wrapper, que pode acessar a API OpenGL, e foi projetada para criar aplicativos gráficos 2D e 3D codificados em Java. JOGL é uma biblioteca de código aberto desenvolvida inicialmente pelos ex-alunos de pós-graduação do MIT Ken Russell e Chris Kline. Mais tarde, foi adotado pelo grupo de jogos da Sun Microsystems e agora é mantido por Java on Graphics Audio and Processing (JOGAMP). JOGL funciona em vários sistemas operacionais, como Windows, Solaris, Mac OS X e Linux (em x86).

O que é OpenGL?

OpenGL significa Open Graphics Library, que é uma coleção de comandos para criar gráficos 2D e 3D. Com OpenGL, você pode criar formas 3D complicadas usando primitivos muito básicos, como pontos, linhas, polígonos, bitmaps e imagens.

Aqui estão alguns recursos do OpenGL -

  • Ele pode funcionar em várias plataformas.

  • Possui vínculos em várias linguagens como C ++, Python, etc

  • Ele pode renderizar gráficos vetoriais 2D e 3D.

  • Ele interage com a unidade de processamento gráfico (GPU) para obter uma renderização rápida e de alta qualidade. Renderização é o processo de criação de uma imagem a partir de um modelo 2D ou 3D.

  • É uma API padrão da indústria para escrever aplicativos gráficos 3D. Por exemplo, jogos, protetores de tela, etc.

  • Ele contém cerca de 150 comandos, que os programadores podem usar para especificar objetos e operações para desenvolver aplicativos.

  • Ele contém OpenGL Utility Library (GLU) que fornece vários recursos de modelagem, como superfícies quádricas e curvas NURBS. GLU é um componente padrão do OpenGL.

  • O design do OpenGL é focado na eficiência, eficácia e sua implementação em várias plataformas usando vários idiomas. Para manter a simplicidade de uma API OpenGL, as tarefas de janelas não estão incluídas.

Portanto, OpenGL depende de outras linguagens de programação para tarefas de janela.

Java Binding para API OpenGL

É uma especificação da API Java Specification Request (JSR), que permite usar OpenGL na plataforma Java.

Especificações Detalhes
JSR 231 Este pacote de vinculação Java oferece suporte à plataforma Java SE.
JSR 239 Este pacote de vinculação Java oferece suporte à plataforma Java ME.

Existem várias ligações OpenGL em Java. Eles são discutidos abaixo

GL4java

É conhecido como OpenGL para tecnologia Java. Ele contém links para OpenGL 1.3 e para quase todas as extensões de fornecedores. Além disso, ele pode ser usado com o Abstract Window Toolkit (AWT) e Swings. É uma ligação OpenGL focada em jogos, que é uma janela única que exibe aplicativos em tela inteira.

LWJGL

  • Biblioteca de jogos Java leve (LWJGL), usa OpenGL 1.5 e funciona com a versão mais recente do java.

  • Ele pode usar os recursos de tela inteira do JSE 1.4. Tem suporte limitado para AWT / Swings.

  • É adequado para dispositivos leves, como telefones celulares, dispositivos incorporados, etc.

JOGL

  • JOGL se concentra apenas em renderização 2D e 3D. As interfaces que lidam com som e entrada-saída não estão incluídas no JOGL.

  • Inclui a Biblioteca de Utilitários Gráficos (GLU), o kit de ferramentas de Utilitários GL (GLUT) e sua própria API - Native Windowing Toolkit (NEWT).

Por que JOGL?

  • Ele fornece acesso total às APIs OpenGL (versão 1.0, 4.3, ES 1, ES 2 e ES 3), bem como a quase todas as extensões do fornecedor. Portanto, todos os recursos do OpenGL estão incluídos no JOGL.

  • O JOGL se integra ao AWT, Swing e Standard Widget Toolkit (SWT). Ele também inclui seu próprio Native Windowing Toolkit (NEWT). Portanto, ele fornece suporte completo para janelamento.

História da JOGL

  • 1992 - Silicon Graphics Inc. lançou a primeira especificação OpenGL.

  • 2003 - O site Java.net foi lançado com novos recursos e o JOGL foi publicado pela primeira vez no mesmo site.

  • 2010 - Desde o ano de 2010, é um projeto independente de código aberto sob a licença BSD, que é uma licença liberal para software de computador.