Соберем простой шейдер который будет имитировать лупу. То бишь увеличительное стекло. Добавляем в проект спрайт, в моем случае это сетка ТВ, и накидываем на него шейдер. Для начала напишем код, который будет просто увеличивать всю площадь.
Нам потребуется одна переменная для регулирования силы увеличения, я назвал её power и вывел в меню ноды. Крутим. И наблюдаем как наша текстура увеличивается. Нам надо чтобы увеличение было от центра, поэтому добавляем переменную center. В ней будет храниться вектор центра UV.
Соответственно подмешиваем её в наши расчеты. Теперь всё работает как надо. Практически мы получили лупу, только квадратную и на весь экран =).
Теперь надо как-то ограничить влияние зума на спрайт, для того чтобы эффект был локальным а не на весь экран. Для примера, возьмем наш любимый UV.x градиент, и подмешаем его к power переменной. В результате скалироваться будет только та часть пикселей, которая находится на светлой части градиента. Чем светлее тем больше. Как вы могли до