我初始化像這樣的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