【问题标题】:JavaFX 8 as 3D game engine?JavaFX 8 作为 3D 游戏引擎?
【发布时间】:2014-06-13 00:16:28
【问题描述】:

我想创建一个 MMO 3D 游戏,我正在寻找一个 3D 引擎,我的问题是关于 javaFX 8,我可以用它来渲染很多 3D 立方体、模型吗和动画不失性能还是最好用lwjgl

最后一个问题是:javaFX 8 可以用作 3D 引擎吗?

【问题讨论】:

  • 我会把 jmonkey 扔进 3d 引擎的圈子里考虑
  • 很惊讶这里没有提到 LibGDX - 至少在 Github 上的兴趣似乎是 JMonkeyEngine(也非常好)的 10 倍。更好的论坛——我受不了 JMonkeyEngine 的新论坛格式。

标签: java javafx 3d-engine javafx-3d


【解决方案1】:

javaFx 非常适合简单的 2D 游戏,但在 3D 游戏中 lwjgl 或 jmonkeyEngine 比 javafx 更好,我认为它对于 3D 游戏来说太慢了(但在非常简单的事情中它可能很好)

【讨论】:

  • 你有任何数据/外部链接来支持这个吗?
【解决方案2】:

是的,我认为 JavaFX 8 对于 3D 游戏来说已经足够快了,但在着色器方面它并不是当前 3D 的最前沿。我一直在尝试掌握它,但它缺少像您在 Three.js 中获得的 Camera lookAt 方法。

Lwjgl 和 JMonkeyEngine 是目前 Java 3D 游戏开发的更好选择。

【讨论】:

  • 您还必须记住,Lwjgl 和 Jmonkey 都集中在游戏环境中。 JavaFX 可能永远不会采用这种功能。这让开发人员自己实现框架(中间件)。
【解决方案3】:

回答您的问题:

我可以用它来渲染大量 3D 立方体、模型和动画而不损失性能吗?

这对很多人(我认为)来说都是一个问题......虽然没有明确的答案,但有办法让它发挥作用。

例如我最近构建了一个简单的布料模拟器, (首先是顶点的球体,然后是实际的三角形网格) 起初我采用了在我的更新循环中使用 AnimationTimer 的方法,它有效,但只能达到一定的计算范围。

我的第二种方法是创建一个 Timer,以固定的 timeStep 间隔使用 ScheduledService,并将其设置为在完成时更新 UI。

在性能开始摇摆之前,我几乎可以将顶点数量增加一倍。这是一个相当大的改进,因为我能够拥有 20k 个顶点(不是我推荐的)。

你可以在 youtube 上看到结果:

ProtoType 1

ProtoType 2

Finished MeshView

所以实际上,这完全取决于您希望花费多少时间来创建解决方案。

可以 javaFX 8 可以用作 3D 引擎吗?

再一次,这完全取决于您想花多少时间开发框架。我个人一直在尝试为此目的构建一个工具集, 并非所有事情都能成功,但旅程是解决方案的一半。

如果您有兴趣了解我的布料模拟方法,您可以在此处找到所有来源:F(x)yzLib,以及许多其他有用的功能/形状等...

【讨论】:

    【解决方案4】:

    我正在使用 JavaFX 制作这款 3D 太空射击游戏: http://lightspeedpatrol.weebly.com/features-and-info.html 所以我可以告诉你,它主要是有效的,但正如艾伦所说,照明选项真的很有限。这是一个很好的学习工具,因为这是我第一次做任何与 3D 相关的事情,但从长远来看,我认为我最好还是使用 LWJGL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 2012-10-28
      相关资源
      最近更新 更多