Gamedev


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
32 2 19

Vulkan API! Аноним 01/03/20 Вск 02:41:12 6457251
Vulkan-API-Tite[...].jpg (14Кб, 600x336)
600x336
vulkane-1571896[...].jpg (168Кб, 736x414)
736x414
index.jpg (7Кб, 225x225)
225x225
images.jpg (56Кб, 600x787)
600x787
ИТТ изучаем новый перспективный графический API.

Инфа по теме:
Базис - https://habr.com/ru/post/283490/
Sascha Willems, куда же без него. Уроки по теме - https://github.com/SaschaWillems/Vulkan
Хеллоу-ворлд треугольник + некоторые основы - https://vulkan-tutorial.com/Introduction
Тот же самый код, но на Си - https://github.com/johnnyw/hello-triangle-vk/blob/master/hello-triangle.c
Ещё один треугольник - https://www.gamedev.net/tutorials/programming/graphics/vulkan-101-tutorial-r4408/
Ещё немного кода, может служить примером - https://github.com/cheako/cheako-vulkan
Несколько свежих лекций на русском - https://www.youtube.com/watch?v=zyoKSa4irMU[РАСКРЫТЬ]
Урок-недоделка также на русском - https://github.com/faserg1/VulkanTest
Был ещё сайтец "vulkanapi.ru" с большим количеством уроков, но к 19 году автор забил хуй, хостинг не оплачен, сайт лежит. В вебархивах присутствует частично схороненная версия.
Книжечку с пикчи искать на торрентах, есть на русском.

Наверняка что-то забыл, позже дополню.
Аноним 01/03/20 Вск 02:41:28 6457262
Сам реквестирую что-то про применение сабжа на практике. Читать про устройство очередей, командных буферов и прочих пулов безусловно интересно, но не совсем ясно в каком виде все это добро эффективно применять ИРЛ. Разве что в исходниках готовых проектов копаться.
Аноним 01/03/20 Вск 02:49:09 6457283
Это уж точно не для индей. Это если ты хочешь в Эпик устроиться уеч писать - делаешь демку для портфолио, и тебя зовут.
Аноним 01/03/20 Вск 07:16:57 6457364
>>645728
>точно не для индей
Vulkan сложнее ГЛ?
Аноним 01/03/20 Вск 08:20:13 6457395
Аноним 01/03/20 Вск 09:25:02 6457456
>>645739
Сложнее вообщем или при одинаковом результате требует большей квалификации
Аноним 01/03/20 Вск 09:58:01 6457477
>>645725 (OP)
>Another alternative is to use an engine like Unreal Engine or Unity, which will be able to use Vulkan while exposing a much higher level API to you.
Всё, можно закрывать тренд.
Аноним 04/03/20 Срд 18:46:10 6465468
Аноним 04/03/20 Срд 19:35:42 6465589
>>645725 (OP)
У меня бомбит пукан от вулкана, как-то пробовал вкатиться, просидел часа 3, чтобы вывести сраный треугольник, насколько же многословное и муторное апи, нихуя не понятно.
Опенгл кор профиль - нужно в десять раз меньше кода, чтобы вывести этот треугольник, все намного логичнее и понятнее.
Так что согласен, что пукан не для инди, ты будешь два года писать рендер вместо игры. На том же опенгл гораздо быстрее это сделать, и для инди перфоманса хватит
Аноним 04/03/20 Срд 20:45:48 64656910
Аноним 04/03/20 Срд 20:47:04 64657011
>>646558
Вулкан это более низкоуровневое апи, он нужен для ААА проектов.
Аноним 04/03/20 Срд 20:47:04 64657112
Говно, не нужно. Бессмысленная бюрократия с заполнением сотен параметров.
Аноним 04/03/20 Срд 20:49:03 64657313
>>646546
Производительно в два раза больше и графоний попиздаче.
Аноним 04/03/20 Срд 20:52:40 64657614
>>646570
Этим должны заниматься инженеры-гайковёрты, а не инди-кодерки.
Вулкан специально придумали, чтобы повысить планку входа.
Верните мне мой glBegin - glEnd!
Аноним 04/03/20 Срд 20:54:22 64657915
>>646576
Инди кодерки получат удобный фреймворк который напишут инженеры задроты.
Аноним 04/03/20 Срд 21:03:11 64658216
>>646573
Мне кажется достойная награда за еблю с api.
Аноним 05/03/20 Чтв 17:13:36 64676217
проблема вот в чем - есть вывод треугольника - но блядь нигде нет толкового минимального примера вывода нескольких треугольников в виде гайда.

