glBlendFunc和glClearColor alpha参数

时间:2012-06-26 15:21:28

标签: opengl glsl opengl-4

在OpenGL中为了获得适当的透明效果,我应该使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)但是使用该混合函数时,glClearColor中的alpha参数变得毫无意义。当我更改glClearColor中的alpha参数时,我仍然会得到相同的效果。我什么时候可以在glClearColor中使用alpha参数?我可以达到什么样的效果?

1 个答案:

答案 0 :(得分:9)

glClearColor设置RGBA帧缓冲区的颜色(和alpha值)将被glClear(GL_COLOR_BUFFER_BIT)清除。帧缓冲区alpha值将与GL_DST_ALPHAGL_ONE_MINUS_DST_ALPHA混合函数一起考虑。

但是,您的常规屏幕窗口帧缓冲区通常不带alpha值。 Notable exceptions exist of course, for example transparent windows with the background shining through, but they're a bit tedious to set up, and will still receive all mouse events, even if over "transparent" areas.

具有Alpha通道的帧缓冲区主要是感兴趣的渲染到纹理目标。

所以在你的情况下,清晰的颜色对你没有特别的兴趣。您更有可能对glColor4f的第4个参数或带有Alpha通道的纹理感兴趣。