JOGL - 概述

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

Java binding for OpenGL (JOGL) 是 Java 中 OpenGL 图形 API 的最新绑定。它是一个包装器库,可以访问 OpenGL API,旨在创建用 Java 编码的 2D 和 3D 图形应用程序。JOGL 是一个开源库,最初由麻省理工学院研究生 Ken Russell 和 Chris Kline 开发。后来,它被 Sun Microsystems 的游戏组采用,现在由 Java on Graphics Audio and Processing (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 平台。

有各种 OpenGL 绑定Java。它们将在下文讨论

GL4java

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

LWJGL

  • 轻量级 Java 游戏库 (LWJGL),使用 OpenGL 1.5 并与最新版本的 Java 配合使用。

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

  • 它适用于轻量级设备,例如移动电话、嵌入式设备等。

JOGL

  • 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 许可证是计算机软件的自由许可证。