如何在JavaFX中使用OpenGL?

如何在JavaFX中使用OpenGL?,第1张

如何在JavaFX中使用OpenGL?

在内部,JavaFX可以将OpenGL用作渲染管道,因此需要在两者之间进行一些集成以避免冲突。

JavaFX中的OpenGLNode

JavaFX团队负责人Richard
Bair发表在openjfx开发邮件列表中:

我想看到(例如)8更新的一件事是拥有一个OpenGLNode或NativeSurfaceNode或类似的东西,这样,如果您正在执行自己的D3D /
OpenGL,则可以通过一种方式将这些原始命令发送到图形卡,但场景图中仍然有您的节点。

因此,将来的JavaFX版本更新可能会包含OpenGLNode。直到最初的Java
8版本发布后,下一个JavaFX功能版本才可能在JavaFX一般可用性版本中包含这样的功能(我猜是在2014年9月左右发布)。

第三方OpenGL / JavaFX集成

您无需等待很长时间即可开始集成JavaFX和OpenGL。开始实施所需的所有源代码都已在OpenJFX存储库中打开,因此您可以尝试使用lwjgl或jogl之类的库构建该代码的自定义集成。

随着开发人员开始将JavaFX与现有的针对OpenGL api的Java包装器进行集成,该答案将过时。一些开发人员已经开始了此类工作-
运行google搜索

lwjgl javafx
jogl javafx
查找有关当前集成项目及其状态的信息。

最简单的集成可能是将第3方库渲染到屏幕外缓冲区,然后根据需要将像素从缓冲区传输到JavaFX
WritableImage或Canvas,以将OpenGL渲染的图形复合到JavaFX场景图中。

JavaFX 3D API替代

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功能。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5461855.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存