如何在iOS设备上优化粒子发射器渲染FPS(在openGL中)?

时间:2012-10-14 05:41:10

标签: ios opengl-es particles

我试过这些:

  1. 使粒子图像变小,现在使用8x8。我只是不知道如何让它变得更小,因为我需要一个褪色的圆圈。 4x4太小

  2. 降低粒子数,现在是40,但如果更低则太低。

  3. 我还有其他方法可以做得更好吗?

    我看到许多很酷的游戏(比如Bejewled Blitz)都有很好的效果,看起来他们使用非常流畅的图像/许多粒子。还有其他方法可以让FPS更好吗?

    感谢所有的赞美和回答!以下是一些更新:

    1. 我已经将 cocos2d-x OpenGL
    2. 一起使用
    3. 我目前使用名为 Particle Designer
    4. 的商业软件
    5. 我在iTouch 4上进行测试,而所有其他游戏都没有任何问题。我试图切换到其他设备,问题仍然存在。
    6. 目前的FPS是25-30,具有粒子效果,我肯定会感觉到它(有点滞后)。当屏幕上出现更多粒子效果时,情况会更糟(FPS只能为10)
    7. 我尝试了很多方法,发现粒子元素的形状是一个非常关键的瓶颈,但很难让它变小。

1 个答案:

答案 0 :(得分:0)

您可以做的第一件事就是开始使用一些支持优化粒子系统的游戏引擎。我对iOS的可用内容没有很好的概述,但必须有一些免费和开源的引擎。例如,Cocos2D有粒子。

但是如果选择自己做,那么通常减少绘制调用和状态更改的数量会使渲染更快。如果你有不同的纹理,你可以将它们合并到texture altas。这将允许您将所有粒子合并到一个顶点缓冲区中,并立即渲染所有粒子。

您的号码(40粒子)似乎非常低。你确定粒子是瓶颈吗?通常,优化渲染性能是一个非常困难且耗时的过程。在明确瓶颈是什么以及如何使其更快之前,需要进行许多实验,使用不同的工具并尝试各种方法。问题可能是一般性的,也可能是非常具体的硬件问题。在一台设备上工作得更快的东西在另一台设备上运行得更慢

除非出于教育原因这样做,否则我强烈建议重复使用现有的解决方案,并将这些解决方案投入人工年限,以使其更快。

更新:看看你的编辑,我不得不说,我很难提出任何建议。也许精灵太大了你最大限度的填充率。或者它们上的着色器过于复杂,甚至需要很长时间来绘制它们。