在OpenGL中为了获得适当的透明效果,我应该使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
但是使用该混合函数时,glClearColor
中的alpha参数变得毫无意义。当我更改glClearColor
中的alpha参数时,我仍然会得到相同的效果。我什么时候可以在glClearColor
中使用alpha参数?我可以达到什么样的效果?
答案 0 :(得分:9)
glClearColor
设置RGBA帧缓冲区的颜色(和alpha值)将被glClear(GL_COLOR_BUFFER_BIT)
清除。帧缓冲区alpha值将与GL_DST_ALPHA
或GL_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通道的纹理感兴趣。