OpenGLES2.0を使った三角形ポリゴンの描画
- 2019年8月07日
- Kotlin
OpenGLES2.0を使い、簡単な頂点シェーダとピクセルシェーダを使って三角形をAndroid上で描画するアプリを作成しました。

メインアクティビティです。
描画先であるGLSurfaceViewの作成と、カスタムレンダーの登録を行い、
コンテントビューに作成した GLSurfaceViewを設定しています。
カメラ用の行列 を作成し、0.5秒間隔で15度ずつカメラが回転するようにループを回しています。

描画する三角形クラスです、
頂点データ、シェーダコードはKotlinコードに直書きです。
頂点シェーダでは渡された各頂点座標と行列を掛け合わせ最終的な
描画座標を計算しています。
色情報は加工せずにピクセルシェーダに渡しています。
ピクセルシェーダでは頂点シェーダから渡された頂点色を
そのまま使っています。



描画用に GLSurfaceView.Rendererを継承したクラスを作成
このクラスが三角形クラスのDrawを呼び画面に描画します。
onSurfaceCreatedで三角形クラスのインスタンスを作成。
onSurfaceChangedでサーフェイスビューの幅、高さを元に
射影行列を作成しています。
onDrawFrameではバッファを不透明白色でクリアし、
三角形を描画しています。

MatrixManagerクラスはカメラ(ビュー行列、射影行列)管理用のクラスです。

水曜担当:Tanaka
tanaka at 2019年08月07日 10:00:54