CPU使用率:Bullet vs Box2d引擎

时间:2017-04-03 06:50:02

标签: performance box2d game-physics cpu-usage bullet

我一直在使用2d库jbox2d已经有一段时间了,并且最近在查看子弹3d物理引擎。

我想知道的是典型的四核上的CPU消耗,比如说i5(我假设子弹是多线程的?)将是。

即使在jbox中,也很容易创建延迟甚至完全崩溃模拟过多的处理,我想知道使用Bullet引擎切换到3d物理中会有多少处理能力。

1 个答案:

答案 0 :(得分:0)

大型免责声明: -

  • 我从未在物理引擎上使用过多线程。
  • 我从来没有用它们来创建相同的应用程序,因为一个是2D,另一个是3D。
  • 我会回答过去的 记忆 ,而不是对它们进行基准测试。我承认这不是一个好习惯。

如果我需要模拟大约100个物体(JBox2d中的2D矩形,子弹中的3D立方体): -

  • 使用发布模式编译的C ++(优化开启)
  • 使用ctrl+F11 Eclipse
  • 以发布模式(非调试模式)编译的Java
  • 计算机没有处于压力状态(minium程序打开)
  • 两个物理引擎都没有约束(Box2D的联合,子弹中的btConstraint)。
  • 身体散射(有时相互碰撞),没有堆叠。
  • 所有的身体都不是太远了。所有人都在1个屏幕上,粗略地说。
  • 我有一些游戏逻辑,但不是太沉重。
  • C ++程序以C ++风格编写得很好(不是滥用new/deleteshare_ptr很多)
  • Windows 7,其规格可以播放最新的PC游戏(2017)。

我可以期待C++ & Bullet - 程序运行速度超过Java & Box2D: -  3次(相当保守) - 10次(常见)。

修改: -

几年前我刚刚在旧电脑上记得一个真实的测试案例。

当我在JBox2D中运行400个矩形时,在物理部分中,我只能达到60 fps,CPU占10-30%。
但是,我可以在C++ Bullet中添加大约4000个立方体,我可以在Physic的部分(profiled)中获得大约60 fps和10-30%的CPU。

(我注意到10-30%,因为我无法记住确切的数字。)