Java中的3D模拟

时间:2012-09-21 13:52:40

标签: java 3d physics simulation java-3d

我从未做过任何3D编程,并且正在进行3D飞机碰撞模拟。我打算用Java做,虽然我知道C ++可能更受欢迎,但我没有经验,时间有限。

有人可以推荐任何引擎或包装吗?我知道有Java3D,但现在不是有点老了吗?我也见过JMonkey Engine,虽然这是游戏,我相信它对于模拟软件会没问题吗?

谢谢!

2 个答案:

答案 0 :(得分:7)

在您获得真正有用​​的答案之前,您必须确定您的保真度要求。一些观察:

Java 3D - 自2008年以来似乎没有太多活跃的开发(虽然看起来它已被移植到使用JOGL)。如果它能满足您的需求,请继续使用它,但不要指望它能够很快获得任何新功能(除非您想自己编写)。由于它主要是一个场景图管理器,它可能用于显示,但它没有任何物理模拟功能。

JOGL - 这是Java的OpenGL绑定。它最近的稳定版本也有大约4年的历史,但有迹象表明它正在进行一些开发以利用更新的OpenGL功能。

jBullet - 这是一个用于游戏目的的物理引擎。它本质上是C ++ Bullet Physics引擎的Java端口。

jMonkey - 这是一个游戏引擎,它将渲染引擎(Java 3D)和物理引擎(jBullet)组合到一个包中。

回到我的主要观点。如果您的要求可以通过游戏引擎满足,那么您可以使用jMonkey之类的东西,或者如果您想要将其剥离,只需使用JOGL和jBullet。

缺点是大多数用于游戏的物理引擎都不会像碰撞检测和约束运动那样处理空气动力学。 jBullet似乎有一些飞行模拟器扩展,但我不能对它们的质量做出任何建议......我怀疑它们也是用于游戏目的。

如果您想开始处理结构故障模拟以进行工程分析等,您可能可以使用这些工具进行渲染,至少可以使用与之相关的物理的一小部分。但是,针对游戏调整的物理引擎并不适合这种分析。为此,您需要一个专业的工程包,或者具有航空,机械工程,建模和仿真背景的专业工程师......以及谁知道如何用Java编程。

至于

  

空域中的其他飞机会发生什么,采取的行动   飞机控制员和碎片场。

大部分内容都不会包含在任何物理引擎中,即使是适合工程分析的物理引擎。有一些航空和机械工程涉及,但这只限制了可能的。你所谈论的是在压力情况下处理人类行为。这是许多研究的焦点,但你不可能找到任何可用的开源或商业软件来满足你的项目的这一部分。

最重要的是,更好地了解您的要求。如果您事先没有这种理解,那么您将解决错误的问题。

答案 1 :(得分:0)

其他替代方案是:

lwjgl website)一个游戏库,包括GL绑定以及对控件和声音的支持。

ode4j website)3D游戏物理库。这是ODE C / C ++物理库的Java端口。