Java3D到JavaFX8的转换

Java3D到JavaFX8的转换,javafx,javafx-8,java-3d,Javafx,Javafx 8,Java 3d,我有一个用Java3D编写的应用程序。由于Java3D实际上已经死了,我正在考虑将代码转换为JavaFX(JavaFX8支持3D对象) 问题是将Java3D代码转换为JavaFX代码是否相对简单? JavaFX中是否有与java3d方法直接对应的方法,或者更像是对代码的全面重新设计 下面是Java 3D代码中使用的一些包的列表: javax.media.j3d.Alpha javax.media.j3d.Appearance javax.media.j3d.Behavior javax.med

我有一个用Java3D编写的应用程序。由于Java3D实际上已经死了,我正在考虑将代码转换为JavaFX(JavaFX8支持3D对象)

问题是将Java3D代码转换为JavaFX代码是否相对简单? JavaFX中是否有与java3d方法直接对应的方法,或者更像是对代码的全面重新设计

下面是Java 3D代码中使用的一些包的列表:

  • javax.media.j3d.Alpha
  • javax.media.j3d.Appearance
  • javax.media.j3d.Behavior
  • javax.media.j3d.BoundingSphere
  • javax.media.j3d.BranchGroup
  • javax.media.j3d.Canvas3D
  • javax.media.j3d.GeometryArray
  • javax.media.j3d.LineArray
  • javax.media.j3d.PointLight
  • javax.media.j3d.Shape3D
  • javax.media.j3d.Switch
  • javax.media.j3d.Transform3D
  • javax.media.j3d.TransformGroup
  • javax.media.j3d.wakeuponelassedframes
  • javax.media.j3d.wakeuponelassedtime
  • javax.vecmath.Matrix4f
  • javax.vecmath.Vector3d
  • javax.vecmath.Vector3f
      Java 3D并没有死,正如您所看到的,您完全错了。与JavaFX 3D API相比,scenegraph API的功能有很多种选择,我个人认为JavaFX 3D API特别差。

      我不知道gouessej是怎么说Java 3D没有死的,Java3D的功能开发不会继续下去。 但是,他/她正确地认识到,基础JavaFX3D API非常缺乏特性

      如果要将应用程序移植到JavaFX3D,则必须重写渲染部分以匹配新的JavaFXAPI。从您提供的列表中,只有PointLight和Shape3D具有直接对应项。Alpha transparency是8u40中未记录的不受支持功能,将被编译到Java9的正式版本中。F(X)yz团队有一个演示,它工作得很好,但我们必须从源代码处重新编译平台;-)

      但你并不孤单,现在通过F(X)yz(无耻的插件…)有了免费的开源第三方支持


      你写的部分错误,我的帖子已经更新了很多次,我最近添加了Java3D 1.7.0的链接,Java3D的第一个版本将支持Android。自2012年以来,我的文章被修改了25次以上。你文章末尾的链接似乎被破坏了。是的,我们完全同意JavaFX3DAPI正如我的文章所说的那样糟糕。关于Java3D,并不是所有人都在认真推动Java3D,所以我不确定我怎么会“完全”错。例如,会议上的论文和技术演示在哪里?5年来,没有人在JavaOne上展示过Java3D技术。引用你自己的文章作为Java3D复活的证据对我来说是不够的。我希望看到Java3D的复兴和现代化,特别是如果它与JavaFX3D合并的话。但遗憾的是,在与Oracle的Java GUI开发团队交谈后,这种情况不会发生。Phil正在积极推动Java3D,Android的支持将是一个巨大的进步,他已经大大改进了着色器支持。你关注的是“官方”的东西,但据我所知,JOGL和Java3D很长一段时间都不在Oracle的控制之下,自2010年以来,它们已经发布了好几个版本。合并不会发生,我们也不介意。大量的第三方库位于JDK之外。