OpenGLとC++を使用してアプリを作成しています。
ノベルゲームのように、
「 テキストを描画 → 消去して次のテキストを描画 」
という処理を、一つのテクスチャに文字の画像を貼り付けて行おうとしているのですが、
glTexImage2D()で、一度コピーした画像の消去がうまくいかず詰まっています。
大まかな処理の流れは以下の通りです。
(テキストデータの読み込み部分などは省略しています)
//テクスチャの生成 glGenTextures( 1, &texture_id ); //バインド glBindTexture( GL_TEXTURE_2D, texture_id ); //1回目の画像データをコピー glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, X, Y, 0, GL_RGBA, GL_UNSIGNED_BYTE, &pixel); 1回目の描画 //貼り付けた画像を削除 glTexSubImage2D(GL_TEXTURE_2D, 0, GL_RGBA, X, Y, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr); //2回目の画像データをコピー glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, X, Y, 0, GL_RGBA, GL_UNSIGNED_BYTE, &pixel); 2回目の描画をするが、1回目の画像データが残っている
試したこと
削除部分は、glTexSubImage2Dを使用せず、
以下のようにglTexImage2Dを使用して再生成してみる方法も試してみましたが、
消去はされるものの、3回目以降の文字列の描画でノイズが発生し、結局上手くいきませんでした。
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, X, Y, 0, GL_RGBA, GL_UNSIGNED_BYTE, null);
何か手順を踏むのか、
そもそも画像データ消去の方法が間違っているのか、
ご教授お願い致します。
補足情報
動作環境は、
Windows10 64ビット
OpenGLのライブラリは、
GLFW、GLEW、文字描画用にFreeTypeを使用しています。
あなたの回答
tips
プレビュー