Pull to refresh

Comments 50

Kurwa. У меня валялось в закромах 10 из 30 запланированых туториалов по вулкану, 20 из которых я так и не дописал...)

Было бы супер, я могу отформатировать и указать, что ты перевёл

В моих статьях есть информация из других источников, плюс мне не совсем нравится подход автора той серии туториалов. В частности то, что там свалено всё в одно корыто. Плюс, я ещё своих изысканий добавил. Так что такой формат тоже не очень подходит)

Можно подумать и сделать свою серию уроков, но это требует больше времени чем перевод

Ну, собственно, этим я и занимался примерно с ноября прошлого года до февраля 2020. Потом подзабил, и только недавно начал вспоминать о них. Но, впрочем, да, можно сделать просто отдельную серию.

так что могут встречаться ошибки и опечатки.

Да еще сколько! Понятно, что хочется поскорее поделится с миром своим начинанием, но все же можно же включить спелл-чекер? Не пренебрегайте этим, не позорьте нас, как нацию, перед автором, если уж собрались сделаться официальным переводчиком уроков.

Спасибо за рекомендации. Я завтра утром пройдусь и поправлю орфографию

Спелчекер не только не поможет избавиться от всех (я бы даже сказал, большинства) ошибок, но, в силу своего несовершенства, может спровоцировать на те, которых не было бы без него: например, вы правильно написали текст, содержащий «делать что-то по многу раз». А тут он такой и говорит «а что это у вас за слово такое непонятное „многу“?» и вы убираете пробел и получаете текст с ошибкой, на который он «не ругается».

P.S. в запятые, IMHO, спелчекеры ещё долго не смогут даже (или особенно) с ИИ
UFO just landed and posted this here

Doom ethernal, Doom 2016 и Dota 2 у меня нормально работали на вулкане. ЧЯДНТ?

поддержку Вулкана удалили из движка UE и Юнити

А пруфы есть?

Нет у него пруфов, так как никто не удалили его, как минимум из ue. 4.23 — vulkan есть

Советовал бы вам изучить данный вопрос, так как очень много современных игр поддерживают вулкан. Примеров мало, так как он рассчитан на людей которые работаю в сфере графического программирования и сами в состоянии разобраться в коде. Если ты понимаешь принципы работы и взаимодействия с гпу, то понять как использовать тот или иной апи — не проблема.

И не думаю, что стоит тратить время на эти холивары. Я решил перевести, что бы помочь сообществу. Читать или не читать — дело каждого, индивидуально.

Я тоже предпочитаю ogl, но не собираюсь ни с кем спорить по поводу «чей х** длиннее». Если бы у меня было время, я бы писал свои авторские статьи по openGL или С++ в целом. Но имеем, что имеем.
Добра вам :)

Пока читал глаза на лоб полезли. Попробую по порядку:
Базовыми примерами давно дефакто стали SaschaWillems/VulkanExamples, там всё работает, ну кроме RTX(у меня intel graphics старенькая). Именно этот исчерпывающий пак рекомендуют в официальном канале для отработки навыков, подсмотреть, ну может немного для обучения. Когда-то были проблемы собилдом проектов, но по большей части из-за отсутствия и кривых ссылок ассетов, что в принципе не мешало код подсмотреть и воспроизвести его у себя.
Про не работающие игры — нужна конкретика, я слежу за тредом на реддите, и не заметил глобальных проблем не неподдерживаемыми драйверами, или еще какими-то проблемами. Единичные случаи есть, эти запросы уходят в сервис разработчикам игр, а не драйверов.
За последний год поддержка у NV и AMD стала хуже — это как поняли? Я каждую неделю обновляю стабильные и бета драйвера с поддержкой новых плюшек для Vk. Проверьте vulkan.gpuinfo.org версии драйверов для ваших видеокарт и поддержку VK, если есть хотя бы поддержка 1.1 — это уже вполне самостотятельный релиз, на котором выпустили разные Doom доты и т.д. Кстати даже Intel регулярно драйвера обновляет.
Используйте DX12, не зря поддержку Вулкана удалили из движка UE и Юнити. — где пруфы? Её недвно(в 2019) только ввели, куда удалять, зачем удалять? Да и не верю я этому утверждению.
По вашим багрепортам — хотел бы посмотреть, что за проблема, может для себя что-то узнаю полезное.

