Java OpenGL (JOGL) はJavaプラットフォーム上でOpenGLを使った3DCGソフトウェアを作成するための、オープンソースライブラリである。

JOGLではC言語で使えるOpenGLのほぼ全ての機能をJNIによりJavaで直接使えるようにしている。JNIのソースコードは同開発元のライブラリGlueGenによって自動的に生成されていて、C言語と大差ない感覚で使えるが、Java 3DなどのJavaライブラリほどローレベルなAPIを隠さず、オブジェクト指向に沿った構造ではない。そのため、低オーバヘッドによる高速な実行が期待できるほか、C言語のコードをほぼそのままJavaへ移行できるが、代わりにソースコードは単調で長くなる傾向にある。 JOGLにはOpenGLのAPIの他に、既存のGUIライブラリ (AWT/Swing/SWT) でOpenGLによってレンダーされた画像を表示させるためのクラスや、単体でOpenGLウインドウを表示するためのクラス (NEWT) なども含まれている。

元々はJSR-231のリファレンス実装としてKenneth Bradley RussellとChristopher John Kline、そしてのちにサン・マイクロシステムズによって開発された。だがOpenGLのバージョンアップに伴うAPIの変化に、OpenGL 1.xのみに対応しているJSR-231とオラクルのJDKのバイナリコードライセンスによって規格以上の機能は足せない都合上、JOGL 2.0よりほぼ同一ながら標準規格に沿わない独自のAPIを有している。またその関係でパッケージの名前空間もバージョン2.3.0よりjavax.media.openglから完全に移行している。

開発状況

2015年8月現在、JOGLはデスクトップ向けOpenGLバージョン1.0 - 4.5、モバイル向けESバージョン1.0 - 3.1、そしてEGLバージョン1.0 - 1.5に対応している。またほぼ全ての機能拡張も使える。 JOGLバージョン2.4.0ではOpenGLの後継APIであるVulkanへ対応予定。

関連項目

  • OpenGL
  • Java 3D - バージョン1.6よりJOGLをバックエンドに使用、JOGLよりオブジェクト指向に沿ったAPIを提供
  • LWJGL - JOGLと類似する機能を有するJavaライブラリ
  • Scilab - 2D、3DのレンダリングにJOGLを使用する数値計算システム
  • RuneScape - JOGLを使ったMMORPG
  • JSR-231 - JOGL1.xの実装するJCPによって標準化された規格

外部リンク

  • 公式ウェブサイト
  • JOGL JavaDoc - APIのドキュメント
  • Setting up a JogAmp project in your favorite IDE - IDEでのJOGLセットアップ方法(英語)
  • JSR-231 Java Bindings for OpenGL - 仕様詳細ページ

First OpenGL Project

Opengl java 3d nanaxjr

eclipse Java OpenGL Syntax Stack Overflow

Opengl

Embed OpenGL inside Java AWT Canvas CodeProject