スプライト(Sprite)
SAMPLE
https://www.dropbox.com/s/e7vnlwbg6nez3dn/sprite.exe( スプライト )
https://www.dropbox.com/s/7d38qnasjpvbqy0/particle.exe( 加算処理のスプライト )
https://www.dropbox.com/s/n1ixus41j82gqjf/action_1.exe( . )
POINT
再利用性を高めるためにクラスにまとめること
App::onDraw() {
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
// 3Dシーンの描画
draw3D();
// デプステストを無効にする。
glDisable( GL_DEPTH_TEST );
// テクスチャの透明色の部分を透過させるためブレンディングを有効にする
glEnable( GL_BLEND );
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
// 2Dを描画するための変換行列を設定する
// 画面サイズと同じ大きさの等角投影を設定しておくと、スプライト位置の指定が簡単になる。
// 奥行きは適当。
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho( 0, W, 0, H, 0, 1 );
// モデルビュー変換は不要
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
// スプライトテクスチャを描画して FPS を描画
glEnable( GL_TEXTURE_2D );
glBindTexture( GL_TEXTURE_2D, id );
}
スプライトを利用したGUIボタン
SAMPLE
https://www.dropbox.com/s/zkc3yiuwed4lt5l/gui.exe( GUIボタン )