JOGL - 概述


本章介绍 OpenGL、它的功能、java 中的 OpenGL 绑定(GL4java、LWJGL、JOGL)以及 JOGL 相对于其他 OpenGL 绑定的优点。

Java Binding for O pen GL (JOGL) 是 Java 中 OpenGL 图形 API 的最新绑定。它是一个包装库,可以访问 OpenGL API,旨在创建用 Java 编码的 2D 和 3D 图形应用程序。JOGL 是一个开源库,最初由前麻省理工学院研究生 Ken Russell 和 Chris Kline 开发。后来,它被 Sun Microsystems 的游戏组采用,现在由 Java on Graphics Audio andprocessing (JOGAMP) 维护。JOGL 可在各种操作系统上运行,例如 Windows、Solaris、Mac OS X 和 Linux(在 x86 上)。

什么是OpenGL?

OpenGL 代表开放图形库,它是创建 2D 和 3D 图形的命令的集合。通过 OpenGL,您可以使用非常基本的图元(例如点、线、多边形、位图和图像)创建复杂的 3D 形状。

以下是 OpenGL 的一些功能 -

  • 它可以在多个平台上运行。

  • 它具有多种语言的绑定,例如 C++、Python 等

  • 它可以渲染 2D 和 3D 矢量图形。

  • 它与图形处理单元 (GPU) 交互,以实现快速、高质量的渲染。渲染是从 2D 或 3D 模型创建图像的过程。

  • 它是用于编写 3D 图形应用程序的行业标准 API。例如,游戏、屏保等。

  • 它包含大约 150 个命令,程序员可以使用这些命令来指定对象和操作来开发应用程序。

  • 它包含 OpenGL 实用程序库 (GLU),提供各种建模功能,例如二次曲面和 NURBS 曲线。GLU 是 OpenGL 的标准组件。

  • OpenGL的设计注重效率、效果以及使用多种语言在多个平台上的实现。为了保持 OpenGL API 的简单性,不包括窗口任务。

因此,OpenGL 依赖于其他编程语言来执行窗口任务。

OpenGL API 的 Java 绑定

它是 Java 规范请求 (JSR) API 规范,允许在 Java 平台上使用 OpenGL。

规格 细节
JSR 231 该Java绑定包支持Java SE平台。
JSR 239 该Java绑定包支持Java ME平台。

Java 中有多种 OpenGL 绑定。下面讨论它们

GL4java

它被称为 OpenGL for Java 技术。它具有到 OpenGL 1.3 和几乎所有供应商扩展的链接。此外,它还可以与 Abstract Window Toolkit (AWT) 和 Swings 一起使用。它是一个以游戏为中心的 OpenGL 绑定,是一个显示全屏应用程序的单一窗口。

陆万金GL

  • 轻量级 Java 游戏库 (LWJGL),使用 OpenGL 1.5 并适用于最新版本的 java。

  • 它可以使用 JSE 1.4 的全屏功能。它对 AWT/Swings 的支持有限。

  • 适用于手机、嵌入式设备等轻量级设备。

乔格鲁

  • JOGL 仅专注于 2D 和 3D 渲染。JOGL 中不包含处理声音和输入输出的接口。

  • 它包括图形实用程序库 (GLU)、GL 实用工具包 (GLUT) 以及它自己的 API - 本机窗口工具包 (NEWT)。

为什么选择JOGL?

  • 它提供对 OpenGL API(版本 1.0、4.3、ES 1、ES 2 和 ES 3)以及几乎所有供应商扩展的完全访问。因此,OpenGL 中的所有功能都包含在 JOGL 中。

  • JOGL 与 AWT、Swing 和标准窗口小部件工具包 (SWT) 集成。它还包括自己的本机窗口工具包(NEWT)。因此,它提供了对窗口的完整支持。

JOGL的历史

  • 1992 – Silicon Graphics Inc. 发布了第一个 OpenGL 规范。

  • 2003 年 - Java.net 网站推出了新功能,并且 JOGL 首次在同一网站上发布。

  • 2010 - 自2010年以来,它一直是BSD许可证下的独立开源项目,BSD许可证是计算机软件的自由许可证。