Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
-12 / 1 / 0
Регистрация: 11.02.2017
Сообщений: 246

Vulkan Java

13.07.2020, 17:24. Показов 6158. Ответов 1

Студворк — интернет-сервис помощи студентам
Дайте пож-ста ссылку на примеры работы с Vulkan на Java. В двух словах, это сильно сложнее по сравнению с OpenGL?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.07.2020, 17:24
Ответы с готовыми решениями:

Перевод с c++ на Java (работа с Vulkan)
Гайдов по вулкану для джавы найте не смог, пробую англоязычный гайд туториал по вулкану но на с++. Пока прошел несколько глав и решил...

Exception in thread "main" java.lang.IllegalArgumentException: illegal component position at java.desktop/java.awt.Cont
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class...

Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ?
Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? Ответье, плиз, новичку, по MSDN я не понятно, это исключительно...

1
Модератор
Эксперт Java
 Аватар для alecss131
2881 / 1386 / 411
Регистрация: 11.08.2017
Сообщений: 4,415
Записей в блоге: 2
13.07.2020, 21:33
Лучший ответ Сообщение было отмечено EugeneV как решение

Решение

Ссылки с уроками (но только на англ, на русском есть только книга но в которой минимум кода, одна теория) и примерами кода дам позже (сейчас не на компе, а ссылки на компе), но ссылки будут на java. Хотя вулкан как и джиэль не зависят от языка на котором пишутся. Правда вулкан в этом плане более специфичен, так как многое делается через заполнение структур а в джаве надо заполнять классы выделяемые вне кучи и руками их чистить.
Теперь про сложность. Вулкан изначально задумывался как развитие opengl и вроде даже мог стать opengl next, но его выделили в отдельный продукт. На opengl последних версий (4.5+) можно писать в стиле вулкана, а в 4.6 версии даже добавили поддержку spir-v шейдеров от вулкана. Если opengl принять за c++/java то вулкан будет на этом фоне чемто наподобие ассемблера, только графического. Почти все то что делает за программиста в opengl драйвер (включая синхронизацию, так как gpu по своей природе асинхронны) в вулкане надо делать самому. Из этого выходит вся сложность вулкана. Если на шейдерном opengl нарисовать треугольник грубо говоря можно за 150-200 строк кода включая шейдеры, то на вулкане это займет в лучшем случае минимум 1500 строк кода (да, только тупо треугольник карл). Я активно пишу на opengl 4.5-4.6 в вулкан стиле (или близком к нему) и изучал поверхностно вулкан и знаю о чем пишу. Если opengl больше состоит из глобальных состояний и только в 4.5 стал ближе к ооп, то вулкан же чисто ооп, то есть у него все состоит из объектов. Советую изучить opengl последних версий для начала, активно использовать такие вещи как dsa (direct state acess), sso (separate shader object), ubo (uniform buffer object), ssbo (shader storage buffer object), graphics pipeline, immutable textures, immutable buffer и все связанное с этим (это часть так называемого вулкан стайл программирования на opengl которое более производительное чем простое), а так же не использовать юниформы в шейдерах (их в вулкане просто нету) а вместо них ubo, использовать debug callback и создавать буферы/текстуры из неизменяемых (immutable) буферов использую dsa, после этого код программы обновится процентов на 70 точно.
Теперь пара слов (далеко не все) о том что надо сделать чтобы нарисовать хоть что то на вулкане: создать экземпляр вулкана, получить список физических устройств (видео карт), найти среди них поддерживающие вулкан, создать логическое устройство, создать и активировать список слоев и расширений, создать пул коммандных буферов, по мере надобности дергать из этого пула командные буферы (где будут выполнятся все команды вулкана), создать графический конвеер с шейдерами, создать поверхность для рисования, создать swapchain, создать буферы/текстуры, создать descriptor sets, создать систему синхронизации, создать кучу логики для пересоздания и удаления частей и еще куча всего…

Добавлено через 11 минут
Это еще не говоря о том что вулкан имеет меньшую поддержку на уровне железа. Тут даже с opengl версии 4.6 которая вышла в 2014 году (точно не помню но вроде тот год) и больше не обновлялся и то не у всех работает в отличии от 3.3 версии. А про вулкан и говорить нечего, для него нужна карта не старее gtx660, про амд и ноутбуки не скажу, но с ними дела похуже имхо так как у всех довольно старое и без поддержки вулкана обычно.
Теперь пару слов про шейдеры, для вулкана можно писать и компилировать шейдеры в бинарный spir-v на любом шейдерном языке, включая glsl и hlsl. Но если и использовать glsl от opengl то так просто использовать привычный код не выйдет, у вулкана свои изменения, некоторые вещи вырезаны, некоторые добавлены. Из вырезанного например нельзя использовать subroutine и location у юниформ, вместо юниформ ubo. Так же стоит руками явно прописывать location и binding у входов/выходов/юниформ в шейдерах.

Добавлено через 1 час 54 минуты
Теперь ссылки...
Начну с уроков
Первое, аналог learnopengl.com https://vulkan-tutorial.com/ тоже англ тоже плюсовый, по нему пытался изучать, ссылка на плюсовый гит https://github.com/Overv/VulkanTutorial и джава гит https://github.com/Naitsirc98/Vulkan-Tutorial-Java
Второе аналог книги по opengl на java (тоже англ) https://ahbejarano.gitbook.io/lwjglgamedev/ от того же автора и тоже бесплатным но для вулкана (в процессе написания еще и только в виде исходников на гите) https://github.com/lwjglgamedev/vulkanbook
Третье, англ статья от нвидии по написанию на opengl в стиле like vulkan https://developer.nvidia.com/opengl-vulkan
Четвертое, книги с теорией (почти без кода, а если и есть то псевдокод) англ оригинал https://www.amazon.com/Vulkan-... 0134464540 и русская версия https://www.ozon.ru/context/detail/id/141553157/
Пятое ссылки на оф спецификации https://www.khronos.org/registry/vulkan/
Шестое ссылка на vulkan sdk https://vulkan.lunarg.com/#new_tab содержит плюсовые примеры, а так же компилятор шейдеров из cmd, так же необходимо установить для использования debug layers, вот отдельно компилятор шейдеров https://github.com/KhronosGroup/glslang
Седьмое вот еще найденные уроки на русском, но плюсовые https://triplepointfive.github... ial50.html не смотрел, но зато на русском
И пару слов, плюсовые уроки имхо полезней, так как ты переписываешь код на свой язык а не тупо копипастишь код не разобравшись в нем
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.07.2020, 21:33
Помогаю со студенческими работами здесь

DirectX vs Vulkan
Собственно, предлагаю начинать спорить по новой (спор DirectX vs OpenGL уже устарел) Моё мнение, что Вулкан очень даже хорош, не зря...

Google Chrome+vulkan
Доброго времени суток! Пользуюсь Google Chrome. Проблема следующая: я пишу в поисковике любой запрос, на несколько секунд появляется...

Сменит ли Vulkan OpenGL?
Всем привет, хочу изучать opengl, но недавно узнал о том что opengl объявится устаревшим и сменит его Vulkan, от тех же разработчиков,...

Реклама Vulkan и баннеры на youtube
Вчера на сайте youtube начали появляться рекламные баннеры наподобие той, которая показывается на всяких торрент сайтах и т.п., так же...

Khronos Group API Vulkan
Состоялся релиз спецификации API Vulkan версии 1.0. Компании AMD и NVIDIA заявили о выпуске драйверов для Vulkan. По утверждению...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru