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

Direct3D 12 (3 стр)

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

Страницы: 1 2 3 4 516 Следующая »
#30
18:17, 26 мар. 2015

"Всё уже украдено до нас" (c)


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

asvp
> Vulkan API - это копипаст с Directx12 и Mantle.
Vulkan это и есть мантл ;)

#32
18:46, 26 мар. 2015

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

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

Demiurg-HG
> Альтернатив нет от слова вообще.
Вот специально разработали альтернативу. Быстро компилируется, мгновенно переключается, удобно и практично.
https://msdn.microsoft.com/en-us/library/windows/desktop/ff471420(v=vs.85).aspx

Пример тут:
https://msdn.microsoft.com/en-us/library/windows/desktop/ff471421(v=vs.85).aspx

#34
18:58, 26 мар. 2015

Demiurg-HG
> Кроме того, тут я предлагаю способ контроля — ты заранее создаешь все комбинации в виде выражения.
Всё это вылезает в итоге в FFP. Ну а зачем тогда шейдеры придумывали, а именно для тоо, чтобы люди сами писали.

> Разве что генерировать код шейдеров самому, но от этого как-то не легче.
Я именно пошел по такому пути. Framework предоставляет инструменты для создания, управления, подключения шейдеров к конвейеру.
На а как они написаны - это не его уже дело. Есть базовый набор простых (стандартных) шедеров, например, для Z-Pass прохода, которые уже встроены в  Framework.

Ну не знаю Ubershader точно никогда юзать не буду.

#35
19:03, 26 мар. 2015

Che@ter
> Быстро компилируется, мгновенно переключается, удобно и практично.

Медленно-c

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

innuendo
> Медленно-c
Медленно компилируется или переключается?

#37
19:18, 26 мар. 2015

Che@ter
> переключается?

#38
19:39, 26 мар. 2015

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

#39
19:45, 26 мар. 2015

Che@ter
> Прям таки медленно?

По словам чуваков, хорошо знающих железо, которые DX11 классы - не особо шустро были. Про DX12 - не знаю

#40
23:42, 26 мар. 2015

Ну всё, теперь только vkontakte API!

#41
1:16, 27 мар. 2015

Necrys
> Этапять!
ты такой наивный... не было нового DX, не было. И тут бац, вместе с анонсом мантл появилось. и так можно было догадаться откуда оно растет

#42
10:55, 27 мар. 2015

>и так можно было догадаться откуда оно растет
Из Glide API ?)

#43
13:45, 27 мар. 2015

Che@ter
> Вот специально разработали альтернативу. Быстро компилируется, мгновенно
> переключается, удобно и практично.
Dynamic Shader Linkage никому не нужный хлам, поясняю:
1. Эта штука доступна только в D3D 11.
2. Компилятор не сможет оптимизировать весь шейдер. В лучшем случае по кускам.
3. GPU, как известно, такое не могет, и поэтому это фишка драйвера. И эта штука будет делать каждый DrawCall еще тяжелее, т.к. только на вызове DrawCall'а будет ясно, какой именно из кэшированных байткодов заливать в ShaderCore.

Тут подробнее.

asvp
> Всё это вылезает в итоге в FFP.
Лолшто?

> Ну а зачем тогда шейдеры придумывали, а именно
> для тоо, чтобы люди сами писали.
Ты сам и пишешь для своих нужд один большой шейдер с дефайнами.

asvp
> Есть базовый набор простых (стандартных) шедеров, например, для Z-Pass прохода,
> которые уже встроены в Framework.
А если надо, то чего в твоем фреймворке нет?
Кроме того, Ubershader строится практически без дополнительных усилий, т.к. препроцессинг код уже есть в компиляторе.
Не надо вообще думать о каком либо фреймворке с шейдерами. Просто передал список дефайнов и все становится хорошо.

#44
13:57, 27 мар. 2015

Demiurg-HG
> 1. Эта штука доступна только в D3D 11.
Много чего доступно только в D3D11, не вижу проблемы.
> 2. Компилятор не сможет оптимизировать весь шейдер. В лучшем случае по кускам.
Кучки зачастую делают разные вещи. Врядли разница будет ощутима.
> 3. GPU, как известно, такое не могет, и поэтому это фишка драйвера. И эта штука
> будет делать каждый DrawCall еще тяжелее, т.к. только на вызове DrawCall'а
> будет ясно, какой именно из кэшированных байткодов заливать в ShaderCore.
Ну либо так, либо поиск нужного убершейдера из комбинаций - какая тогда разница?

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

Тема в архиве.