透明なテクスチャを透明にするために、次のように OpenGL を初期化します。
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
私はこのようにテクスチャを描きます:
glPushMatrix();
//translate
//neutralize colors
//bind texture
//vertex points
glPopMatrix();
しかし、直後にクワッドを描画しようとすると、表示されません:
glPushMatrix();
{
glTranslatef(x, y, 0);
glColor3f(1f, 0f, 0f);
glBegin(GL_QUADS);
{
glVertex2f(0, 0);
glVertex2f(10, 0);
glVertex2f(10, 10);
glVertex2f(0, 10);
}
glEnd();
}
glPopMatrix();
上記の初期化を削除すると、クワッドが表示されますが、テクスチャは透明ではなくなります。
ここで何が間違っていますか?
編集:glDisable(GL_BLEND);
テクスチャではないものを描画したいときはいつでも呼び出す必要がありますか?