Войти
ПрограммированиеФорумГрафика

Vulkan API (вышел!) (402 стр)

Страницы: 1401 402 403 404407 Следующая »
#6015
13:33, 2 дек. 2019

Suslik

сколько человек портировали и сколько заняло времени?


#6016
(Правка: 13:42) 13:35, 2 дек. 2019

innuendo
полтора человека, пару месяцев. перед этим я ещё полгода дома намечал, как оно может быть (на домашнем проекте).

#6017
13:39, 2 дек. 2019

Suslik

и сколько всего пейплайнов у вас получилось ? шейдера offline компилятся?

#6018
(Правка: 13:44) 13:41, 2 дек. 2019

innuendo
у нас как бы из-за "особенностей" рендера в игре около 200000 уникальных шейдеров. примерно столько же, соответственно, пайплайнов. одновременно активных обычно около сотни. шейдера все по возможности компилятся оффлайн, но иногда могут генериться новые, которые приходится компилить онлайн.

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

#6019
13:45, 2 дек. 2019

Suslik
> но иногда могут генериться новые, которые приходится компилить онлайн.

и как это для сабжа вы делаете ?

#6020
13:49, 2 дек. 2019

innuendo
у нас вся система материалов динамическая. то есть к любому существующему материалу (графу) может в рантайме добавиться любой эффект (тоже граф), причём в любом количестве. например, к материалу монстра может добавиться эффект горения, если его поджечь, молния, если на него при этом наложить shock и ещё светящаяся аура, если он магический. большинство шейдеров берутся именно из-за всевозможных комбинаций подобных эффектов.

#6021
13:54, 2 дек. 2019

Suslik

думаешь, я не знаю как делается в разных движках ? :)
конкретно интерисует как сделано в порте под вулкан когда нужно в онлайне скопмилить шейдер

#6022
(Правка: 13:57) 13:56, 2 дек. 2019

innuendo
как-как, да как обычно. по графу генерится hlsl и компилится в spirv. точно так же, как в любом другом api.

#6023
13:58, 2 дек. 2019

Suslik
> и компилится в spirv

как конкретно - можешь код показать ?

#6024
14:24, 2 дек. 2019

Suslik
> у нас как бы из-за "особенностей" рендера в игре около 200000 уникальных
> шейдеров. примерно столько же, соответственно, пайплайнов
вообще-то  шейдера могут быть с разными стейтами

#6025
14:41, 2 дек. 2019

innuendo
> думаешь, я не знаю как делается в разных движках ? :)
И как же?
В дум и вольфенштейн я видел кучу бранчей под разные эффекты, зато пайплайнов немного, около 300.

Suslik
> у нас в poe, например, для каждого пасса фиксировано, используется в нём буфер
> глубины или нет, пишется в него или нет, дроколлы не имеют право это сами менять.
Ну вот в дум в одном рендер пассе может быть включена или выключена запись глубины, может меняться стенсил.
Я под это адаптировал.

#6026
14:46, 2 дек. 2019

/A\
> И как же?

разные способы есть

> В дум и вольфенштейн я видел кучу бранчей под разные эффекты, зато пайплайнов
> немного, около 300.
динамические ?

#6027
15:06, 2 дек. 2019

innuendo
> динамические ?
Конечно, иначе при декомпиляции их не было бы.

#6028
15:08, 2 дек. 2019

/A\
> иначе при декомпиляции их не было бы.

а статические как же ?

#6029
15:13, 2 дек. 2019

innuendo
> а статические как же ?
Через специализацию констант? Как-то не обращал внимания. Но конкретно там было чтение булов из юниформ.

Страницы: 1401 402 403 404407 Следующая »
ПрограммированиеФорумГрафика