OpenGL ES 2.0只在不同的对象上混合
问题描述:
我想知道是否有一种方法来混合单独在不同绘制调用中的对象。OpenGL ES 2.0只在不同的对象上混合
我有一个粒子系统,绘制许多点彼此接近,我不想添加他们的颜色值。不过,我确实希望将这些粒子与来自不同粒子系统绘制调用的其他粒子相加。我知道我可以使用帧缓冲区对象来实现这一点,但效果并不理想。
答
这不可能直接通过混合;在任何时间点GL唯一的状态就是当前片段和帧缓冲区的内容。您可以想象使用模具掩模(在绘图开始时清除模板,将粒子系统中的每个三角形设置为1,并且如果模板测试值已经为1,则模板将失败)。然而,大多数粒子需要某种程度的alpha透明度来淡出每个粒子的边缘,所以这可能不是你真正想要的...
实际上,如果需要一个粒子的“淡入淡出”区域重叠它背后的一个粒子的“明亮”部分,我不完全确定你可以在不将粒子系统中的所有粒子混合在一起的情况下做到这一点。
在我的情况下,我不使用淡出效果的粒子(他们只是变小),所以模具面具看起来像它会工作。谢谢!! – satm12