да и вообще - какого мудозвона эти идиоты пишущие уроки по вулкану код собственно вывода треугольника размещают в том же месте где и код связи с контекстом? а Я потом сижу и офигиваю не понимая как разделить мух от котлет
Аноним 05/03/20 Чтв 18:22:57 64679218
>>646762
Дальше вывода треугольника никто и не заходит, зачем запариваться?
Аноним 07/03/20 Суб 05:38:33 64708019
>>646569
Когда ты начнешь писать полноценный рендерер со всякими множественными проходами, анимацией, динамической геометрией и хитрым рендерингом ландшафта, то разница будет не такая большая, и вулкан даже может оказаться проще, потому что не нужно бороться с легаси костылями.
Аноним 07/03/20 Суб 12:30:48 64712220
>>647080
В принципе все эти сложные настройки будут спрятаны за тонами абстракций и можно будет сделать такой же краткий кода на на GL.
07/03/20 Суб 19:38:08 64721621
Аноним 09/03/20 Пнд 05:20:25 64754322
вот бы где-нибудь найти прям самый минимальный минимальный рендер движок-пример как этот ваш вулкан юзать

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

Но именно пример, а не либы типа bgfx где за тоннами абстракций ничерта не разобрать
09/03/20 Пнд 11:08:28 64756923
>>647216
Проходите с миром дальше, гражданин.
Аноним 09/03/20 Пнд 17:07:58 64764124
>>647543
В составе SDK есть кое-какие примеры. Но в реальном рендере будут как раз тонны абстракций.
Аноним 10/03/20 Втр 03:19:22 64772425
>>647641
да все эти примеры - вывод треугольника на экран. этого было достаточно во времена OpenGL 1.1, но эти примеры вообще никак не показывают как пользоваться вулканом
Это как если бы все книги по программированию заканчивались на hello world, а дальше сами как-нибудь

>>Но в реальном рендере будут как раз тонны абстракций.
Абстракции бывают разной сложности. Тем более что эти абстракции часто "пахнут" - содержат кучу устаревшего кода, говнокода и сломанной архитектуры накопившиеся за годы разработки и смену гапи с какого-нибудь DX9 (например bgfx)
Аноним 10/03/20 Втр 22:55:17 64798326
>>646792
>>647543
>>647724

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

А вообще, что вы разнылись то.
Вот же вывод целого дома из туториала с оп-поста
https://vulkan-tutorial.com/Loading_models

Алсо рекомендую смотреть Капулькина, интересный чел, шарящий в графике.
https://www.youtube.com/channel/UC-ezuDjNxEbCiba829s7gSQ
https://zeux.io/

Мимопроходил
Аноним 17/03/20 Втр 21:46:27 64968827
OpenGL проектировался когда были другие архитектуры железа. Мультипроцессорность была только в теории, и считалась уделом суперкомпьютеров и ненужной для пользовательских ПК.
Можно привести аналогию: OpenGL == C++, Vulkan == асинхронный Assembler + hardware threads. Например, в C++ сейчас довольно много архитектурных косяков, которые пытаются решить новыми стандартами, объявляют какие вещи устаревшими, потому что они концептуально неверны и не подходят под современные реалии.
Но, при этом, вы можете всё то же самое написать на ассемблере, но нужно намного лучше понимать, как работает процессор и ОС, самому писать примитивы синхронизации, и т. п.

