glColor4f() – alpha值的效果

我正在使用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以设置混合function。