【コラム】

Java API、使ってますか?

45 JOGLで3Dプログラミング

    杉山貴章  [2008/03/31]

    JSR 231: Java Binding for the OpenGL API

    JSR 231: Java Binding for the OpenGL API(JOGL)は、3Dグラフィックライブラリ「OpenGL」を、Javaプログラムから扱えるようにするためのAPIである。その名の通り、OpenGLの各種グラフィック描画機能に関連付けられたJavaのクラス/インタフェースやメソッドを定義している。現在の最新版は昨年4月にメンテナンス仕様としてリリースされたバージョン1.1であり、これはOpenGLのバージョン2.1に対応している。また3月25日より次期メンテナンス仕様(バージョン1.1.1)のドラフトが公開され、4月28日にかけてレビューが行われている。

    JOGLにはjavax.media.openglとjavax.media.opengl.gluという2つのパッケージが用意されている。前者にはOpenGLのコア機能を利用するためのクラス/インタフェースが、後者には OpenGL Graphics System Utility(GLU)を利用するためのクラス/インタフェースが含まれている。

    JOGLにおけるOpenGLのAPIとJavaのAPIとのマッピング規則は比較的シンプルなので、OpenGLを使ったことのあるユーザならばJOGLも容易に使いこなすことができるだろう。具体的なマッピング規則としては以下のようなものがある。

    • OpenGL APIの関数名をJavaのメソッド名として引き継ぐ
    • 定数も同じ名前を引き継ぐ
    • データ型は対応する基本型として扱う
      • 8ビット整数型はbyte型、16ビットはshort型、32ビットはint型へ
      • 32ビット浮動小数点型はfloat型、64ビットはdouble型へ
      • GL_TRUE/GL_FALSEのみで区別される値はboolean型へ
    • ポインタ引数は対応するJava基本型の配列やNew I/OのBufferオブジェクトとして表現する
    • 関数引数をJavaの基本型配列にマップする場合は、配列本体とオフセットの2つの引数としてマップする
    • OpenGL APIで直接エラー値を返さないことを踏襲して、Javaでも原則として例外ではなくエラーコードの設定によってエラーを通知する

    OpenGL APIで提供される主な関数は、JOGLではjavax.media.opengl.GLインタフェースに定義されている。APIドキュメントの各メソッドの項目には対応するOpenGL APIの関数が記載されているのでそちらを参照してほしい。

    実行環境の構築

    JOGLの実装はjava.netのJOGLプロジェクトによって開発が進められている。プロジェクトサイトではAPI実装の他にデモプログラムなどが公開されている。対応プラットフォームはWindows(x86)、Linux(x86, AMD64)、Solaris(x86/AMD64/SPARC/SPARC-V9)、MacOS(x86/PPC)となっており、各プラットフォーム別にバイナリファイルが用意されている。その他、Web Start版も用意されている。

    配布ファイルはドキュメント&ファイルセクションから各バージョンのものがダウンロードできる。正式版である1.1.0の配布ページはここ、1.1.1 RC版の(現時点で最新の)配布ページはこことなっている。また、ここからは1.1.1のナイトリービルドがダウンロードできる。本稿では1.1.1 RC8のWindows版を利用することにする。

    まず、バイナリファイル(jogl-1.1.1-rc8-windows-i586.zip)をダウンロードしてインスト-ルしたい場所に展開する。libフォルダ以下に必要なJARファイルとDLLファイルが配置されている。

    JOGLを使用するには、まず環境変数CLASSPATHにjogl.jarとgluegen-rt.jarの2つを追加する。また、Windowsの場合は環境変数PATHにlibフォルダへのパスを追加しておく。LinuxまたはSolarisの場合は、PATHの代わりにLD_LIBRARY_PATHにlibディレクトリへのパスを追加する。また、MacOS Xの場合にはDYLD_LIBRARY_PATHに追加する。これでインスト-ルは完了だ。

    なおこれらのファイルをJREおよびJDKインスト-ルフォルダ以下に直接コピーして利用するのは推奨されていないので、必ず環境変数を設定して利用すること。

    デモプログラムの実行

    インスト-ルが完了したら、試しにデモプログラムを実行してみよう。JOGLのサイトからデモプログラムがまとめられたjogl-demos.zipをダウンロードして、任意の場所に展開する。中に含まれているjogl-demos.jarがデモプログラムの本体で、JOGLを利用したさまざまなデモが用意されている。

    このファイルをクラスパスに含めてプロンプト1のように実行してみよう。Gearsは歯車の回転する絵を描画するデモで、JOGLのインスト-ルに成功していれば図1のように表示されるはずだ。

    プロンプト1 デモプログラムGearsの実行

    > java -cp "%CLASSPATH%;jogl-demos.jar" demos.gears.Gears
    

    図1 Gearsの実行結果

    デモの中には追加ユーティリティが必要なものもある。その場合はプロンプト2のようにjogl-demos-util.jarファイルもクラスパスに含めればよい。TextCubeは文字つきの回転する立方体を描画するデモである (図2)。

    プロンプト2 デモプログラムTextCubeの実行

    > java -cp "%CLASSPATH%;jogl-demos.jar;jogl-demos-util.jar" demos.j2d.TextCube
    

    図2 TextCubeの実行結果

    次回は、JOGLを使った簡単なプログラムを作成してみようと思う。

    提供:マイナビ

    会員登録はこちら

    大学・大学院・短大・専門学生向けの就職情報サイト「マイナビ2010」「マイナビ2009」に今すぐ登録しよう!  大手企業からベンチャー企業までの約13,000社の企業情報を公開、エントリーが可能です。2010年卒予定の方は「マイナビ2010」に、2009年卒予定の方は「マイナビ2009」に登録してください。

    毎日コミュニケーションズはプライバシーマークを取得しています。

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン