GlColor4f()-Alpha值的效果

j5fpnvbx  于 2022-10-18  发布在  其他
关注(0)|答案(2)|浏览(99)

我正在使用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);

有什么建议指出我可能会出错的地方吗?

eqzww0vc

eqzww0vc1#

如果要使用透明度,则需要启用混合:
glEnable(GL_BLEND)
另请参见glBlendFunc以设置混合功能。

l0oc07j2

l0oc07j22#

现有的答案和下面的评论都非常有帮助!你唯一应该知道的是顺序很重要
首先,指定混合功能,然后启用该功能。

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND)

相关问题