今回はOpenGLをはじめるに当たって、チップスとしては点在しているのだけど、
意味がなんとなくわからないものをまとめてみました。
※勉強しながらの部分です。間違っていたら申し訳ありません。
■毎描画の初期化
openGLで、毎フレームで描画を行うが、その度に新しい描画にする為、最初に全体を特定の色で描画するなどの対処が必要
gl.glClear(GL10._GL_COLOR_BUFFER_BIT);
で画面の全体を黒に塗る事ができる。
色を変更する場合は
//glColor(R,G,B,alpha); gl.glColor(0,0,1.0f,0); gl.glClear(GL10._GL_COLOR_BUFFER_BIT);
としてglColorを設定する事で任意の色で塗る事が可能
■描画用メソッド
OpenGLには、さまざまな形を表示するメソッドが存在。
GL_LINES:独立した線
GL_LINE_STRIP:連続した直線
GL_LINE_LOOP:最初と最後の点が結ばれた連続した線
GL_TRIANGLES:三角形を書く
(a,b,c,d,e,f,g,h,i);
のような配列に対して
(a,b,c)(d,e,f)(g,h,i)
のようなセットで三角形を作成
GL_TRIANGLE_STRIP:三角形を書く
(a,b,c,d,e,f,g,h,i);
のような配列に対して
(a,b,c)(b,c,d)(c,d,e)(d,e,f)(e,f,g)(f,g,h)(g,h,i);
のような三角形を作成(つながった三角形ができる。)
GL_TRIANGLE_FAN:三角形を書く
(a,b,c,d,e,f,g,h,i);
のような配列に対して
(a,b,c)(a,c,d)(a,d,e)(a,e,f)(a,f,g)(a,g,h)(a,h,i)
のような三角形を作成(つながった三角形ができる。)
GL_QUADS:四角形を書く
GL_QUADS_STRIP:四角形を書く
GL_POLYGON:多角形を書く。
上記で、図形がいろいろと描けるのだが、GL_QUADS、GL_POLYGONに関しては、内側の内角が180度を超える図形を描く事ができない。
また、動作の処理に関しても重い事があり、多くの場合はGL_TRIANGLESを利用して図形を描く。
■3D表示用の準備
3Dを扱う場合
glFrustrum:遠くのものは小さく、近くのものは大きく
glOrtho:遠近はない代わりに断面的な表示ができる。
glTranslatef(x,y):平行移動
glRotatef(x,y,z):回転
glScalef(x,y,z):スケールの変更
■3D表示を行う場合の質感について
Ambient:照らされ方
Diffuse:拡散光
Speculear:金属的な感じ
Shiniess:光の反射具合
Emission:発光
■テクスチャの使用の仕方。
step1.
Bitmapの用意
Bitmap bmp = ***;
step2.
テクスチャの準備
gl.glGemTextures(1,textureArray,0); gl.glBindTexture(GL10.GL_TEXTURE_2D,textureArray[0]); //textureArrayはintの配列。
step3.
テクスチャを適用
GLUtils.texImage2D(GL10.GL_TEXTURE_2D,0,bmp,0);
また、下記の設定もする事ができるようです。
GL_TEXTUREMIN_FILTER:テクスチャが縮小される場合
GL_TEXTURE_MAG_FILTER:テクスチャが拡大する場合
での表示の仕方を下記のどちらかに設定する。
GL_LINEER:色の変わり目を滑らかにする。
GL_NEAREST:色の変わり目をぱっつんとする。
上記のでは、少しわかりずらい部分ではありましたが、後ほど、理解が深まった時点でキャッチアップしてみたいと思います。