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

Direct3D 12 (2 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 421 Следующая »
#15
16:32, 26 мар. 2015

Che@ter

Подпрограммы ?


#16
16:32, 26 мар. 2015

Che@ter
Не понял, там один скомпилированный шейдер (vs->...->ps) на стейт?

Правка:
Понял, там устанавливаешь один PipelineState, и на все комбинации шейдеров придется делать отдельный стейт.

#17
16:49, 26 мар. 2015

Demiurg-HG
> Суть: у нас есть заданные наборы дефайнов для шейдеров, при загрузке мы
> смотрим, какие дефайны выставлены, и на основании этого настраиваем PSO.
Не хочу делать убер шейдеры. Не хочу дефайнов. Только динамическая линковка. Для вершинного шейдера совсем не важно что там делает пиксельный. Толи это материал, толи shadowmapping, толи вообще в 3д текстуру растеризирую. Для пиксельного наоборот - не хочу знать откуда берется геометрия.

#18
16:50, 26 мар. 2015

Che@ter
> Не хочу делать убер шейдеры. Не хочу дефайнов. Только динамическая линковка.
> Для вершинного шейдера совсем не важно что там делает пиксельный. Толи это
> материал, толи shadowmapping, толи вообще в 3д текстуру растеризирую. Для
> пиксельного наоборот - не хочу знать откуда берется геометрия.

Тебя давно уже ждут в GL :)

#19
16:54, 26 мар. 2015

innuendo
> Тебя давно уже ждут в GL :)
Только не это!

В DX11 это было возможным. Посмотрим насколько долго создаются эти bundles если придется сделать что-то подобное...

#20
16:57, 26 мар. 2015

Che@ter
> Для пиксельного наоборот - не хочу знать откуда берется геометрия.
А я пошел дальше и разделил код шейдера материала и прохода рендера, то есть один и тот же код материала подойдет для forward и deferred lтехник, а они уже сами добавят нужный код. Но получается убершейдер в итоге))

#21
17:05, 26 мар. 2015

Стоп. Серьёзно, Шин10?!

#22
17:10, 26 мар. 2015

/A\
> то есть один и тот же код материала подойдет для forward и deferred lтехник, а
> они уже сами добавят нужный код
В DX11 опять же были введены Dynamic Shader Linkage - пишем классик материала, а кто ему данные дает - неважно.

#23
17:12, 26 мар. 2015

Che@ter
> Не хочу делать убер шейдеры. Не хочу дефайнов. Только динамическая линковка.
> Для вершинного шейдера совсем не важно что там делает пиксельный. Толи это
> материал, толи shadowmapping, толи вообще в 3д текстуру растеризирую. Для
> пиксельного наоборот - не хочу знать откуда берется геометрия.
Это уже было сделано в Direct3D 9, и Direct3D 10, и Direct3D 11... только теперь это придется писать самому, а не использовать уже готовый кэш стейтов на уровне драйвера.
Ubershader — это прекрасная штука, которая позволяет перебрать все комбинации на этапе инициализации. И вообще сделать код более декларативным, что есть хорошо.

#24
17:17, 26 мар. 2015

Demiurg-HG
> только теперь это придется писать самому, а не использовать уже готовый кэш
> стейтов на уровне драйвера.
То есть если этот кеш был в драйвере/гпу/не важно где, а теперь у меня, то тогда ок.

> перебрать все комбинации на этапе инициализации
Вроде и да, но время компиляции...

#25
17:23, 26 мар. 2015

Che@ter
> > Тебя давно уже ждут в GL :)
> Только не это!

Зато хоть прям сейчас можешь пощупать DX12 фичи из п 0

#26
17:24, 26 мар. 2015

Demiurg-HG
> Ubershader — это прекрасная штука, которая позволяет перебрать все комбинации на этапе инициализации. И вообще сделать код более декларативным, что есть хорошо.
Не ради холивара, но знаешь сколько таких комбинаций может быть. И Ubershader тяжело читать и понимать как они работают с его кучей ifdef'ов.

#27
17:56, 26 мар. 2015

Лоол

Изображение
#28
18:13, 26 мар. 2015

Mr F
Этапять!

#29
18:14, 26 мар. 2015

Mr F
Lol

Mantle - это копипаст с Directx12.
Directx12 - это копипаст с Mantle.
Vulkan API - это копипаст с Directx12 и Mantle.

Страницы: 1 2 3 421 Следующая »
ПрограммированиеФорумГрафика