我的同事正在使用Java3D来可视化有限元模拟的结果。问题是Java3D似乎已经死了,这对OSX来说是一种痛苦。这是我们寻找替代品的原因之一。 我们当前基于Java3D的实现已经做了很多工作,所以问题是离开Java3D需要付出多少努力。 JOGL是一种选择,但看起来很多工作。
有没有人提出替代方案的建议?有这种迁移的经验吗?
答案 0 :(得分:10)
JOGL提供对OpenGL功能的直接访问。这些函数主要是低级绘制函数,在编程时必须处理OpenGL的“状态机”特性。
Java3D抽象了这个状态机。它允许您定义图形对象树,放置在虚拟场景中,并由相机渲染。使用这种树结构,这些图形对象的操作更容易。然后,由Java3D来完成这个树并调用OpenGL绘图函数。
这种库称为scenegraph。 java中有很多场景图库,有些是在JOGL之上实现的。我没有列表,但此关键字可以帮助您进行研究。
在我们的项目中,我们尝试了3到4个不同的库,但没有人满足我们的所有要求。我们结束了编写自己的场景图库(在JOGL之上)。
答案 1 :(得分:6)
答案 2 :(得分:3)
JOGL确实是个不错的选择。但是,它只是OpenGL的包装库。这意味着你仍然需要自己做很多腿部工作。如果您对此感到满意并且它适合您的需求,那实际上并不是那么困难。但它可能有点耗时并且不知道您当前的代码库我不知道传输是多么容易。
然而,您可以使用可能使用JOGL的引擎。像JMonkey Engine这样的东西纯粹是为了举个例子。如果你看,你肯定会找到其他人。看看这些,它们的易用性和功能,看看哪种最适合你。他们可能不会把所有工作都从你身上拿走,但他们可能会让它变得更容易一些。
答案 3 :(得分:2)
另请参阅此Java 3D论坛主题:Java3D可行性问题...... https://forums.oracle.com/forums/thread.jspa?threadID=2150209&tstart=15
八月,InteractiveMesh
答案 4 :(得分:2)
我使用JOGL 2.0(这是OpenGL(和OpenGL-ES)API的低级Java绑定。我最近帮助某人恢复了Java3D。现在,它只依赖于JOGL 2.0而且效果更好,尤其是Mac OS X.您可以在此处找到源代码: https://github.com/hharrison/java3d-core
让我们玩得开心。它被重新积极维护;)
P.S:我写了一篇详细的文章来解释如何使用最新版本的Java3D(1.6)here。