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

Opengl es 2.0 OpenGL ES-使用添加混合(FBO)渲染粒子效果,opengl-es-2.0,Opengl Es 2.0,如何正确渲染粒子效果,即在背景图像上添加混合的粒子 问题是粒子也与背景混合,如何避免这种情况?(即,将它们相互混合,但不混合到背景中) 一些额外的限制: 我正在制作的游戏分8层渲染,如下所示: 背景#1(视差滚动) 背景#2(视差滚动) 背景#3(视差滚动) 粒子效果层#1 游戏物品 粒子效果层#2 用户界面 粒子效果层#3 如果FBO是解决混合问题的唯一方法,我是否应该使用8个纹理(具有屏幕尺寸),并将每个层分别渲染到FBO,然后将8个纹理渲染到窗口帧缓冲区?这似乎太消耗内存了。使用单个纹理将

如何正确渲染粒子效果,即在背景图像上添加混合的粒子

问题是粒子也与背景混合,如何避免这种情况?(即,将它们相互混合,但不混合到背景中)

一些额外的限制:

我正在制作的游戏分8层渲染,如下所示:

  • 背景#1(视差滚动)
  • 背景#2(视差滚动)
  • 背景#3(视差滚动)
  • 粒子效果层#1
  • 游戏物品
  • 粒子效果层#2
  • 用户界面
  • 粒子效果层#3
  • 如果FBO是解决混合问题的唯一方法,我是否应该使用8个纹理(具有屏幕尺寸),并将每个层分别渲染到FBO,然后将8个纹理渲染到窗口帧缓冲区?这似乎太消耗内存了。使用单个纹理将需要16个FBO开关


    有什么提示吗?

    你能先用黑色的透明色画出所有的粒子,然后在它们后面画出你的“背景”吗?可以使用深度缓冲区将背景放置在粒子后面


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

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