我试图画雨和雪作为粒子系统使用核心图形。在模拟器中,渲染进行得很好,但是当我在真实设备上运行我的应用程序时,渲染速度是慢的。
因此,请告诉我如何提高粒子系统在iPhone上的绘图性能。
也许我应该使用OpenGL进行此操作,或者使用CoreAnimation
发布于 2010-03-29 13:46:01
OpenGL将是渲染的最低级别,因此应该提供最好的性能(如果正确的话)。如果没有太多的粒子,CoreAnimation就足够接近了(确切的数字取决于其他因素,但大约50应该可以)。当您现在说您正在使用CoreGraphics时,您的意思是您正在基于计时器重绘吗?如果是这样的话,那么CoreAnimation肯定会帮助你--只要你能把每个粒子分离成一个视图。您仍然可以使用CoreGraphics来呈现单个粒子。
你是用物理引擎来计算位置吗?
发布于 2010-03-29 15:37:42
如果您只是简单地用Core绘制视图,然后重新绘制每个帧以反映粒子的运动,您将看到糟糕的性能(更多信息,请参见这个答案)。你会想去OpenGL ES或核心动画的粒子系统动画。
我的建议是看看CAReplicatorLayer,一种在iPhone OS3.0和雪豹中添加的新的核心动画层类型。我看到了一些令人印象深刻的粒子系统,它们只是使用这一层类型,而没有使用太多的代码。请参阅ReplicatorDemo示例应用程序(对于Mac,但核心概念是相同的),或Joe的“到1e100f及以后使用CAReplicatorLayer”文章。
发布于 2010-03-29 13:44:05
很难在很少或没有关于您的实现的信息的情况下给出建议。从我的经验来看,iPhone的一个主要瓶颈是内存分配。因此,如果你为每个产生的粒子分配新的对象,这将是你首先要修复的事情。(分配一个对象池并重用它们。)
https://stackoverflow.com/questions/2538248
复制相似问题