UFO just landed and posted this here

Давайте вы будете устраивать холивар в лс. Использовать или не использовать дело сугубо каждого.

Да вы белены обьелись. Вот вам скриншот из полностью пройденного Doom Ethernal, который ничего кроме вулкана не использует.


Шо на 1080ti, шо на rtx 3080 работает нормально. Дота тоже работает с вулканом, пусть фпс и ниже чем на dx11.
Вэлвовский протон использует vulkan чтобы транслировать вызовы dx9.

В каких-то аспектах я с вами полностью согласен, но считаю, что каждый сам может разобраться нужно ему это или нет.

Я работаю с Вулканом уже несколько лет — мы разрабатываем кросплатформенный продукт с единственным поддерживаемым графическим АПИ. За все время я не столкнулся с багами лично ни разу. Все проблемы с некорректной работой были связаны с неправильным использованием АПИ. Являясь постоянным участником форумов/чатов я так же НЕ могу сказать, что сломанные драйверы частая тема обсуждений. В комментарии к приведенной проблеме о сломанных примерах DiligentSamples разработчик утверждает, что никто с подобной проблемой не обращался, т.е. это единичный случай, причиной может быть что угодно. Про отказ UE и Unity от Вулкана я не слышал, и гугл, видимо, тоже. На DigitalFoundry есть подробный рассказ о Doom Eternal, где рассказывается, что мощь движка кроется как раз в использовании Вулкана. Многгие мои стим-игры, которые я запускаю под линуксом, используют Вулкан, причем они транслируют dx вызовы и все работает. Рекомедую использовать современный АПИ всем и всегда.

UFO just landed and posted this here

Т.е. вы просто игнорируете мой пост выше о том, что вулкан используется в proton трансляторе и в idtech 7

Я делаю не супер-сложный продукт, но и не просто демку. Еще я около 10 лет проработал в игровой индустрии, в том числе программистом графики. За все это время я ни разу не столкнулся с "багами GPU". Я не исключаю, что такое может быть, но когда мне говорят, что в каждая написанная демка работает некорректно и при этом обвиняют GPU — это звучит странно, и я почти уверен, что проблема в коде.

У меня была проблема с OPENGL компиляторами шейдеров. У трёх вендоров геометрические шейдеры компилировались совершенно по-разному) Поэтому пришлось наловить кучу багов прежде чем получился шейдер, который компилится нормально на всех трёх основных вендорах.

Пользуясь случаем, хотел поинтересоваться — есть ли какие-то материалы по WebGPU? Если кто не в курсе, это следующее поколение WebGL в котором будет реализован низкоуроневый подход, характерный для Vulkan. Вроде бы Tensorflow.js основанный на новом API получит прирост производительности до 10 раз.
С одной стороны уже 2 года как заявлено намерение реализовать WebGPU в Chrome. С другой стороны, до поддержки браузерами еще далеко
Есть еще страничка с примером от Babylon вот она, но у меня не запустилось, нужен Мак.

