C++ Cocos2d-x粒子系统性能从1.x版下降到2.x版
我们想将我们的基本系统从Cocos2d-x 1.0(Qt端口0.6)更改为Cocos2d-x 2.0(Qt端口1.0),但在更改系统之前,有几个任务需要测试。其中一项任务是粒子系统的性能。请记住,当从1.0更改为2.0时,性能会提高,我们发现了相反的情况1.0版的性能似乎比2.0版好得多。现在我们想知道这是否正确,希望有人能给我们一个提示,我们可能会错过什么(Cocos2d-x的错误设置,错误设置,…) 为了测试性能,我们创建了一个简单的测试场景:使用一个粒子系统,在按下场景时可以多次添加该系统。此粒子系统使用不同大小的纹理(4x4px和32x32px)和四粒子系统 测试的基础是Cocos2d-x的HelloWorld示例。此外,我们启用了触摸接收器,创建了批次(如果需要),将标签转换为计数器,并添加了粒子系统插入例程。源代码和资源作为zip存档的链接附在下面 我们比较了Cocos2d-x的Linux版本和Cocos2d-x的Qt(MeeGo Harmatan)版本。测试结果可在excel表格中找到。在每个测试用例中,1.0版本都比2.0版本好。在每个测试案例中,分批粒子系统与Cocos2d-x 2.0中的未分批粒子系统具有相同的性能。在FPS/粒子系统中测量性能 结果: 由于每个效果使用的纹理都很小,因此在批处理和未批处理系统之间看不到性能差异。所以OpenGL的状态变化不多。当使用具有大量透明度的巨大纹理或更多粒子时(由于性能下降,这是不可能的),或者当使用使用不同纹理的不同粒子来进行OpenGL状态更改时,可能会看到更强的效果 因此,总体而言,性能下降可能不仅仅是图形方面,更多的是CPU的高利用率(计算数千个粒子在每个帧中的位置,即:47个粒子系统和350个粒子产生47*350=16450个粒子的有效载荷,需要在每个帧重新计算)。使用批处理粒子时,这也是可以使用的粒子的最高数量,因为GL draw函数使用的是无符号短值,该值在16450个粒子时达到。16450*4(顶点)=65800(ushort=65535)。这可以在桌面机器上使用批处理粒子与未批处理粒子时看到(在屏幕截图上)。将47个粒子插入批处理后,它将停止显示新效果。当添加更多效果时,性能仍然会继续下降,这说明性能损失主要是基于CPU端,而不是GPU。当使用4x4px纹理而不是32x32px纹理时,也可能会注意到这一点(在桌面上),只能再放置大约10个效果 相关主题:C++ Cocos2d-x粒子系统性能从1.x版下降到2.x版,c++,linux,qt,cocos2d-x,meego,C++,Linux,Qt,Cocos2d X,Meego,我们想将我们的基本系统从Cocos2d-x 1.0(Qt端口0.6)更改为Cocos2d-x 2.0(Qt端口1.0),但在更改系统之前,有几个任务需要测试。其中一项任务是粒子系统的性能。请记住,当从1.0更改为2.0时,性能会提高,我们发现了相反的情况1.0版的性能似乎比2.0版好得多。现在我们想知道这是否正确,希望有人能给我们一个提示,我们可能会错过什么(Cocos2d-x的错误设置,错误设置,…) 为了测试性能,我们创建了一个简单的测试场景:使用一个粒子系统,在按下场景时可以多次添加该系统
http://www.fantasyhaze.com/sof/Particle_Perfromance_Tests.ods你已经做了研究,但我不确定问题是什么。这读起来像是一份经过充分研究的bug报告。如果你想分享你的知识,你应该发布一个问题和答案,而不是把答案放在问题里。