OpenGL ES - 使用添加剂混合(FBO)渲染粒子效果

时间:2012-08-27 15:02:12

标签: opengl-es-2.0

如何在背景图像上正确渲染粒子效果,这些粒子效果具有相加混合的粒子?

问题是粒子也与背景混合在一起,我该如何避免? (即将它们相互混合,但不与背景混合)

一些额外的限制:

我正在进行的游戏分为8层,如下所示:

  1. 背景#1(视差滚动)
  2. 背景#2(视差滚动)
  3. 背景#3(视差滚动)
  4. 粒子效果图层#1
  5. 游戏对象
  6. 粒子效果层#2
  7. UI
  8. 粒子效果层#3
  9. 如果FBO是解决混合问题的唯一方法,我应该使用8个纹理(具有屏幕尺寸),并将每个图层分别渲染到FBO,然后将8个纹理渲染到窗口框架缓冲区吗?这看起来太消耗了。使用单个纹理将需要16个FBO开关......

    任何提示?

1 个答案:

答案 0 :(得分:0)

你能先用黑色的清晰颜色绘制所有的粒子,然后在它们后面绘制你的“背景”吗?您可以使用深度缓冲区将背景放置在粒子后面。

这只有在您的粒子不需要部分透明度的情况下才有效。