Android開発で、ちょっとキャッチーでレスポンスもよいUIを作ろうと思うと、OpenGL ESの利用は最重要検討事項となります。
OpenGLは、ステートマシン型のアーキテクチャーになっていますが、多くのステートには「デフォルト値」がないようで、設定必須の項目がいくつかあります。
私も新しいプログラムを書くたびにうまく描画されなくてしばし悩みます。
ということで、最低限必要と思われる項目をメモっておきます。
(GL10対応です)
ビューポートの設定
- glViewport() : スクリーンのうち、描画に使われる範囲を、ピクセルで指定する
射影行列の設定
- GLU.gluPerspective(), GLU.gluOrtho2D()など
- 必要に応じて glMatrixMode(GL10.GL_PROJECTION), glLoadIdentity() を先に呼び出す
頂点配列/インデックス配列利用の設定
- glEnableClientState(GL10.GL_VERTEX_ARRAY) : OpenGL ESでは頂点配列が必須なので、この設定は必須
描画
- glClearColor() : カラーバッファ消去時に塗りつぶしに使う色をセットする
- glClear() : カラーバッファ or/and デプスバッファを消去する
- glVertexArray() : 頂点配列をセットする
- glDrawArrays() : セット済みの頂点配列で、線分/三角形を描画する
- glDrawElements() : セット済みの頂点配列と、インデックス配列を使って、線分/三角形を描画する