glBlendFunc and glClearColor alpha parameter



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

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

但是,常规的屏幕窗口帧缓冲通常不带有 alpha 值。当然,也存在值得注意的例外,例如背景闪耀的透明窗口,但它们的设置有点乏味,并且仍然会收到所有鼠标事件,即使在"透明"区域上也是如此。

具有 Alpha 通道的帧缓冲器最受关注,它们会渲染到纹理目标。

因此,在您的情况下,透明颜色对您没有特别的兴趣。您更有可能对具有 alpha 通道的glColor4f或纹理的第 4 个参数感兴趣。

不透明度是 Alpha,而不是透明度 这意味着当它为 0 时,您根本看不到它。当它是 1 时,您可以完全看到它。如果它是 0.5f,您可以在半功率下看到它。

相关内容

  • 没有找到相关文章