累积alpha混合

时间:2011-01-15 08:42:25

标签: android opengl-es

有谁知道glBlendFunc用什么设置来实现累积混合?

例如:

  1. 50%alpha + 50%alpha = 50%alpha
  2. 50%alpha + 40%alpha = 50%alpha
  3. 50%alpha + 60%alpha = 60%alpha
  4. 我尝试做的是渲染多个形状,所有颜色相同但具有不同的alpha值。有些形状会重叠。我希望每个结果像素相当于只用最大的alpha值渲染一次。

    我需要使用vanilla GL10,因此没有最小/最大等式的东西可用。

    我正在开发一些hotch-potch替代解决方案,一个使用深度,另一个使用多次渲染,但我有一种直觉,那是一种我没有看到的更简洁的方式。

1 个答案:

答案 0 :(得分:0)

如果您使用OpenGL 1.1。实现时,可以使用累积缓冲区。

累积缓冲区累积不同的渲染过程,允许您表示每个像素颜色。实际上,如果您绘制不同的形状,重叠区域将累积重叠形状的颜色值。

修复了渲染阶段的数量(比如 N ), M 形状所拥有的像素将具有RGB * M / N的颜色;据我所知,这就是你想得到的。

有关详细信息,请参阅glAccum手册。