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.