我初始化像这样的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();
如果我删除上面的初始化,四ap梨,但我的纹理不再透明。
我在这里做错了什么?
编辑:我应该打电话glDisable(GL_BLEND);
每当我想画一些不是纹理?
如果您想禁用混合,您应该调用'glDisable(GL_BLEND)'。但是,'glColor3'隐式设置alpha值为1,所以不清楚为什么你的代码不起作用。你在做什么?也许你可以发布绘制纹理对象的代码。 – 2013-05-09 20:45:29