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

Потестите шейдерный движок, плиз.

Страницы: 1 2 3 Следующая »
#0
19:51, 2 дек. 2016

Написан на DX12 потому будет работать ТОЛЬКО НА WINDOWS 10!

Собственно движком это называть наверно не стоит, но скажем шейдерный плейер с возможностью изненений параметров из GUI панели.
Программа открывает два окна, одно для результата работы шейдера, второе - окно GUI. Если на компьютере стоит больше одной видеокарты (или одна внешняя и одна встроенная), то окошки запускаются на разных адаптерах. Я тестировал движок на моей системе на 4х картах (Titan Black, AMD Nano, встроенный Интел и мелкософтовский эмулятор) - все вроде работает на любом сочетании (с разной производительностью, разумеется). Потом на AMD 280 и встроенной - работает.  Запускал на ноутбуке где Интел и эмулятор - тоже работает (очень медленно). Еще запускал на ноутбуке с Carizzo - там находит только одну видеокарту (даже эмулятора нет), но вроде тоже работает.
Больше у меня компов под рукой нет но меня очень интересует, как это будет себя вести на картах Nvidia и особенно на конфигурациях с SLI/CrossFire.

В качестве примеров я надергал шейдера с shadertoy - их только пришлось чуток адаптировать под HLSL. Там есть разные шейдера от довольно легких, до очень тяжелых. После первого старта (если у вас больше одной карты) программа попросит выбрать адаптеры для основного рендеринга и GUI. Потом спрашивать не будет, но можно поправить руками текстовый файл: ~AppData\Roaming\SanBaseStudio\Shader Engine\Adapters.ini - там просто номера адаптеров, первый для рендеринга, второй для GUI (или удалите его - тогда опять увидите список адаптеров).
Что бы сменить шейдер кликните на Preset -> Select, открется меню где можно выбрать имя и два раза кликнуть на нем.

Второе что я хотел бы проверить - как будет работать межадаптерный обмен на разных конфигурациях. Для этого кликните на любую кнопку под Param, например Colors или Facture.  В окошке слева (где график изменения параметров) должна появиться картинка с динамической текстурой (они меняются).  Текстуры формируются основным рендером а показывается адаптером GUI. Разные карты имеют разные возможности в части кроссадаптерного обмена, потому я не уверен что учел все варианты.

Короче буду благодарен за фидбек.
Вот ссыйка: http://sanbasestudio.com/tmp/ShaderEngine.rar

Поскольку надо установить кучу файлов, я сделал инсталлятор. Все файлы с шейдерами и текстурами будут лежать в  ~AppData\Roaming\SanBaseStudio.  В C:\Programs Files(86)\SanBaseStudio только сам движок и редактор шейдеров (кстати довольно полезная вещь).


#1
21:26, 2 дек. 2016

А почему не DX11 в минимуме ?  Ну Windows 10 ладно, но DX11-то за что ?

#2
23:18, 2 дек. 2016

Ругается при старте на MSVCP140.DLL  что типа повреждён. Не запускается. Windows 10. Runtime от VS2015 установлен.

#3
23:22, 2 дек. 2016

bykabak
> А почему не DX11 в минимуме ?  Ну Windows 10 ладно, но DX11-то за что ?
Ну поскольку хотел освоить DX12, все равно в ту сторону придется дрейфовать рано или поздно. Да и хотелось выжать все соки из железа. Кстати это удалось.

> Ругается при старте на MSVCP140.DLL  что типа повреждён. Не запускается. Windows 10. Runtime от VS2015 установлен.

Оппа.. Вот это интересно... Я такого не наблюдал. Может надо SDK установить, у меня вроде на всех машинах стоит, может в этом дело? Хотя какая связь между SDK и аппликацией собранной со статическими библиотеками - непонятно.

П.С.
А может у тебя действительно файл поврежден?

#4
23:29, 2 дек. 2016

Windows 10  GTX760  Runtimes стоят  Должно без SDK работать.

