15

过去几周我一直在使用开放动态引擎 (ODE) ,并取得了巨大成功。它有一个非常简单的 API,它的模拟至少看起来很逼真。(我有时想知道我的碰撞关节参数,但无论如何。)

我唯一的抱怨是它有时是一只狗。如果我天真地模拟 1000 多个相互作用的物体,那么我的表现就会开始下降。

我知道我可以花时间研究他们的空间网格来减少碰撞系统的负载,但是在我努力调整我的代码以使用 ODE 之前,我想知道是否还有其他值得一看的开源/免费物理引擎在. 这将是一个商业应用程序,所以我正在寻找比一些大学生的周末项目更可靠、更久经考验的东西。

4

6 回答 6

21

构建一个快速、准确和稳定的求解器非常棘手,像 Havok 这样的人对这项技术的保护是可以理解的。也就是说,我知道的免费系统是:

  • Newton Game Dynamics——这个以牺牲性能为代价拥有一个非常准确和稳定的求解器而闻名。在过去的几年里,它一直在努力在不牺牲其他两个方面的情况下获得性能。它是一个设计良好的引擎,运行良好,但它仍然是速度较慢的引擎之一。不是开源的。
  • 托卡马克——恰恰相反。这个太可怕了;甚至他们的演示也不能稳定运行。只需拉起他们的堆叠箱,您就会看到巨大的抖动。我从来没有印象深刻。不过,它是开源的,而且速度非常快。
  • Bullet——这个是由前 Havok 员工领导的,他现在受雇于 Sony(虽然我不记得那是 SOE 还是 SCEA)。这是现场的新手,它实际上是开源的。它得到了索尼的大力支持,它很好地跨平台,而且它是由知道自己在做什么的人开发的。
  • TrueAxis——最近出现在现场。我对此知之甚少,它并没有真正获得一个实质性的社区。我在这里倾向于持怀疑态度。它可能写得很好,但在一个小社区的帮助下可能很难获得,而且与其他引擎相比,它可能不是一个经过良好测试和稳定的引擎。

我自己是 Bullet 的忠实粉丝,但我听到了一些关于它的杂项投诉。他们中的大多数似乎都集中在糟糕的文档上,或者在一些辅助平台(如 Mac)上偶尔出现问题。在“Big 2”、Havok 和 PhysX 之后,它仍然是我的选择。

于 2009-04-30T15:24:50.943 回答
5

Bullet非常棒,并且已经在商业上使用(例如:在 Bolt 的制作中,以及一些 PS3/Wii 游戏中)支持许多平台,甚至 nVidia 的 CUDA。

于 2009-04-30T15:21:15.820 回答
4

Bullet可免费用于商业用途,并提供资源。

文档可能会更好,但是有一个论坛和一些示例可以在入门时提供帮助。

于 2009-04-30T15:23:31.057 回答
3

使用今天的硬件,如果你天真地在 x86 CPU 上模拟 1000 个交互刚体,性能毫无例外地开始下降。如果您现在想要更高的性能,那么最好寻找将工作负载转移到 GPU 的物理引擎。

CPU 具有强大的整数数学和逻辑处理能力,但 GPU 具有更强大的原始浮点计算能力。

如果您仍然希望仅通过使用 CPU 来获得更高的性能,那么您将需要更改您的要求。

于 2009-04-30T15:30:59.570 回答
2

Farseer非常好。

http://www.codeplex.com/FarseerPhysics

于 2009-04-30T15:24:45.593 回答
1

Nvidia的PhysX不是开源的,但可免费用于 Windows、Linux 和 PS3

引自http://en.wikipedia.org/wiki/PhysX

Nvidia 向 Windows 和 Linux 用户和开发人员免费提供引擎和 SDK [6]。由于索尼的一揽子购买协议,PlayStation 3 SDK 也可以免费获得。

于 2009-04-30T16:28:22.960 回答