【コラム】
前回はJavaでOpenGLを利用するためのAPIであるJOGL(JSR 231: Java Binding for the OpenGL®API)とその実装について紹介した。今回はこれを利用して実際に3Dプログラムを作ってみたいが、その前に、NetBeansでのOpenGLプログラミングをサポートする「NetBeans OpenGL Pack」というプラグインを紹介しておきたい。
NetBeans OpenGL PackはNetBeans 6.0以上のバージョンにしか対応していないが、JOGLを用いたOpenGLプログラミングをサポートするさまざまな機能を提供してくれる。提供されるのはたとえばJOGLアプリケーションのためのプロジェクトテンプレートやビューア、Matisseに対するJOGLのGUIコンポーネントのインテグレーションなどだ。またJOGLのデモやドキュメント、GLSL (OpenGL Shading Language)のためのShaderエディタなども用意されている。
NetBeans OpenGL Packはアップデートセンターを利用してインストールできる。まずこのリンクより「net-java-nboglpack-updatecenter.nbm」をダウンロードし、NetBeansを起動してプラグイン・マネージャの[ダウンロード済み]タグよりインストールを実行する (図1)。
続いて[設定]タブに移動し、図2のように[NetBeans OpenGL Pack Update Center]にチェックを入れた上で、[インスト-ル済み]タグに移動して[カタログの再読み込み]ボタンをクリックする。
すると[使用可能なプラグイン]タグのページに図3のようにNetBeans OpenGL Packに含まれるプラグインの一覧が表示されるので、全てにチェックを入れてインスト-ルを実行する。
最後にNetBeansを再起動すれば、JOGLプログラミングのための機能が有効になるはずだ。
NetBeans OpenGL Packを利用すると、プロジェクトマネージャによってJOGLアプリケーションのためのプロジェクトを作成することができる。同時に、JOGLを利用したプログラムの雛型クラスを生成してくれる。この雛型のクラスにはJOGLを使う上で最低限必要なコードが記述されており、これをベースにすれば比較的OpenGLプログラミングにも入り込みやすいと思う。
JOGLプロジェクトを作成するには、プロジェクトエクスプローラ上で右クリックして[新規プロジェクト]を選択し、プロジェクトマネージャで[OpenGL]→[Simle JOGL Application]を選択する (図4)。そして次の画面で図5のようにプロジェクト名とパッケージ名、ターゲットとなるプラットフォームを指定する。
プロジェクトが作成されると、指定したパッケージの下にプロジェクト名と同名のJavaクラス(本稿の例ではJoglSample.java)がひとつ生成されているはずだ (リスト1)。これがJOGLプログラムのための雛型になる。まずはこのコードからJOGLプログラムの一連の流れを解説する。
JoglSampleクラスはjavax.media.opengl.GLEventListenerというインタフェースをひとつ実装している。JOGLのプログラムはイベントドリブンで動作し、GLEventListenerが各イベントを受け取るリスナーになっている。このリスナーインタフェースには以下の4つのメソッドが定義されており、プログラミングの際にはこれらを独自に実装すればよい。
package apisample;
import com.sun.opengl.util.Animator;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;
public class JoglSample implements GLEventListener {
public static void main(String[] args) { ... }
public void init(GLAutoDrawable drawable) { ... }
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { ... }
public void display(GLAutoDrawable drawable) { ... }
public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { ... }
}
さて、だいぶ前置きが長くなってしまったが、次回はこの雛型として生成されたクラスを元にJOGLプログラムの中身を追ってみようと思う。
提供:マイナビ
大学・大学院・短大・専門学生向けの就職情報サイト「マイナビ2010」「マイナビ2009」に今すぐ登録しよう! 大手企業からベンチャー企業までの約13,000社の企業情報を公開、エントリーが可能です。2010年卒予定の方は「マイナビ2010」に、2009年卒予定の方は「マイナビ2009」に登録してください。
毎日コミュニケーションズはプライバシーマークを取得しています。
| JSR 231: Java Binding for the OpenGL API |
| JOGL API Project |
| OpenGL - The Industry's Foundation for High Performance Graphics |
| OpenGL & OpenGL Utility Specifications |
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
渡部篤郎主演でドラマ化!地元新聞社が伝え続けた東日本大震災の物語 [00:08 2/11] キャリア |
|
沖縄発ヒーロー革命!「琉神マブヤー」が海を越えハワイを目指す! [00:08 2/11] キャリア |
|
中国四川省、パンダの保護と生態研究の最新情報とは? [00:08 2/11] キャリア |
|
日本の影響でオタク文化が発達!? 設楽統と杉崎美香がシンガポールのエンタメを探る! [00:07 2/11] キャリア |
|
西武と巨人、心配なキャンプの始まりや 【エモやんのワイルドピッチ】 [00:06 2/11] キャリア |