Size: a a a

Rust GameDev — русскоговорящее сообщество

2020 December 28

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
@Madwareus Ну у меня в библиотеке там разные гибридные подходы используются. Где целесообразно specialization constants, где-то через буфферы, ну и конечно многопроходность тоже. Там более 20 узкоспециализированных шейдеров работают. Но тем не менее все собираются один раз при запуске. Ничего динамически не догружается.
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: > <@theoraclebot:matrix.org> <code>eliah_lakhin</code><br>А вы в wgpu подменяете шейдер, не меняя pipeline? :) (re @MattisOpBot: kvark: specialization constants не меняют твой pipeline layout, так что будет медленнее)

Нет, конечно. Там тоже есть specialization constants. Но ты всегда можешь создать новый pipeline с новым шейдером, неизвестным в compile time
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Ну то есть выходит, что по факту ваша динамическая загрузка шейдеров в плане производительности рушит весь выигрыш он использования Vulkan тогда :)
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: > <@theoraclebot:matrix.org> <code>eliah_lakhin</code><br>Вулкан он сам по себе довольно утопичен, надо сказать. Но вообще видеокарта не очень рассчитана на постоянную перезагрузку шейдеров. Это само по себе работает не быстро. Поэтому динамические шейдеры в компьютерной графике плохая идея. Понятно, что их по факту всё равно используют, но и если так говорить, то игр, которые по-нормальному используют Vulkan API, а не тяп-ляп, тоже не много. (edited)

Эти соображения противоречат реальности. Вулкан создавался для реальных проектов. Реальные проекты (GTA, к примеру) собирают шейдера динамически. Всё.
Ваша обёртка сильно урезает вулкан, на ней не напишешь GTA.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
С тем же успехом можно использовать обычный OpenGL, там по крайней мере нет необходимости настраивать аттачменты, дескрипторы и прочую лабуду
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
А GTA он на Вулкане писался?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Ну пусть Red Read Redemption. Не суть важно. И вообще, мало кто пишет под вулкан. Портируют на него, скорее.
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: > <@theoraclebot:matrix.org> <code>eliah_lakhin</code><br>Ну то есть выходит, что по факту ваша динамическая загрузка шейдеров в плане производительности рушит весь выигрыш он использования Vulkan тогда :)

Нет. По-факту, есть вулкан тот, который создавала рабочая группа в Khronos, а есть тот, что вы видете как "правильный", и под который создавался Vulkano, и это разные вулканы
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: ессно ваш менее практичен из-за ограничений
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Ну, на него я думаю портируют как попало. У них как-то там написано под условный OpenGL, они наверное на коленке портируют, чтобы он просто был Vulkan-совместим. А RDR вообще говоря консольная игра, там свой же зоопарк. )
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Если говорить о практичности, то по-моему куда более практичный проект это mini/macroquad. Он с одной стороны кроссплатформенный, с другой не заставляет пользователя заморачиваться так уж сильно со спецификой Vulkan-подобных API. Для инди-проектов, не требующих слишком глубокой микрооптимизации, по-моему более чем хорошее решение.
источник

p

polunin.ai in Rust GameDev — русскоговорящее сообщество
operator
kvark: Ну пусть Red Read Redemption. Не суть важно. И вообще, мало кто пишет под вулкан. Портируют на него, скорее.
BG3 тоже портировали? там с вулканом ФПС падает раза в 3-4 чем с директх
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
> есть вулкан тот, который создавала рабочая группа в Khronos, а есть тот, что вы видете как "правильный", и под который создавался Vulkano, и это разные вулканы

Вообще, у нас вполне аккуратно повторяют Vulkan API, в строгом соответствии со спецификацией, в отличие, между прочим, от WGPU, который как раз придумывает свои абстракции, и свой API, но при этом не сильно заботится о корректности конечной системы.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Из положительных сторон WGPU я бы отметил то, что он все же является кроссплатформенным, и умеет переключаться между DirectX, Vulkan, Metal, WebGPU. И это на самом деле очень важная характеристика.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
К примеру, если планируется создавать игру для широкой аудитории пользователей, то выбирая между Vulkano и WGPU, я бы конечно порекомендовал WGPU.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Но, подчеркну, если выбирать только лишь между этими двумя альтернативами :)
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Почти любая сложная игра использует свою абстракцию, которая внизу транслируется в вулканы, директиксы и прочие проприетарщины консольные
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Wgpu как раз может занять место такой штуки, если только ограничения не окажутся слишком жесткими
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
А вообще я надеюсь на более широкое распространение вулкана. Не так уж он сложен в использовании, как его считают
источник

p

polunin.ai in Rust GameDev — русскоговорящее сообщество
Roman
А вообще я надеюсь на более широкое распространение вулкана. Не так уж он сложен в использовании, как его считают
Но он сложнее. А зачем сложнее если можно взять проще и не требуется ничего сложного?
источник