【问题标题】:How to use Opengl/DirectX in Java如何在 Java 中使用 Opengl/DirectX
【发布时间】:2018-01-10 18:01:56
【问题描述】:

我的问题是:

  • 如何在 Java 中使用 Opengl 或 DirectX。
  • 在 Java 中使用 DirectX 与 Opengl 相比有什么主要优势吗?
  • 有没有办法在不使用 API 的情况下做到这一点?
  • 我应该使用如下 API: JOGL LWJGL
  • Java FX 对制作 3D 东西有用吗?

另外,我使用的是 Windows。 有没有不同的方法来绘制 3D 对象?

【问题讨论】:

  • 您绝对需要一个可以与本机接口对话的库,因此您不必在自己的代码中这样做。如果你选择 OpenGL,你的程序很容易移植到其他平台。
  • 我不知道你想要实现什么,但如果你只是想用 3D 渲染一些简单的东西,你可以试试 JavaFX:youtube.com/watch?feature=player_detailpage&v=EBKHdV-_rIc

标签: java opengl directx


【解决方案1】:

如何在 Java 中使用 Opengl 或 DirectX。

有许多可用于 Java 的 OpenGL 绑定。 Java 本身似乎不支持 DirectX,似乎也没有提供绑定的库。

在 Java 中使用 DirectX 与 Opengl 相比有什么主要优势吗?

我想说 DirectX 与 OpenGL 相比处于劣势,因为它缺乏对 Linux 或 OSX 的支持。如果你想使用 Java 编写跨平台游戏,我建议你看看 OpenGL。

有没有办法在不使用 API 的情况下做到这一点?

我假设您的意思是这里的图书馆。 Java 提供了一个用于绘图的 API:Java2D。如果您想编写游戏并且一般从计算机图形学开始,这可能是一个不错的起点。 Java 不提供 OpenGL 或 DirectX 的绑定作为标准库的一部分。

我应该使用如下 API:JOGL LWJGL

我对 LWJGL 有很好的体验。因此,如果您想尝试使用 OpenGL,我可以推荐使用它们的绑定。

Java FX 对制作 3D 东西有用吗?

就我的经验而言,JavaFX 仍然有些错误(尝试时遇到了几个错误)。我不知道它在制作 3D 图形时效果如何。

【讨论】:

    【解决方案2】:

    JOGL 是 OpenGL 和 OpenGL ES API 的 Java 绑定。我从 2006 年开始使用 JOGL,我对它非常满意,它很容易安装,如您所见 here。它适用于桌面和嵌入式环境,也支持 Android,几乎所有主要的中高级 API 都使用它,包括 JogAmp's Ardor3D ContinuationJMonkeyEngineJava3D、Xith3D、LibGDX、...@987654326 @ 允许在使用纯 Java2D 编码时使 OpenGL 受益,而无需了解 OpenGL。

    我同意 Bartvbl 关于 JavaFX 3D API 的看法,它明显比我上面引用的 API 差。

    JOGL 是唯一统一的用于 OpenGL 和 OpenGL ES API 的 Java 绑定。它适用于游戏和其他应用程序(CAD,...),因为它支持多个显示器、多个屏幕、多个监视器。如果您想支持操纵杆,可以将它与 JInput 一起使用。

    【讨论】:

    • 如果唯一对我的答案投反对票的人告诉我原因,我将不胜感激。
    • 我认为是因为这个答案有点偏颇。 “我对此感到非常满意”而且,它并没有回答整个问题。我仍然认为这个答案很有用,有答案通常比没有答案好。
    • 我回答了你的问题,我给了你一个详细教程的链接,解释如何安装 JOGL,没有人能很快解释如何使用 OpenGL,因为这不是你可以在几分钟,我们的 wiki 中有许多指向一些教程的链接。您问是否有不同的方法来绘制 3D 对象,我提到了许多基于 JOGL 的 3D 引擎。我的回答并不比 Bartvbl 的更偏颇,而且我谈到了 JavaFX 3D API,因为 Veluria 提到了它。
    • 好吧,我想你是对的。当我获得 15 点声望时,我可能会投票。另外,我确实学习了JOGL!原因:名字比LWJGL短! (开玩笑)
    • 是的,期待非建设性海报的建设性反馈是愚蠢的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2013-11-06
    • 1970-01-01
    相关资源
    最近更新 更多