Найти тему
Игровой движок Godot engine

№79. Visual Shaders. Визуальный редактор шеидера. Часть №2.

Продолжаем изучать визуальный редактор шеидера.

Создадим простенький шеидер, который будет менять яркость текстуры от черного к белому.

Для этого подмешаем в вектор наше значение, и выведем это значение в меню материала. Поможет нам в этом нода ScalarUniform.
(все ноды uniform по сути служат для того чтобы выводить значение в меню)

И теперь меняя значение в меню Shader Param мы можем видеть сразу результат во вьюпорте.

-2

Обратимся к этому параметру шеидера через код. Например сделаем так, чтобы при наведении на спрайт мышкой он становился белым.

Пишем код :
(Я создал скрипт прямо на спрайте. )

-3

Результат:

-4

Теперь что касается вершинного шейдера.
В верхней части есть три раздела.

-5

Fragment — позволяет нам работать с пикселями. Цвет, размер, координаты текстуры , и все прочее.
Vertex — позволяет нам трансформировать непосредственно «плоскость» текстуры.

Соответственно переключаемся в Vertex, и перед нами новый блок.

-6

Добавим ноду инпута Vertex, чтобы оперировать локальными данными, и добавим VectorOp, для того чтобы наглядно рассмотреть как это всё работает.

-7

Если мы сейчас будем менять данные vectorCompose, то увидим что наши координаты вертексов начинают реагировать на это.
Если вбить в X допустим 10 , то текстура спрайта сдвинется на 10 пикселей.

-8

Можно делать какие то анимации непосредственно в шеидере.
Например вот такое покачивание:

-9

Годо переводит наши ноды в фоновом режиме в классический код. Если мы нажмем иконку «листа» в редакторе, то в правой части можно наблюдать непосредственно сам код.

-10

Таким образом можно собирать блоки, и наблюдать как «пишется» наш код.

-11

Это можно использовать в образовательных целях.

В следующей статье создадим и подключим шейдер который будет модифицировать всю сцену целиком. И сделаем выводы.

-12

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал, и
вступайте в группу в ВК.