Android OpenGL ES(十二):段階小結

1509 ワード

OpenGL ESとは何か,OpenGL ESパイプの概念,EGLとは何か,AndroidにおけるOpenGL ESの開発パッケージ,GLSurfaceView,OpenGL ESがサポートする基本幾何学的図形:点,線,面,これらの基本幾何学を用いて複雑なイメージ(20面体)を構成する方法について述べた.
Android OpenGL ES(一):OpenGL ESについて
Android OpenGL ES(二):OpenGL ESパイプ(Pipeline)
Android OpenGL ES(三):OpenGL ES API命名習慣
Android OpenGL ES(四):EGLについて
Android OpenGL ES(五):GLSurfaceView
Android OpenGL ES(六):インスタンスアプリケーションOpenGLDemosプログラムフレームワークの作成
Android OpenGL ES(七):基本ジオメトリ定義
Android OpenGL ES(八):描画ポイントPoint
Android OpenGL ES(九):線分Line Segmentを描画する
Android OpenGL ES(十):三角形Triangleを描く
Android OpenGL ES(十一):20面体を描く
しかし、これまでは2 Dグラフィックを描くだけで、いくつかの重要な概念、3 D座標系、3 D座標変換を無視し、OpenGL ES Demoプログラムのフレームワークを紹介する際に、OpenGLRendererを作成してGLSurfaceViewを実現した.Renderインタフェース
public void onSurfaceChanged(GL10 gl, int width, int height) {
 // Sets the current view port to the new size.
 gl.glViewport(0, 0, width, height);
 // Select the projection matrix
 gl.glMatrixMode(GL10.GL_PROJECTION);
 // Reset the projection matrix
 gl.glLoadIdentity();
 // Calculate the aspect ratio of the window
 GLU.gluPerspective(gl, 45.0f,
 (float) width / (float) height,
 0.1f, 100.0f);
 // Select the modelview matrix
 gl.glMatrixMode(GL10.GL_MODELVIEW);
 // Reset the modelview matrix
 gl.glLoadIdentity();
 }
}

glViewport,glMatrixMode,gluPerspectiveおよび20面体時のglLoadIdentity,glTranslatef,glRotatefなどの方法の紹介は無視したが,これらはいずれも3 Dグラフィックのモデル構築方法に関し,OpenGLESの座標系と座標変換がどのように3 Dモデリングされているかを以下のいくつかの編で詳細に説明する.