AmaBob
> Все же ты вулкану нас хочешь научить
AmaBob
> Я бы убрал адовые конструкции нового стандарта и обернул все в обычные функции.
Так в том и суть, новому стандарту, а не как опенгл через жопу вызывать.
Осилил, не хватало только объявления vk_pipeline в коде (и еще какой-то переменной, уже не помню). Не знаю, умышленно это или нет, немного проверяет на внимательность, но не помогает пониманию материала.
Глупый вопрос: а чего это у них, аллокаторы дефолтные есть (если я правильно понял), а вот все этапы пайплайна надо вручную указывать?
Если кто посоветует статью, которая объясняет, в чем собственно практические отличия Вулкана (на какие уже известные алгоритмы этот контроль над видеокартой положительно повлияет), буду благодарен.
AmaBob
> Я бы убрал адовые конструкции нового стандарта и обернул все в обычные функции.
Какие такие? Ты о лямбдах что-ли?
В функции заворачивать даже не предлагайте, сильно портит линейность (да и не надо).
> на уровне C
Если бы я хотел запилить тутор на С, я бы не брал С++.
NyakNyakProduction
> все этапы пайплайна надо вручную указывать
Окей, а как ты себе это представляешь по другому?
dds
> Для чего нужен такой сложный вулкан, когда есть простой и понятный OpenGL API?
Ну как же, крутизна-пупизна ... миллиарды батчей в секунду
The Player
> Окей, а как ты себе это представляешь по другому?
My bad, не проверил сразу, я думал, что нельзя написать, например,
vk_graphicsPipelineCreateInfo.pRasterizationState = nullptr;
и все равно получить картинку.
NyakNyakProduction
> я думал, что нельзя написать
Так и нельзя.
NyakNyakProduction
Я имел ввиду, что стадии конвейера в любом случае нужно как-то задавать.
Откуда эму знать, рисуешь ты треугольники или линии? Дефолтные значения для таких задач звучат как-то дико.
ИМХО образец точно нужно на инстанс(instance) менять
Спасибо, но всё-равно нихрена не понял :( Уж больно много несвязных между собой сущностей. Не хватает картинок как они между собой связаны.
В голове не удерживаются, пока читаешь другое описание... кэш память у меня маленькая
У меня ушло на это 3 дня, но я нарисовал сраный треугольник. Огромное спасибо за 2 разных исходника. Назрел вопрос для дальнейшего развития. В примере vkCmdDraw дублируется для всех command буферов, а как правильно рисовать геометрию? Создавать буферы на очистку и на отрисовку отдельно?
Правка: или надо каждый кадр создавать command буфер, меняя в нём текущий framebuffer?
Я облизнулся на всё это дело и решил, что это пока однозначно не для меня :) буду по готовым урокам осваивать OpenGL / GLSL, потом на основе накопленного опыта добивать его до победного конца, а там уже можно будет посягнуть и на освоение Вулкана :)))
Dimich
> Назрел вопрос для дальнейшего развития.
Написал удобные обертки?
Добавил дескрипторы? например для вращения треугольника мышкой?
Текстуры загрузил?
Ну и далее.
Планируется Direct3D12 ? Если да, оборачиывай VkPipeline, VkDescriptorSet и все остальное в интерфейсы и выноси наружу для асбтракции
Если нужна поддержка OpenGL/Direct3D11 придется эмулировать это тоже, usercode будет видеть только PSO с набором буферов(VB, IB), дескрипторов и т.д.. Аналогично нужно с командными буферами сделать.
>В примере vkCmdDraw дублируется для всех command буферов, а как правильно рисовать геометрию? Создавать буферы на очистку и на отрисовку отдельно?
По этому поводу куча pdf есть изучать нужно.
Andrey
> Если да, оборачиывай VkPipeline, VkDescriptorSet и все остальное в интерфейсы
> и выноси наружу для асбтракции
То есть уже id не кузявы ?
Andrey
> Написал удобные обертки?
> Добавил дескрипторы? например для вращения треугольника...
Я про это не спрашивал.
> По этому поводу куча pdf есть изучать нужно.
Я не нашёл, можно ссыль на одну хотя бы?
Dimich
есть sdk от Саши - там всё есть, на год точно хватит
innuendo
> есть sdk от Саши
Он весь обмазан местным фреймворком, я в нём сколько буду разбираться.
Тема в архиве.