[レビュー] iPhoneでOpenGLやるなら…

2008 BLOG

久しぶりに技術ネタ。

最近は、OpenGL ESをつかったグラフィックをやってました。NDAの関係で制作したアプリケーションを紹介できないのが残念ですが、その課程で参考にした本を紹介します。

ご存知かとは思いますが、iPhoneではOpenGLから派生したモバイルデバイス用のOpenGL ES 1.x系のOpenGLが採用されています。 PCで使っていたOpenGL関数の中には使えないものがあったり、逆にOpenGL ES独自の拡張があったりするため、その差を知ることが非常に重要になります。

OpenGLの本はたくさんあるのですが、OpenGL ESの本ってなかなかないんですよね。あってもOpenGL ES 2.0用だったり。1.0と2.0は下位互換ではないので、2.0ようの本はあまり役に立ちません。いろいろと漁ってようやく見つけたのがこの本。


“Mobile 3D Graphics: With OpenGL ES and M3G (Morgan Kaufmann Series in Computer Graphics)” (Kari Pulli, Tomi Aarnio, Ville Miettinen, Jani Vaarala)

前半は、3Dグラフィックスの基礎から入ります。3次元空間の2次元平面への射影を、基本的な線形代数を使って解説します。そのあとで、レンダリング、ラスタライズといった3Dグラフィックスの基本的な流れや、ライティング、テクスチャなどはもちろん、アニメーションの基礎などのテクニックを解説します。それぞれのトピックが簡潔にまとまっているので、これから3Dグラフィックスのプログラミングを始めるという人にもとっつきやすいと思います。

3Dグラフィックスの教科書にありがちな数式と概念だけ示して終わりではなく、「これはOpenGLではこのようなAPIで実現してます。詳しくはこの後、○○ページで」という説明があるのが非常に実践的。

後半はお待ちかねのOpenGL ESの解説です。PC用のOpenGLとの違いに焦点を当てた記述が多いのが特徴です。メモリやプロセッシング能力の面でいろいろと制限の多いモバイルデバイスの実情を考えて、パフォーマンスの向上、メモリ消費の低減などの最適化に比較的多くのページを割いているの見逃せません。最後、JavaベースのAPI, M3Gが紹介されてます。他のケータイデバイス用に移植する際に使えるかも。

全体的に、文章もよみやすくターゲットを熟知した良書だと言えます。ただし、基礎的な考え方から最適化までをカバーしているため、一つ一つのトピックに関しての深みには欠ける感があります。OpenGLのバイブルともいうべき赤本で補足しながら、開発を進めるのがよいかと思います!

ご参考までに!!