Найти в Дзене
Игровой движок Godot engine

№204. Godot4. Шейдер монохромного ЭЛТ (CRT) монитора.

В этой статье соберем простой шейдер, который будет искажать спрайт создавая атмосферу старых добрых мониторов из научно фантастических фильмов.
Если вы вообще ничего не понимаете в шейдерах, советую
начать с серии небольших статей на канале.

Погнали!

Закидываем спрайт. И подключаем шейдер.

-2

Первым делом нам надо сделать эффект строк.
Для этого вполне подойдет вертикальный градиент с UV координат.

Берем UV.y и кладем в цвет.
В альфу я подал 1.0, чтобы работать со всей поверхностью спрайта.

-3

Теперь надо сделать этот градиент повторяющимся несколько раз. Для этого прекрасно подходит наш любимый синус.

-4

Далее, приберем сглаживание градиента, чтобы строки были более выраженные. Для этого воспользуемся функцией step.

-5

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

-6

Так как у нас чистые значения белого и черного, то очевидно что части спрайта которые смешивались с белым находятся где то в нулевых позициях. Давайте вытащим их обратно.
Для этого поделим grad например на 20.

-7

И вот уже мы видим как части спрайта вернулись обратно и строки сдвигают изображение лесенкой.

Далее нам остается подмешать зеленый цвет на спрайт, и подмешать наши строки в альфа канал.

-8

Накинем жизни в строки и заставим их двигаться. Тут всё на ваше усмотрение. Можно сделать так чтобы строки плавно плыли. Для этого просто подмешиваем TIME в синус.

-9

Либо сделать так чтобы строки меняли свое положение чуть более обрывисто

-10

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

-11