开源物理引擎

时间:2009-04-30 15:17:29

标签: open-source physics

过去几周我一直在使用the Open Dynamics Engine (ODE)并取得了巨大的成功。它有一个非常简单的API,其模拟至少看起来现实。 (我有时想知道我的碰撞关节参数,但无论如何。)

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

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

6 个答案:

答案 0 :(得分:21)

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

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

我自己是子弹的忠实粉丝,但我听到了一些关于它的错误投诉。他们中的大多数似乎都以糟糕的文档为中心,或者在Mac等某些辅助平台上偶尔出现问题。在“Big 2”,Havok和PhysX之后,它仍然是我的选择。

答案 1 :(得分:5)

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

答案 2 :(得分:4)

Bullet可免费用于商业用途,并提供消息来源。

文档可能要好得多,但是有一个论坛和一些可以帮助您开始使用的示例。

答案 3 :(得分:3)

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

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

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

答案 4 :(得分:2)

答案 5 :(得分:1)

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

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

  

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