如何在JavaFX中使用OpenGL?
我想编写一个非常简单的Java
3D编辑器(用于实验)。我了解JavaFX的基本用法,并且了解足够的OpenGL知识。但是我所有的OpenGL经验都是来自使用C / C ++。
我可以在JavaFx应用程序中制作“画布”并在其上映射OpenGL视口吗?
回答:
在内部,JavaFX可以将OpenGL用作渲染管道,因此需要在两者之间进行一些集成以避免冲突。
JavaFX团队负责人Richard
Bair发表在openjfx开发邮件列表中:
我想看到(例如)8更新的一件事是拥有一个OpenGLNode或NativeSurfaceNode或类似的东西,这样,如果您正在执行自己的D3D /
OpenGL,则可以通过一种方式将这些原始命令发送到图形卡,但场景图中仍然有您的节点。
因此,将来的JavaFX版本更新可能会包含OpenGLNode。直到最初的Java
8版本发布后,下一个JavaFX功能版本才可能在JavaFX一般可用性版本中包含这样的功能(我猜是在2014年9月左右发布)。
您无需等待很长时间即可开始集成JavaFX和OpenGL。开始实施所需的所有源代码都已在OpenJFX存储库中打开,因此您可以尝试使用lwjgl或jogl之类的库构建该代码的自定义集成。
随着开发人员开始将JavaFX与现有的针对OpenGL api的Java包装器进行集成,该答案将过时。一些开发人员已经开始了此类工作-
运行google搜索lwjgl javafx
或jogl javafx
查找有关当前集成项目及其状态的信息。
最简单的集成可能是将第3方库渲染到屏幕外缓冲区,然后根据需要将像素从缓冲区传输到JavaFX
WritableImage或Canvas,以将OpenGL渲染的图形复合到JavaFX场景图中。
JavaFX拥有自己的轻量级3D API,能够将phong阴影3d模型合成到JavaFX场景图中。JavaFX 3D api不能提供完整OpenGL
api集成的所有功能,但是使用JavaFX 3D api相对简单。open-jfx Wiki上有Java
8中3D功能的代码示例的描述。
Interactive Mesh
为JavaFX提供了免费的3D模型导入器,使您可以非常简单地将复杂的阴影和纹理3D模型引入JavaFX场景图中。
有一个3D
Viewer项目中的OpenJFX库,你可以fork创建为您提出了基于JavaFX的3D编辑器的基础。
nashorn
JavaScript引擎具有一个开关,可让您使用JavaScript中的JavaFX及其3D功能,因此,您可以根据需要使用其他jvm语言来访问JavaFX
3D功能。
以上是 如何在JavaFX中使用OpenGL? 的全部内容, 来源链接: utcz.com/qa/418721.html