|
-12 / 1 / 0
Регистрация: 11.02.2017
Сообщений: 246
|
|||||||||||
OpenGL LWJGL3 -> GLFW и JavaFX возможно ли вместе?17.03.2020, 16:21. Показов 2138. Ответов 7
Метки нет (Все метки)
День добрый. Только недавно начал изучать Java. Вопрос такой: я при помощи библиотеки GLFW создаю окно
Возможно ли в этом же окне рисовать графический интерфейс JavaFX? Смогу ли я осуществить следующие задачи?: 1. на экране будет отображаться графика OpenGL и параллельно кнопки JavaFX; 2. на экране только графика OpenGL но при действиях с ней она исчезает и только интерфейс JavaFX, и наоборот соответственно. Необходимо ли для JavaFX создавать дополнительное окно? Только учусь, простите за глупые вопросы. Спасибо за ответ и понимание ![]() Добавлено через 6 минут ///// Второй вопрос с целью не создавать вторую тему: В:
0
|
|||||||||||
| 17.03.2020, 16:21 | |
|
Ответы с готовыми решениями:
7
Ошибка при использовании OpenGL в LWJGL3 Сборка программы на openGL, glfw, glew
|
|
Модератор
|
|
| 17.03.2020, 17:33 | |
|
Отвечу сначала на второй вопрос
У функции glVertexAttribPointer имеет немного параметров, давайте быстро пробежимся по ним: -Первый аргумент описывает какой аргумент шейдера мы хотим настроить. Мы хотим специфицировать значение аргумента position, позиция которого была указана следующим образом: layout (location = 0). -Следующий аргумент описывает размер аргумента в шейдере. Поскольку мы использовали vec3 то мы указываем 3. -Третий аргумент описывает используемый тип данных. Мы указываем GL_FLOAT, поскольку vec в шейдере использует числа с плавающей точкой. -Четвертый аргумент указывает необходимость нормализовать входные данные. Если мы укажем GL_TRUE, то все данные будут расположены между 0 (-1 для знаковых значений) и 1. Нам нормализация не требуется, поэтому мы оставляем GL_FALSE; -Пятый аргумент называется шагом и описывает расстояние между наборами данных. Мы также можем указать шаг равный 0 и тогда OpenGL высчитает шаг (работает только с плотно упакованными наборами данных). Как выручить существенную пользу от этого аргумента мы рассмотрим позже. -Последний параметр имеет тип GLvoid* и поэтому требует такое странное приведение типов. Это смещение начала данных в буфере. У нас буфер не имеет смещения и поэтому мы указываем 0. То есть у вас там будет в 5 5*4 (5 вершин типа флоат который 4 байта), для первого набора (вершин) в конце будет 0 (так как смещения нету) а для текстурных координат будет первое тоже самое а второе 3*4 (так как первые 3 вершины это геометрия) Но имхо использовать все в одном массиве не очень, лучше для каждого типа данных свой буфер, и тогда можно будет оба параметра оставлять 0 и не париться Добавлено через 37 минут Теперь пару слов про гибрид. Про fx не знаю видел только со свингом и пример был на оф гите вроде, там в окно glfw добавлялись элементы из свинга, не запускал не знаю как выглядело и работало. Вечером могу ссылку на тот гит скинуть. Lwjgl 2 версии вроде без проблем интегрировался так как там был canvas и в целом другая система окон а в 3 версии это поменяли. Зачем соединять эти вещи? Имхо у них принципы работы разные, opengl использует игровой цикл который занимает главный поток программы а в граф средствах джавы нету этого цикла (по крайней мере явно) и все события от элементов. У фх есть вроде своя 3д система. И мне кажется вместо того чтобы соединять эти плохо соединимые вещи лучше создать кнопки и другие элементы используя opengl будет быстрее и проще.
1
|
|
|
-12 / 1 / 0
Регистрация: 11.02.2017
Сообщений: 246
|
|
| 17.03.2020, 17:48 [ТС] | |
|
Беда в том что элементов аля кнопки чекбоксы таблицы и прочее будет очень много и рисовать это на Опенгле мне представляется тихим ужасом. Пробую два разных окна для гла и фикса, не знаю правда полный это маразм или очень полный. Есть еще варианты для подобного но не в опенгле?
0
|
|
|
Модератор
|
|
| 17.03.2020, 18:14 | |
|
Ну почему ужас? Создаете класс, к примеру для кнопки со всем функционалом и потом используете как обычные элементы из фх. Только придется написать методы которые будут обрабатывать события нажатий и выделения мышкой. Для выделения чтобы изменять внешний вид можно использовать половину картинки текстуры и просто смешатьтекстурные координаты в шейдере. Я у себя сейчас меню собираю как на свинге добавив объект, назначив текстуру и положение. Груюо говоря вышел свинг без менеджера компоновки.
Кстати предложенный мною вариант хранения данных (v вершина, t текстура, n нормаль) вместо вашего v0t0n0v1t1n1… v0v1... t0t1... n0n1... их можно в разные буферы и параметры 0,0 последние ставить, либо в один буфер и указав нужные смещения. Это называется плотноупакованными данными, хоть везде говорят что чередование производительнее (но и то так как элементы от каждой вершины рядом) но при загрузке моделей из файлов данные разделены по типам и перемешивать их для чередования выйдет затратнее и медленнее
1
|
|
|
-12 / 1 / 0
Регистрация: 11.02.2017
Сообщений: 246
|
|
| 17.03.2020, 19:03 [ТС] | |
|
А рисовать графику OpenGL в окне JavaFX возможно?
0
|
|
|
-12 / 1 / 0
Регистрация: 11.02.2017
Сообщений: 246
|
|
| 17.03.2020, 19:10 [ТС] | |
|
Ну мне кажется с уровнем той графики которую я хочу FX не справится. Примеры смотрел.
0
|
|
|
Модератор
|
|
| 17.03.2020, 21:39 | |
|
Вот нашел в исходниках lwjgl на гитхабе нашел вот что
https://github.com/LWJGL/lwjgl... iftFX.java судя по импортам как раз opengl + javafx, только какойто driftfx используется Добавлено через 16 минут Там похоже рендер opengl в окно javafx, только вот кроме этого гитхаба driftfx вообще не ищется, так что изучать его надо будет методом тыка используя пример. Еще похоже там фрэймбуфер используется кастомный, в который может рендерить opengl и который можно поместить в javafx окно. В составе lwjgl не помню этого компонента если честно. Там же в примерах есть использование и со свингом. Добавлено через 2 минуты Мне кажется по такой экзотике мало кто поможет и вряд ли удастся найти даже англ гайд. Информация только в документации если есть Добавлено через 1 час 41 минуту Оказывается это часть новой версии lwjgl которая еще в разработке и предварительная версия доступна уже давно, там добавили и физический движок bullet
1
|
|
| 17.03.2020, 21:39 | |
|
Помогаю со студенческими работами здесь
8
Возможно ли использовать SpedStep вместе с разгоном ? Купил компьютер с установленным Windows 8.1, возможно вместе и с вирусом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|