【问题标题】:OpenGL ES - Rendering a particle effect with additive blending (FBO)OpenGL ES - 使用加法混合 (FBO) 渲染粒子效果
【发布时间】:2012-08-27 23:41:03
【问题描述】:

如何在背景图像上正确渲染粒子效果,其中粒子是相加混合的?

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

一些额外的限制:

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

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

如果 FBO 是解决混合问题的唯一方法,我是否应该使用 8 个纹理(具有屏幕尺寸),并将每一层单独渲染到 FBO,然后将 8 个纹理渲染到窗口帧缓冲区?这似乎太消耗内存了。使用单个纹理将需要 16 个 FBO 开关...

有什么建议吗?

【问题讨论】:

    标签: opengl-es-2.0


    【解决方案1】:

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

    这仅在您的粒子不需要部分透明度时才有效。

    【讨论】:

    • 我明白你的意思,它可能有效。没有部分透明度是什么意思?会发生什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 2015-03-30
    相关资源
    最近更新 更多