学習の順序

僕の OpenGL の最終的なターゲットは OpenGL ES なので、一気に OpenGL ES を勉強したいところだけど、Java を勉強するのに Java ME から始めるのは、開発効率という点で結構つらいものがあり、OpenGL に関しても同じことが言える。

幸いなことに ARM が OpenGL ES 2.0 Emulator を配布しており(ダウンロードするには ARM に登録する必要がある)、PC 上だけで確認まで行えるんだけど、エミュレータで開発するのはしんどい、というのを身をもって知っているので、学習の順序を一段階ずつにすることにする。

GLUT

まずは PC 上で OpenGL(というより 3D)の基礎をきっちり押えなければならない。

PC 上で OpenGL をいじくるには GLUT を使うとかなり楽なので、GLUT を学習する。

OpenGL

実際には JavaOpenGL、なので JSR-239(Java Binding for OpenGL ES)を使用したいんだけど、ここはきっちり C の OpenGL を触っておくべき。

JOGL

OpenGL に慣れてきたら Java で開発したくなりそうだけど、JOGL と JSR-239 は結構相違が激しい感じなので、どういう風に違うかというと:

JOGL を学習するのはは寄り道っぽい。Java3D はまさに寄り道。

PC 向けで JavaOpenGL を使いたければ、JOGL は最適解のような気がするんだけどね。

その先

その先はまだ考えてない。
Android はネイティブライブラリを簡単にアプリに組み込めるし、iPhone なんかも視野に入れると、実は JSR-239 を使うよりも C でガッツリ作って、Android 向けには独自の JNI 層を用意する方が良いのかも??

なんてことを今悩んでもしょうがないので、まずは GLUT の勉強から始めましょう。