gpt4 book ai didi

java - 如何在 JavaFX 中使用 OpenGL?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:20 28 4
gpt4 key购买 nike

我想写一个非常简单的 Java 3D 编辑器(用于实验)。我知道基本的 JavaFX 用法,我知道足够的 OpenGL 知识。但我所有的 OpenGL 经验都来自于使用 C/C++。

我可以在 JavaFx 应用程序中创建一个“ Canvas ”并在其上映射 OpenGL 视口(viewport)吗?

最佳答案

在内部,JavaFX 可以使用 OpenGL 作为渲染管道,因此需要注意两者之间的集成以避免冲突。

JavaFX 中的 OpenGLNode

Richard Bair,JavaFX 团队负责人在 openjfx development mailing list 上发帖:

One thing I want to see done (for example) for the 8 update is to have an OpenGLNode or NativeSurfaceNode or something along those lines so that if you are doing your own D3D / OpenGL you can have a way to send those raw commands down to the graphics card but still have your node composited in the scene graph.

因此, future 的 JavaFX 版本更新可能包括一个 OpenGLNode。在 Java 8 初始版本之后的下一个 JavaFX 功能版本之前,这样的功能可能不会包含在 JavaFX 通用版本中(我的猜测是大约在 2014 年 9 月)。

第 3 方 OpenGL/JavaFX 集成

您无需等待很长时间即可开始集成 JavaFX 和 OpenGL。启动实现所需的所有源代码都在 OpenJFX repository 中打开,因此您可以尝试构建该代码与库的自定义集成,例如 lwjgljogl .

随着开发人员开始将 JavaFX 与 OpenGL api 的现有 Java 包装器集成,此答案将过时。一些开发人员已经开始此类工作 - 运行 lwjgl javafxjogl javafx 的谷歌搜索以了解当前的集成项目及其状态。

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

JavaFX 3D API 替代品

JavaFX 有自己的轻量级 3D API,可以将 phong 着色的 3D 模型合成到 JavaFX 场景图中。 JavaFX 3D api 不会提供完整 OpenGL api 集成的所有功能,但是使用 JavaFX 3D api 相对简单。描述,以及 3D features in Java 8 is on the open-jfx wiki 的代码示例.

Interactive Mesh 提供免费 3D model importer for JavaFX ,这使您可以非常简单地将复杂的阴影和纹理 3D 模型带入 JavaFX 场景图中。

有一个3D Viewer projectopenjfx repository您可以创建一个基础,为您提议的基于 JavaFX 的 3D 编辑器创建一个基础。

nashorn JavaScript 引擎有一个开关,允许您 use JavaFX and its 3D features from JavaScript ,因此您可以根据需要使用其他 jvm 语言来访问 JavaFX 3D 功能。

关于java - 如何在 JavaFX 中使用 OpenGL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16946030/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com