ошибка | Потестите шейдерный движок, плиз.
#5
23:30, 2 дек. 2016
А может у тебя действительно файл поврежден?

Мои проекты собранные с помощью VS2015 работают.

#6
23:43, 2 дек. 2016

san
а волшебный /MT в релизе стоит?

#7
0:07, 3 дек. 2016

Laynos
> а волшебный /MT в релизе стоит?
А вот это может быть... Стоит /MD. Щас пересоберу.

#8
1:46, 3 дек. 2016

GTX 1080, i7-3770: все четко, 121 кадр, пресеты меняются, текстуры показываются, но я не раздуплился почему любое изменение(а было ли?) в интрефейсе никак не влияло на шейдерную картинку? Только по пресету вцелом

#9
4:56, 3 дек. 2016

bykabak
Пересобрал и перезалил ссылку. Надеюсь теперь должно заработать.

Che@ter
>GTX 1080,
У тебя одна карта все рендерит или GUI ты запустил на встроенной?

>121 кадр,
У твоего монитор рефреш 120 фреймов? А то у меня стоит жесткая синхронизация от v-sync, потому меня удивило такое большое значение :)

> почему любое изменение(а было ли?) в интрефейсе никак не влияло на шейдерную картинку? Только по пресету вцелом

Дело в том, что пресеты не делались специально под этот движок, и там просто не предусмотрено управление (как я сказал, я просто надергал их из shadertoy).  Когда я отлажу программу я буду писать шейдера специально под движок, тогда все будет работать как надо.

В шейдер передается 8 векторов float4, их состояние и отображается на панели. А что с ними делать - это уже шейдер должен решать. Туда же передается ползунки вращения и позиции камеры. Но опять же использовать или нет эту информацию - решает шейдер. В некоторых можно двигаться и вращать картинку, в других нет.
Помимо параметров в шейдер передаются 5 текстур каждая из которых состоит из 8 слоев. К ним можно обращаться например так:
vec4 color = facture_tex(num, uv, mip);
где float num - это номер слоя (от 0 до 7, если поставить num = 1.5 будет смесь из 1 и 2 слоя)
float2 uv - координаты (0-1)
float mip - мипуровень (0-1 , то 0 - текстура во всем разрешениии, 1 - максимальный мип уровень - 1/64)
Посмотреть на все входные параметры можно в файле  ~AppData\Roaming\SanBaseStudio\Shader Engine\data\shaders\Input.hlsl

#10
5:46, 3 дек. 2016

imac 27, win10x64. Работает.

#11
9:21, 3 дек. 2016

Заработало. GTX760 в окне по умолчанию 30 FPS

Но не очень понятна суть проекта. В меню программы, чтобы я не делал, ничего не меняется на сцене. Какой практический смысл ? Быстрая визуальная отладка шейдера ?

Удалось что-то изменить на сцене... не понятно как.  При нажатии Preset , Edit - выводится такое же окно как я выложил выше. :(

В чём  польза от проекта ?

#12
15:37, 3 дек. 2016

san
> У тебя одна карта все рендерит или GUI ты запустил на встроенной?
GUI выбрался как "Microsoft Basic Display Adapter" - вторым пунктом.

> У твоего монитор рефреш 120 фреймов? А то у меня стоит жесткая синхронизация от
> v-sync, потому меня удивило такое большое значение :)
угу

> Дело в том, что...
Тоесть я так понял, что это было нормальным поведением для данной демки?

Я прошел тесты? :)

#13
15:42, 3 дек. 2016

gf690, win10 x64, окно по умолчанию  - 30-33fps
Это шутка юмора такая?

#14
16:00, 3 дек. 2016

san
> Оппа.. Вот это интересно... Я такого не наблюдал. Может надо SDK установить, у
> меня вроде на всех машинах стоит, может в этом дело? Хотя какая связь между SDK
> и аппликацией собранной со статическими библиотеками - непонятно.

А где наш любитель DXDebug ? Пусть поможет

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

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