我像这样初始化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);
每当我想绘制不是纹理的东西时,我应该打电话吗?