最佳的3D Java引擎

39

寻找易于使用的3D Java引擎API(即非包装器),具有良好的社区和良好的开发。额外功能(例如音频,输入等)不是必需的,但很好。

我找到的最受欢迎的Java 3D图形API列表:

包装器/低级别

  • JOGL - 强大的社区/良好的支持/活跃
  • Java3D - 已弃用(或缓慢消失),淘汰场景图(或重新制作为JavaFX?)
  • lwjgl - Open GL包装器,带有音频和输入处理/活跃

引擎

jMonkey Engine - 维基百科 - 活跃

  • 在版本3.0和2.0之间分支(可能会伤害社区)

ogre4j - 维基百科 - 活跃

Bindenlicht - 没有维基百科! - 不活跃


高级别(不适用于游戏)

  • Processing - 似乎不适合游戏,但适用于图形可视化和演示。
  • Jzy3d - 一个易于使用的Java API,用于3D图表(曲面、散点、条形图等)。建立在JOGL之上。

更新:请选择一个JAVA引擎,并解释为什么选择它!谢谢!


1
为什么选择Java?最好使用C++,即使限制自己使用多平台解决方案,您的选项也会增加十倍。学习C++比让缺乏Java库正常工作更容易。此外,irrlicht的Java绑定已经近两年没有更新了。Irrlicht本身是C++。 - haffax
3
我的程序需要大量处理文本输入和 MIDI 文件,我认为用 C++ 很难实现。虽然在 C# 中也很困难(因为 API 没有官方支持),但我想象中它在 C++ 中会更加困难 :)。 - worbel
1
jogl已从java.net迁移到jogamp:http://jogamp.org/,您链接的是旧的项目主页。 - mbien
2个回答

14
我会看一下Ardor3D,并再次查看JMonkeyEngine。

Ardor3D

更新: Ardor3D的开发者停止了项目,但它的一个子集继续存在

由原始JMonkeyEngine开发人员创建,他们决定需要彻底重构并运用所有经验来创建更好的API和平台。

我认识的使用Ardor3D的人对其设计和API非常赞赏。它正在积极维护,并拥有良好的社区和API文档,虽然教程有点短缺,通常您需要熟悉3D编程概念才能掌握。


JMonkeyEngine 3

这是一个由社区主导的 JMonkeyEngine 2 重写项目,旨在解决对 JME2 设计及其相关问题的不满。自发布以来,它越来越强大。

有充足的文档,包括教程和许多使用它的项目。如果您曾经遇到过 JMonkeyEngine 2 或更早版本的问题,那么再次查看版本 3 绝对是值得的。


其他


2
Ardor3D已经死亡。http://ardor3d.forumatic.com/viewtopic.php?f=4&t=12755 - Finn Johnsen
1
"官方"的Ardor3D引擎基本上已经停止开发了,但我仍然维护着该引擎的一个子集。Charles是正确的,我感谢他提到JogAmp的Ardor3D Continuation项目,该项目正在积极开发和维护。" - gouessej
是时候更新并提及JavaFX了吗? - Troyseph

10
您正在混合使用库和库的级别,Jogl 和 lwjgl 都是围绕 OpenGl 的相对薄的封装器(如果我没记错的话,lwjgl 有更多的 OpenAL 封装器,即音频)。虽然您可以使用纯 opengl 编写游戏,但您可能会花费很多时间来管理几何形状、构建(或重新发明)场景图和其他管理功能。
Processing 大多数是面向 2D 的。
我没有任何 ogre4j 的经验,但上次我看 JMonkey 正在进行当前开发,查看 2.0 存储库,目前有一长串变化。
如果您不太想使用 Java,请考虑一些替代方案 Torque (私有脚本语言) Panda3d (python) 或前面提到的 OGRE 使用 C++。我不知道您在第一段中所讨论的类和结构,但拥有一个处理场景管理、可见性计算、声音管理、游戏循环甚至网络等的库或后端,可能是您决策的更好驱动因素,而不是特定的语言功能。

我想要添加irrlicht。 - Umair Ahmed
JOGL是JogAmp的一部分,其中包含OpenAL API和OpenCL API的Java绑定(JOAL和JOCL)。 - gouessej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接