我从未做过任何 3D 编程,将从事 3D 飞机碰撞模拟。我打算用 Java 来做,虽然我知道 C++ 在这类事情上可能更受欢迎,但我没有这方面的经验,而且时间有限。
谁能推荐任何引擎或包装器?我知道有 Java3D,但它现在不是有点老了吗?我也看过 JMonkey Engine,虽然那是用于游戏的,但我确定它对于模拟软件来说会很好吗?
谢谢!
我从未做过任何 3D 编程,将从事 3D 飞机碰撞模拟。我打算用 Java 来做,虽然我知道 C++ 在这类事情上可能更受欢迎,但我没有这方面的经验,而且时间有限。
谁能推荐任何引擎或包装器?我知道有 Java3D,但它现在不是有点老了吗?我也看过 JMonkey Engine,虽然那是用于游戏的,但我确定它对于模拟软件来说会很好吗?
谢谢!
在获得真正有用的答案之前,您必须确定您的保真度要求。一些观察:
Java 3D - 自 2008 年以来,它似乎没有太多活跃的开发(尽管它看起来已经被移植到使用 JOGL)。如果它满足您的需求,请继续使用它,但不要指望它会很快获得任何新功能(除非您想自己编写它们)。由于它主要是一个场景图管理器,它可能是用来显示的,但它没有任何物理模拟能力。
JOGL - 这是 Java 的 OpenGL 绑定。它最新的稳定版本也有大约 4 年的历史,但有迹象表明它正在进行一些开发以利用更新的 OpenGL 功能。
jBullet - 这是一个用于游戏目的的物理引擎。它本质上是 C++ Bullet Physics 引擎的 Java 端口。
jMonkey - 这是一个游戏引擎,它将渲染引擎 (Java 3D) 和物理引擎 (jBullet) 组合到一个包中。
回到我的主要观点。如果您的要求可以通过游戏引擎满足,那么您可以使用 jMonkey 之类的东西,或者如果您想将其剥离,只需使用 JOGL 和 jBullet。
缺点是大多数用于游戏的物理引擎不像碰撞检测和受限运动那样处理空气动力学。jBullet 似乎有一些飞行模拟器扩展,但我无法对它们的质量提出任何建议......我怀疑它们也是用于游戏目的。
如果您想出于工程分析等目的开始处理结构失效模拟,您也许可以使用这些工具进行渲染,并且至少有一小部分与它相关的物理特性。但是为游戏调整的物理引擎不太适合这种分析。为此,您将需要一个专业的工程包,或具有航空、机械工程、建模和仿真背景的专业工程师......并且知道如何使用 Java 编程。
至于
空域内其他飞机的情况、飞机管制员采取的行动和碎片场。
其中大部分不会包含在任何物理引擎中,即使是适合工程分析的引擎。涉及一些航空和机械工程,但这只会限制可能的情况。你所说的涉及压力情况下的人类行为。这是许多研究的重点,但您不太可能找到任何可用的开源或商业软件来满足您项目的这一部分。
最重要的是,更好地了解您的要求。如果您事先没有这种理解,那么您将解决错误的问题。