ShaderGraph и CustomFunction

Шейдеры и все-все-все.

ShaderGraph и CustomFunction

Сообщение seaman 06 июл 2019, 22:19

Привет.
ShaderGraph кто-нибудь плотно занимался?
Там есть отличная возможность делать свои кастомные ноды. Однако мне вот не хватает возможностей, либо я что-то не понимаю.
Смотрите есть кусок шейдера типа:
Синтаксис:
Используется javascript
for (int i = 0; i < 100500 && t < tmax; i++)
{
    float2 h = map(ro + rd * t);
    ...
    t += ...
}

Т.е. в цикле вызывается некая функция. На каждом проходе в нее передается параметр, меняющийся от цикла к циклу.
Оформляю этот кусок как файл, который указываю в CustomFunction.
Если эта функция внутри того же файла - все ОК. Однако мне хочется оперативно менять эту функцию. Как бы хотелось: оформить несколько таких функций как сабшейдеры и вызывать тут нужную. Еще лучше создать общий сабшейдер с кастомной функцией с этим куском кода и указывать нужную функцию map в этом сабшейдере.
Но!- так сделать нельзя. Нельзя из кода вызвать сабшейдер.
Как можно.
1. Написать кучу файлов с этим куском кода и в каждый включить нужную функцию map.
Плохо - весьма много писанины и нет оперативной замены. Особенно если понадобится еще одна map функция.
2. Оформить весь этот кусок кода не как файл, а полностью в ShaderGraph, т.е. на его нодах реализовать цикл и т.д.
Плохо - много работы в ShaderGraph и при генерации шейдера из него весьма вероятно что он будет совсем не оптимизированный.

В-общем если есть кто с подобным заморачивался - может есть что-то более оптимальное?
Что нужно - либо вызов из hlsl сабшейдера, либо даже не знаю, - разбить кастомную функцию на что-то типа корутин...
seaman
Адепт
 
Сообщения: 7983
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: ShaderGraph и CustomFunction

Сообщение seaman 07 июл 2019, 11:05

Ну в-общем похоже, что самое лучшее решение - предварительный просчет этой map-функции и сохранение результата в текстуру. А здесь просто берем значение из текстуры.
seaman
Адепт
 
Сообщения: 7983
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1