4

我用谷歌搜索找不到这个问题的明确答案。

如果我想要一个 Web 小程序,Java 中是否有一个库可以利用客户端机器上的硬件加速图形驱动程序,例如 OpenGL 和 Directx?我正在想象在小程序启动之前编写一些驱动程序检测代码来检测 3D 图形功能。

我意识到有很多 Java 3D 库,但无法弄清楚这一点。

我的印象是你可以做到这一点,但找不到它。

当我问的时候,Flash 和 Silverlight 怎么样?我以为他们所有的 3D 图形都是软件渲染的?

编辑:

我看到问题的答案是肯定的,Java 确实有 3D 硬件支持。感谢您提供所有信息!

我想我真正的问题是(我在做什么):

1)这在多大程度上支持充分使用?例如,您可以使用 DirectX 或 OpenGL 着色器吗?我可能希望缺少一些功能,因为这往往会抽象出一些东西。我可以制作一个 GPUID 程序或一个实用程序来详细列出客户端的 GPU 功能吗?

2)实用吗?我可以将像 Quake 这样的旧 3D 游戏移植到 Java 小程序并获得不错的性能吗?(当然取决于客户端系统)

4

7 回答 7

3

applet-launcher 项目应该有帮助:

JNLPAppletLauncher 是一个通用的基于 JNLP 的小程序启动器类,用于部署使用包含本机代码的扩展库的小程序。它允许小程序非常轻松地使用Java 3D、JOGL 和 JOAL等扩展,只需在<applet>标签中添加几个附加参数,就可以在 Java SE 版本早至 1.4.2 上使用。

JOGL 在这里有一个示例小程序 ​​Java3D 在这里有两个示例。

于 2009-04-20T15:15:23.480 回答
2

DirectX 是一个专有的 Microsoft 3D 系统,所以除非你确定你只会在 Microsoft 系统上运行,否则我会避免使用 DirectX。

JOGL 和 Java3D 非常不同。JOGL 是 OpenGL 之上的一个薄层,具有暗示的所有优点和缺点。Java3D 是一个完整的场景图系统。

于 2009-04-20T17:39:20.000 回答
1

完全可以编写访问 3D 硬件的 Java 小程序。env3d 项目 ( http://env3d.org ) 就是这样——一个生成 3D 加速 3D 小程序的 java 3D 引擎。网站上有很多示例程序来演示在浏览器中使用硬件加速 3D。唯一的要求是必须安装 Java,并且用户必须明确允许 applet 访问本地资源的权限。

Env3D 基于 lwjgl,一个用于 Java 的 opengl/游戏包装器。它甚至支持着色器和其他高级功能。

于 2011-01-23T07:37:30.433 回答
0

还需要注意的是,在 Java 的新版本中(我认为是 1.6 版本 10?)对 windows 的图形管道进行了重大改进。

于 2009-04-20T17:45:16.537 回答
0

Java 从 1.5 开始就支持硬件加速图形。

请参阅发布说明以了解如何操作。注意:这是二维的。

对于 3D,J2SE 有Java3D

于 2009-04-20T15:14:56.977 回答
0

Flash 支持伪 3D,但不支持任何类型的 OpenGL 加速全场景 3D(基本上只是透视变形效果)。还有一些面向软件的解决方案(例如,Papervision3D)。

Silverlight 将在今年晚些时候发布的 3.0 版本中支持伪 3D。据我所知,目前还没有全 3D 的计划。

据推测,JavaFX 计划的后续版本计划支持 3D,这将(如果有的话)大大改善对小程序的支持。

于 2009-04-20T15:50:59.433 回答
0

你不会有着色器,我上次检查过;您基本上会在您可能认为是 DX5 或 DX6 级别功能的基础上获得一个场景图 API,具体取决于您在做什么。

于 2009-09-16T12:50:28.690 回答