2012-08-27 56 views
0

如何在背景图像顶部正确渲染粒子效果,其中粒子效果是添加混合的粒子?OpenGL ES - 使用添加剂混合渲染粒子效果(FBO)

问题是颗粒也与背景混合添加,我怎样才能避免这种情况? (即相加混合它们彼此但不与背景以及)

一些附加的限制:

我正在游戏中8层呈现如下:

  1. 背景#1(视差滚动)
  2. 背景#2(视差滚动)
  3. 背景#3(视差滚动)
  4. 粒效果层#1
  5. 游戏对象
  6. 粒子效果层#2
  7. UI
  8. 粒子效果层#3

如果FBO是去解决混合问题的唯一途径,我应该用8个纹理(使用屏幕尺寸),并将每个图层分别渲染到FBO,然后将8个纹理渲染到窗口帧缓冲区?这似乎太耗费记忆。使用单个纹理将需要16个FBO开关...

任何提示?

回答

0

你可以先将所有的粒子先用黑色的clearcolor绘制出来,然后在后面画出你的“背景”?您可以使用深度缓冲区将背景放置在粒子后面。

这只会在你的粒子没有部分透明度的情况下工作。

+0

我明白你的意思,它可能工作。没有部分透明度,你的意思是什么?会发生什么? – GetLastError