Цикл статей интересен, могу помочь с переводом.
Вулкан после openGL каким-то совсем низкоуровневым оказался, и я его с наскоку не осилил(

Был бы благодарен за помощь

UFO just landed and posted this here

По сравнению с core. С написанием шейдеров проблем не было.
В вулкане показалось сложным то, что там инструкции для видеокарты передаются не по ходу дела, а собираются в программу. Например, для двойной буферизации надо скомпилировать две программы и запускать их по-очереди. С таким подходом я теряю мощь внешнего языка программирования и должен разбираться, как сформировать программу для вулкана.
P.s. Не уверен в корректности своего утверждения, это просто моё впечатление

Eсли отчасти код GLSL шейдеров в рантайме генерится, приложению придётся с собой таскать компилятор в spir-v или как-то можно заставить его съесть GLSL?

SPIR-V байткод универсально поддерживается. Нужно только вложить его в дистриб и всё.

а glsl без "компиляции" в spirv поддерживается? мне наоборот, не вложить, а в рантайме генерировать, тогда glslangValidator с собой таскать, хоть и в виде библиотеки, или можно как-то прямо glsl скормить?

Придётся таскать с собой валидатор тогда. Всё, что не SPIR-V, это уже инструменты от третьих сторон.

Всё равно скармливается "драйверу" видеокарты, который сам по себе glsl понимает и компилировать умеет. Ровно так же как и spir, просто из промежуточного представления. Spir опять же никто руками в бинарном виде не пишет. Так что непонятно что мешает вулкану скормить видеокарте шейдер на glsl, а не через промежуточный spir.

Как ни странно, вулкан понятнее, чем OpenGL, если почитать про устройство GPU.

Как я понял, вы, по сути, решили перевести вот этотсайт целиком. Как раз по нему изучаю вулкан, но там в туториале, как по мне, много вещей не объясняется, либо объясняется сумбурно, в стиле «но вот тут у нас девайс еще занят обработкой предыдущих кадров, поэтому тут мы передаем VkFence, а вот туда — VkSemaphore», и во многом это выглядит как «доверься мне и пиши так, как я сказал, объясню в следующих главах (но не факт)». Код примера во многом синтетический, не очень хорошо объясняется, как архитектурно разбить получающуюся в туториале портянку кода. Вообще не видел примеров того, как тут сработать с многопоточностью, чего очень бы хотелось. Например, могу ли я создать VkDevice один для всех потоков, или должен создавать по одному на поток? Ну и еще куча попутных вопросов. Кстати, в комментарии под статьями там тоже стоит заглянуть. Помимо этого хотелось бы оставить ссылку на репозиторий V-EZ, там есть хорошая документация и проекты с примерами.

Спасибо за отзыв, я постараюсь раскрыть немного больше. Буду добавлять комментарии от себя. Если какой-то момент в последующих уроках вам покажется непонятным — пишите и я объясню более подробно (в меру своих знаний).

К слову о том, что мне конкретно не понравилось в том туториале — как по мне, для начала стоило бы начать с оперируемых сущностей, чтобы можно было четко сформулировать понимание того, зачем они нужны, с приведением архитектурно-понятных аналогий. Например, начать с этой схемы, обведя в ней своею рамочкой, какие сущности как по смыслу сгруппировать, где что используется. Пробежаться вкратце по всему сразу. Если можно, параллельно привести аналогии из OpenGL. Цель — от общей картины постепенно переходить к деталям, а не как на том сайте — «вот на этом этапе нам надо создать эту хрень, значит создаём. Она нам понадобится в будущем». Подход того туториала похоже на «вот эту деталь несите сюда, ту прикрутите туда, а что именно мы собираем — объясню и покажу в конце». За деревьями леса не видно. Также минус — там пишут код «с заделом на будущее», а потом непонятно какие части его заменяются; приходится открывать ссылку на готовый cpp-файл, что приведен внизу страницы, и самостоятельно соотносить, где что. Опять же, все вышеперечисленное очень субъективно.

Понял. Постараюсь сделать именно так, за картинку спасибо (буду выделять сущности, которые описаны в туториалах). Надеюсь, что смогу сделать все в лучшем виде

Я не знаю, связан ли этот web.archive.org/web/20180103131302/http://vulkanapi.ru/ сайт с вами, но там есть перевод vulkan-tuttorial.com. Я даже успел изучить материал до какого-то уровня, пока сайт не закрылся. Может найдете для себя что-то полезное. Автора не нашел, хотел предложить продлить аренду домена)

сайт со мной не связан, не видел его. Думаю, что будет полезно.
Продлевать домен не вижу смысла, так как я залью перевод на гит и он будет на сайте автора статей.
UFO just landed and posted this here
Уже есть. Обновил ссылки
Ребят, кому интересен данный цикл статей, поставьте лайк или отпишите в комменты, чтобы я знал нужно оно или нет

++
Sign up to leave a comment.

Articles