OpenGL,如何积累alpha并使用glAlphaFunc进行alpha测试?

时间:2012-08-11 14:32:04

标签: opengl

glAlphaFunc(GL_GEQUAL, 0.5)可以显示alpha> = 0.5的图像。

可以opengl显示alpha的累积吗?

示例:

2张图像,它们不会单独显示某些部分,因为alpha< 0.5。

现在它们中的一些重叠,它们的alpha总和为0.6,如​​何显示这个重叠部分?

我尝试使用opengl创建一个metaball示例,如果您有任何想法,请给我一些提示。

非常感谢

1 个答案:

答案 0 :(得分:1)

我会将图像渲染到单独的缓冲区(关闭Alpha Test并添加其alpha)。然后,使用Alpha Test将缓冲区渲染到屏幕上。

  1. 首先,创建一个空缓冲区,并为每个像素将其alpha设置为0.
  2. 然后,使用颜色的混合函数并添加alpha来渲染所述缓冲区上的所有对象。
  3. 然后,在Alpha Test打开的情况下重新渲染屏幕上的buffen。
  4. 答案是“可以用opengl显示alpha的积累吗?” - 是的例如,您可以将alpha渲染为灰度。