|
-12 / 1 / 0
Регистрация: 11.02.2017
Сообщений: 246
|
|
Vulkan Java13.07.2020, 17:24. Показов 6071. Ответов 1
Дайте пож-ста ссылку на примеры работы с Vulkan на Java. В двух словах, это сильно сложнее по сравнению с OpenGL?
0
|
|
| 13.07.2020, 17:24 | |
|
Ответы с готовыми решениями:
1
Перевод с c++ на Java (работа с Vulkan) Exception in thread "main" java.lang.IllegalArgumentException: illegal component position at java.desktop/java.awt.Cont Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? |
|
Модератор
|
|
| 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
|
|
| 13.07.2020, 21:33 | |
|
Помогаю со студенческими работами здесь
2
DirectX vs Vulkan Google Chrome+vulkan Сменит ли Vulkan OpenGL? Реклама Vulkan и баннеры на youtube Khronos Group API Vulkan Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|