Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 分离线程上的Bulllet物理引擎使用Cocos3D提高性能/帧速率_Multithreading_Performance_Cocos2d Iphone_Game Physics_Cocos3d - Fatal编程技术网

Multithreading 分离线程上的Bulllet物理引擎使用Cocos3D提高性能/帧速率

Multithreading 分离线程上的Bulllet物理引擎使用Cocos3D提高性能/帧速率,multithreading,performance,cocos2d-iphone,game-physics,cocos3d,Multithreading,Performance,Cocos2d Iphone,Game Physics,Cocos3d,我正在用Cocos3D制作一个很棒的游戏 现在我只是想提高性能,我希望这里的任何人都能有一些好的答案 我的主要想法是提高性能,将Bullet physics Engine完成的物理计算放在一个单独的线程上 我知道这意味着物理计算不会与渲染同步,但这可能是更好的选择(另一种选择是低性能) 这是我的一些游戏截图,你们可以知道我在做什么类型的游戏。 请查看屏幕截图左下角的帧速率 如您所见,场景中有10个敌人,帧速率并不令人印象深刻。 我知道,将所有界面控件(操纵杆、健康栏、拼写按钮)放入CCSpr

我正在用Cocos3D制作一个很棒的游戏

现在我只是想提高性能,我希望这里的任何人都能有一些好的答案

我的主要想法是提高性能,将Bullet physics Engine完成的物理计算放在一个单独的线程上

我知道这意味着物理计算不会与渲染同步,但这可能是更好的选择(另一种选择是低性能)

这是我的一些游戏截图,你们可以知道我在做什么类型的游戏。 请查看屏幕截图左下角的帧速率

如您所见,场景中有10个敌人,帧速率并不令人印象深刻。
我知道,将所有界面控件(操纵杆、健康栏、拼写按钮)放入CCSpriteBatchNode将有助于提高性能,我稍后将这样做

这是在iPhone4上测试的。
我还在三星Galaxy s4上测试了它,速度大约是它的两倍


无论如何,这里的主要问题是。。。将物理放在一个单独的线程上是否会提高性能,或者至少会使渲染更平滑,因为它现在有点滞后

要回答这个问题,你必须试一试。有了GCD,外行可能需要30分钟的工作。快速测试是停止调用physics world update方法来查看这对fps的影响。通常情况下,虽然iOS设备的限制因素是渲染,而不是CPU周期,所以一定要尽可能多地批量绘制。我希望标签是位图字体?因为创建/更改ttf标签非常慢。FWIW是迄今为止我所知道的最漂亮的cocos3d游戏。感谢您对我的游戏@LearnCos2D:)的反馈。我现在使用的标签实际上是TTF,但我非常清楚,每次我在TTF上设置字符串就像创建一个全新的标签,所以我肯定会将标签更改为位图。嗯,我认为你对物理的看法是正确的,它们对性能影响不大。我想我可能需要尽可能减少POD文件中的多边形数,因为现在每个敌人都有1800个多边形数。哟,这是很多多边形!特别是从这个角度和距离可以看出多少细节。我最好的猜测是尝试将大多数敌人的polycount降到~200,玩家和老板可能降到~400。哈哈,确实有太多的poly了。我有一些其他的模型,大约500多边形,所以让我用这些模型来测试一下。