Для этих же целей и создавался вулкан. Для программирования на нём, нужно знать все тонкости железки, читать кучи пейперов от той же НВидии, исследовать, придумывать новые фичи для современных архитектур с нуля, которые изначально были придуманы в OpenGL, но для старого железа.
Т. е. на Вулкане нужно делать больше руками, больше оптимизировать. Вместо одного вызова функции OpenGL, на вулкане придётся несколько сотен строк написать. При этом, если вы не понимаете какой-то одной тонкости, вы сделаете менее эффективнее то, что изначально было хорошо реализовано в OpenGL. К тому же, OpenGL умеет выбрасывать ошибки, в случае, когда вы где-то накосячили. Вулкан же их не выбрасывает, он полагается на то, что вы уже знаете как этим пользоваться. Точно так же, как ассемблер просто меняет состояние регистров, у него нет понятия ошибки. Как интерпретировать эти регистры, зависит от того, насколько хорошо разработчик читал мануал к процессору.

В итоге, я бы ответил так:

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

Если же вы пишете простые прикладные вещи, которым нужно показать какую-то графику, то учите OpenGL. Здесь вы учите только API, соглашаясь с уже готовым, слегка устаревшим, архитектурным дизайном.

Если хотите писать игры не мирового класса, то учите готовые движки, Unity или Unreal. Они уже поддерживают за вас Vulkan, продумали за вас API и архитектуру.
Аноним 18/03/20 Срд 03:48:16 64971728
>>649688
на самом деле нет, всё не так. Люди ковыряющие Direct3D 11 на серьезном уровне уже все тоже самое делали что теперь дает вулкан, и также делали руками.

И когда говорят что на вулкане треугольник выводится в мульон строк, а на огл в пару - то вообще-то сравнивают с ОГЛ 1.0 с его glBegin/glEnd (которые никто уже давно не использует).
Кроме того из этого мульона строк, 90% строк - инициализация контекста вулкана. А количество строк для вывода треугольника столько же сколько для OGL 4.3/D3D11

Зачем вообще вулкан настолько мистифицируют? это не ассемблер и даже не рядом. Как раз наоборот. OpenGL - это Си. Vulkan - это java. Вулкан дает больше, он гибче, но в нем больше теории и нужно другое мышление.

Или даже другой пример - шейдеры. когда-то был fixed-pipeline который делал всё за тебя: освещение, тени, постэффекты, даже матрицы и трансформации - все это делала сама видеокарта. Потом ввели шейдеры и убрали fixed-pipeline, заставив программистов самостоятельно писать свое освещение, тени, постэффекты, матрицы.

Стало ли сложнее? первоначально да, тогда тоже ругались. Но теперь нет - сейчас любой художник через какой-нибудь визуальный редактор пишет шейдеры


Собственно сложность текущего вулкана:
- вулкан требует другого мышления (из просмотренного мною кода в гитхабах большинство не могут в туже многопоточность, потому что все еще мыслят в терминах OGL/DX, и почти никто не понял фишки физ/лог устройств)
- сейчас нет внятной теоретической документации объясняющей новую терминологию - теже очереди например

низкоуровневость и многАкода - это не сложно. Кому от этого сложно - вы не программисты

Аноним 18/03/20 Срд 06:12:25 64972429
>>649717
Игры то пилишь? Показувай.
Аноним 18/03/20 Срд 08:14:19 64973130
image.png (869Кб, 1000x700)
1000x700
Аноним 18/03/20 Срд 08:44:21 64973531
>>649717
>Люди ковыряющие Direct3D 11 на серьезном уровне уже все тоже самое делали что теперь дает вулкан
Ну-ка расскажи как они обошли неявное управление памятью драйверами D3D 11?
Аноним 18/03/20 Срд 09:49:59 64975232
>>649735
ну во-первых менеджер памяти в вулкане не обязательно писать.
во-вторых в D3D11 был blob (тобишь кусок сырых данных отправленный в видеокарту)
Аноним 26/03/20 Чтв 16:23:08 65125433
>>647543
SaschaWillems на гитхабе. В свое время отсосал бы этому чуваку за его примеры.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов