Добавить в корзинуПозвонить
Найти в Дзене

№226. Ультра простой шейдер для отражения.

В данной статье покажу как быстро собрать шейдер, который будет имитировать зеркальное отражение. По сути своей это просто перевернутое оригинальное изображение и небольшие модификации размера и цвета. Сцена выглядит вот так : Так как мы будем работать со всей видимой областью экрана - добавляем в сцену Canvas Layer + ColorRect. ColorRect растягиваем на весь экран Подключаем к нему материал New ShaderMaterial И создаем новый шейдер В шейдере сразу накидываем переменные : текстура всего экрана, позиция по оси Y , размер по оси Y , и цвет. Дальше берем наш экран и переворачиваем ! Для порядка выведем перевернутый UV в отдельную переменную. И подключим в итоговую текстуру скалирование и сдвиг Я настроил примерно так: Наболтаем PosY так, чтобы этот слой отражения опустился в нижнюю часть экрана. Осталось опустить ниже весь слой ColorRect , для того чтобы мы могли увидеть наше оригинальное изображение. Ну и подмешать цвет, чтобы вода стала чуть более синего оттенка Важный момент:
Когда рабо

В данной статье покажу как быстро собрать шейдер, который будет имитировать зеркальное отражение.

По сути своей это просто перевернутое оригинальное изображение и небольшие модификации размера и цвета.

Сцена выглядит вот так :

-2

Так как мы будем работать со всей видимой областью экрана - добавляем в сцену Canvas Layer + ColorRect.

-3

ColorRect растягиваем на весь экран

-4

Подключаем к нему материал New ShaderMaterial

-5

И создаем новый шейдер

-6

В шейдере сразу накидываем переменные : текстура всего экрана, позиция по оси Y , размер по оси Y , и цвет.

-7

Дальше берем наш экран и переворачиваем !

-8

Для порядка выведем перевернутый UV в отдельную переменную. И подключим в итоговую текстуру скалирование и сдвиг

Я настроил примерно так:

-9

Наболтаем PosY так, чтобы этот слой отражения опустился в нижнюю часть экрана.

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

-10

Ну и подмешать цвет, чтобы вода стала чуть более синего оттенка

-11

Важный момент:
Когда работаете в координатах экрана (SCREEN_UV) , помните что координаты UV экрана это всё окно редактора а не окно приложения!.

Для понимания небольшая гифка. Тут я установил координаты для текстуры в 0.5, (SCREEN_UV.x-0.5, SCREEN_UV.y-0.5) , и видно что это середина окна редактора.

-12

Если экран приложения и экран редактора «синхронизировать », то всё ок, и текстура лежит в центре.

Но как только я начинаю менять размеры окна редактора - видно как текстура уезжает.

-13

На этом всё.

При желании можно сделать деформации, чтобы получить более шумную поверхность . Об этом уже были статьи на канале, например тут , тут или тут.


Подписывайтесь на канал, при желании
вступайте в группу в ВК.
Удачи в изучении годо