我正在使用glColor4f()。令人惊讶的是,更改Alpha(即第四个参数)不会导致透明度发生任何变化。代码段是:
const GLfloat squareVertices[] = {
0.5, 0.5, 0.0,
-0.5, 0.5, 0.0,
0.5, -0.5, 0.0,
-0.5, -0.5, 0.0};
glEnableClientState (GL_VERTEX_ARRAY);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor4f (1.0, 0.0, 0.0, 0.5);
glLoadIdentity ();
glTranslatef(0, 0, -5);
glVertexPointer(3, GL_FLOAT, 0, squareVertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
有任何指向我可能会出错的地方的指针吗?
最佳答案
如果要使用透明度,则需要启用混合:glEnable(GL_BLEND)
;
另请参见glBlendFunc来设置混合功能。
关于c - glColor4f()-alpha值的效果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10182114/