Продолжаем изучать визуальный редактор шеидера.
Создадим простенький шеидер, который будет менять яркость текстуры от черного к белому.
Для этого подмешаем в вектор наше значение, и выведем это значение в меню материала. Поможет нам в этом нода ScalarUniform.
(все ноды uniform по сути служат для того чтобы выводить значение в меню)
И теперь меняя значение в меню Shader Param мы можем видеть сразу результат во вьюпорте.
Обратимся к этому параметру шеидера через код. Например сделаем так, чтобы при наведении на спрайт мышкой он становился белым.
Пишем код :
(Я создал скрипт прямо на спрайте. )
Результат:
Теперь что касается вершинного шейдера.
В верхней части есть три раздела.
Fragment — позволяет нам работать с пикселями. Цвет, размер, координаты текстуры , и все прочее.
Vertex — позволяет нам трансформировать непосредственно «плоскость» текстуры.
Соответственно переключаемся в Vertex, и перед нами новый блок.
Добавим ноду инпута Vertex, чтобы оперировать локальными данными, и добавим VectorOp, для того чтобы наглядно рассмотреть как это всё работает.
Если мы сейчас будем менять данные vectorCompose, то увидим что наши координаты вертексов начинают реагировать на это.
Если вбить в X допустим 10 , то текстура спрайта сдвинется на 10 пикселей.
Можно делать какие то анимации непосредственно в шеидере.
Например вот такое покачивание:
Годо переводит наши ноды в фоновом режиме в классический код. Если мы нажмем иконку «листа» в редакторе, то в правой части можно наблюдать непосредственно сам код.
Таким образом можно собирать блоки, и наблюдать как «пишется» наш код.
Это можно использовать в образовательных целях.
В следующей статье создадим и подключим шейдер который будет модифицировать всю сцену целиком. И сделаем выводы.
Надеюсь вам был полезен этот материал.
Подписывайтесь на канал, и вступайте в группу в ВК.