Ответ 1
Внутри JavaFX может использовать OpenGL как конвейер рендеринга, поэтому для предотвращения конфликтов требуется некоторое внимание к интеграции между ними.
OpenGLNode в JavaFX
Ричард Баир, руководитель команды JavaFX, опубликовал рассылку рассылки openjfx:
Одна вещь, которую я хочу увидеть (например) для обновления 8, - иметь OpenGLNode или NativeSurfaceNode или что-то в этом роде, чтобы, если вы делаете свой собственный D3D/OpenGL, вы можете отправить их команды до видеокарты, но все еще имеют ваш node, скомпонованный на графике сцены.
Таким образом, в будущем выпуске релиза JavaFX может быть включен OpenGLNode. Такая функция, вероятно, не увидит включения в общую версию доступности JavaFX до следующего выпуска функции JavaFX после первоначальной версии Java 8 (моя догадка заключается в том, что это будет примерно в сентябре 2014 года).
Интеграция сторонних разработчиков OpenGL/JavaFX
Вам не нужно так долго ждать, чтобы начать интеграцию JavaFX и OpenGL. Весь необходимый исходный код для запуска реализации открывается в репозитории OpenJFX, поэтому вы можете попытаться создать пользовательскую интеграцию этого кода с помощью библиотека, такая как lwjgl или jogl,
Этот ответ будет устаревшим, поскольку разработчики начнут выполнять интеграцию JavaFX с существующими оболочками Java для OpenGL apis. Некоторые разработчики уже начали такую работу - запустите поиск по lwjgl javafx
или jogl javafx
в Google, чтобы узнать о текущих проектах интеграции и их статусе.
Простейшая интеграция, вероятно, заключается в том, что сторонняя библиотека визуализирует буфер вне экрана, а затем переносит пиксели из буфера в JavaFX WritableImage или Canvas, как требуется, чтобы получить рендерную графику OpenGL, составленную на графике сцены JavaFX.
Альтернатива API JavaFX 3D
JavaFX имеет свой собственный легкий 3D-api, который обеспечивает возможность компоновки трехмерных 3D-моделей с фоном в графике сцены JavaFX. JavaFX 3D api не будет предоставлять всю мощь полной интеграции OpenGL api, однако использование JavaFX 3D api относительно просто. Описание, с примерами кода 3D-функции в Java 8 находится в вики open-jfx.
Интерактивная Mesh предоставляет бесплатный импортер 3D модели для JavaFX, который позволяет вам очень просто переносить сложные тенистые и текстурированные 3D-модели в JavaFX график сцены.
Существует Проект 3D-просмотра в openjfx репозиторий, которые вы могли бы развить, чтобы создать основу для предлагаемого 3D-редактора на основе JavaFX.
В JavaScript-движке nashorn есть переключатель, который позволяет использовать JavaFX и его 3D-функции из JavaScript, поэтому вы можете использовать альтернативные языки jvm для доступа к функциям JavaFX 3D, если вы предпочитаете.