Java - 有没有多平台3D API? [关闭]

问题描述 投票:3回答:5

我只是想问一下,我是Java新手,我想制作一些真正的3D和多平台应用程序。从开始,我只喜欢java因为它的多平台性。但是当谈到3D时,我首先尝试了JOGL。好吧,它已经以某种方式连接到OpenGL驱动程序,所以它不能是多平台,我。但是,我也想过,为什么没有任何真正的多平台(因此仅依赖于JVM)版本的3D API。比我找到Java3D。首先,我认为这是我正在寻找的东西。但是我发现它也依赖于原生图书馆。

那么,是否有Java的3D API,纯粹用Java编写?当然,至少很少有硬件加速?我没有看到任何理由为什么JVM无法提供硬件加速功能而不是本机代码库。谢谢。

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

java api jogl java-3d
5个回答
1
投票

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

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

编辑:

每个平台都有自己的JVM实现。它是JVM,它在你的“java代码”和平台的特性(硬件/驱动程序)之间进行绑定。 3D内容未打包在标准JVM中。 JOGL和Java3D都是平台无关的,因为它们都会自动绑定到平台各自的本机库。


1
投票

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


0
投票

你熟悉JavaView吗?但是,我担心它根本不是你正在寻找的方向。


0
投票

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


0
投票

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

JOGl是最受欢迎的低级API。 Java3D也在那里。 JOGL只是OpenGL,如果你不习惯GL,那么很难学。 LWJGL是一个针对游戏的更高级别的API,而JMonkeyEngine等系统仍处于较高水平。根据您想要获得的图形深度,决定您想要哪一个。

© www.soinside.com 2019 - 2024. All rights reserved.