Android上での 3DグラフィックスOpenGL プログラミング

Android-x86 を使ってパソコンで試せる
Android 上での
3D グラフィックス OpenGL
プログラミング
4章
第
大和 一洋
組み込み機器でも,見栄えのよい表示が欲しい場合は 3D グラフィックスが使われる.Android では 3D 表
示のために OpenGL が標準搭載されている.これを使って実際に 3D 表示を行ってみる.
また,実行環境として第 3 章で解説した Android-x86 を使用するため,パソコンを使って簡単に試せる.
(編集部)
たものです.
本稿では,OpenGL と OpenGL ES に共通の基本的な事
1.OpenGL とは
項を扱うので,以降,特に断りがない限りこれらをまとめ
● 3D グラフィックスの API 仕様 OpenGL
て OpenGL と表記します.
OpenGL(Open Graphics Library)は,3D グラフィック
● OpenGL を採用する利点
ス の た め の API 仕 様 で す. こ の 仕 様 は 標 準 化 団 体
OpenGL は,次のような処理を行う API を提供します.
(1)
KHRONOS
によって策定されており,団体名の「Open」
これらにより,比較的複雑な 3 次元物体の描画やリアルタ
の名のとおりオープンな仕様として公開されているため,
イム・アニメーションを実現できます.
Windows,Mac OS X,Linux などのパソコン用 OS をは
・オブジェクトの 3 次元空間で平行移動や回転
じめ,Android や iOS などモバイル端末向け OS でも利用
・アルファ・チャネルを使った透過処理
できます.また最近では,Web ブラウザ上でも使用でき
・照明による立体感の表現
るようになりつつあります.
・テクスチャ(静止画)の貼り付けによる質感表現
Android で利用できるのは,厳密には,OpenGL の組み
・視点の移動や視野角の設定
込み機器用のサブセットである OpenGL ES という API で
・ワイヤ・フレームでの表示
す.OpenGL から組み込み機器では使用しないような複雑
3D グラフィックスの API には,Windows 用の DirectX
な処理を行う API や,ほかで代用できる API が削除され
などもありますが,筆者は,以下の 2 点が OpenGL の特に
有用な特徴だと考えます.
(1)さ まざまなプラットホーム(OS)上で同じ API を利用
Windows版OpenGL
アプリケーション
できる.
複数のプラットホームで動作させることが前提のアプリ
glColor4f()など
ケーションを作成する方には非常に有益でしょう.また,
プラットホームごとに新しい技術を学習するコストも削減
できます.OpenGL そのものは共通ですが,OpenGL を使
OpenGL
うためのウィンドウの作成やイベント処理などはプラット
ホームによって異なります.それぞれの OS の標準的な方
Android版OpenGL
アプリケーション
iPhone版OpenGL
アプリケーション
onSurfaceCreated()など
図 1 さまざまなプラットホームにおける OpenGL
58
KEYWORD
3D グラフィックス,OpenGL,KHRONOS
法に従ってプログラミングすることになります(図 1)
.
また,本稿で説明する Android での OpenGL プログラミ
ングには Java を用います.ほかのプラットホームでは,C
Nov. 2011