3

我只是想问一下,我是 Java 新手,我想做一些真正的 3D 和多平台应用程序。从一开始,我只喜欢java,因为它的多平台性。但说到 3D,我首先尝试了 JOGL。好的,它以某种方式连接到 OpenGL 驱动程序,所以它不能是多平台的,我虽然。但是,我也想,为什么没有任何真正的多平台(因此只依赖于 JVM)版本的 3D API。比我发现Java3D。首先,我认为这是我要找的东西。但我发现它也依赖于本机库。

那么,有没有纯 Java 编写的 Java 3D API?当然,至少硬件加速很少?我看不出 JVM 不能提供硬件加速功能而不是原生代码库的任何原因。谢谢。

编辑:嗨。好吧,我读了你的答案,关于加速 3D 图形不能有平台独立的方式。但是,为什么不呢?我的意思是,JVM 应该让它独立于平台,对吧?他们需要做的就是将本机库直接嵌入到 JVM 中。例如,当 JVM 与操作系统进行所有 IO 时,它依赖于平台。当 Swing 想要绘图时,JVM 必须使用本地代码来访问例如 WinAPI、X System 等。那么,我真正要问的是,它有什么不同?例如将 OpenGL 绑定添加到 JVM 中?就像它调用其他操作系统例程一样?没有区别。

4

5 回答 5

1

我可以推荐JMonkeyEngine。真的很容易理解,强大的力量和伟大的社区。

于 2011-03-24T12:47:55.380 回答
1

好吧,如果你想要硬件加速,它是平台相关的!..因此需要与一些本机库绑定,至少是驱动程序。

在我看来,JOGL(低级)和 Java3D(高级)都是不错的选择。

编辑:

每个平台都有自己的 JVM 实现。是 JVM 在您的“java 代码”和平台的特殊性(硬件/驱动程序)之间进行绑定。3D 的东西没有打包在标准的 JVM 中。JOGL 和 Java3D 都是平台独立的,因为它们都将自动绑定到平台各自的本地库。

于 2011-03-24T12:53:46.340 回答
0

根据定义,3D 图形是依赖于平台的活动。虽然您可以编写一个独立于平台的库,但它无法利用硬件图形加速,因此会非常慢。您必须使用平台硬件,并且不同平台上的硬件不同。

JOGl 是最流行的低级 API。Java3D 也在那里。JOGL 就是简单的 OpenGL,如果你不习惯 GL,那么很难学习。LWJGL 是针对游戏的更高级别的 API,而 JMonkeyEngine 等系统仍然更高级别。根据您想要获得的图形的深度来决定您想要哪一个。

于 2011-03-24T13:45:32.627 回答
0

java3d 这不适合工作吗? http://java3d.java.net/

于 2011-03-24T13:33:48.567 回答
0

你熟悉JavaView吗?但是,恐怕它根本不是您要寻找的方向。

于 2011-03-24T12:48:22.567 回答