2

我试过这些:

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

  2. 降低粒子数,现在是 40,但如果再低就太低了。

我还有其他方法可以使它变得更好吗?

我看到很多很酷的游戏(比如 Bejewled Blitz)都有很好的效果,而且它们似乎使用了非常平滑的图像/许多粒子。有没有其他方法可以让 FPS 变得更好?

感谢所有善良的投票和回答!以下是一些更新:

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

1 回答 1

0

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

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

您的数量(40 个粒子)似乎非常非常低。你确定粒子是瓶颈吗?通常优化渲染性能是一个非常困难且耗时的过程。一个人需要做很多实验,使用不同的工具,尝试各种方法,然后才能弄清楚瓶颈是什么以及如何让它更快。问题可能是一般性质的并且非常特定于硬件。在一台设备上运行得更快的东西在另一台设备上运行得更慢。

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

更新:看着你的编辑,我不得不说,我很难提供任何建议。也许精灵太大了,你最大化了填充率。或者它们上的着色器过于复杂,即使绘制其中的几个也需要很长时间。

于 2012-10-14T07:32:22.670 回答