私のテクスチャ自体は透明な背景を持っているので、そのままレンダリングしたいと思います。
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glPushMatrix();
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glTranslatef(x, y, 0.0f);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glVertexPointer(2, GL_FLOAT, 0, undoVertCoord);
glTexCoordPointer(2, GL_FLOAT, 0, undoTexCoord);
glBindTexture(GL_TEXTURE_2D, texUndo);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
問題はglColor4f
. その関数は、テクスチャの透明度を上書きするようで、透明であるべき部分を不透明にします。しかし、アルファ値 0 で glColor4f をフィードすると、テクスチャ全体が透明になります。
SO、テクスチャをそのままレンダリングして、glColor4f を無視するテクスチャをレンダリングできますか? または、アルファ値に影響を与えない方法で?