Соберем простой шейдер который будет имитировать лупу. То бишь увеличительное стекло. Добавляем в проект спрайт, в моем случае это сетка ТВ, и накидываем на него шейдер. Для начала напишем код, который будет просто увеличивать всю площадь.
Нам потребуется одна переменная для регулирования силы увеличения, я назвал её power и вывел в меню ноды. Крутим. И наблюдаем как наша текстура увеличивается. Нам надо чтобы увеличение было от центра, поэтому добавляем переменную center. В ней будет храниться вектор центра UV...
Своего рода логическое продолжение предыдущей статьи.
На сей раз выйдем в глобальное пространство, и поправим баги. Настройки проекта : Для того чтобы шейдер применился ко всему экрану накинем CanvasLayer, под него положим ColorRect и подключим на него шейдер. Закидываем в шейдер изображение всего экрана Если вы всё сделали правильно, то увидите спрайт который лежит в сцене. У меня это прекрасное болото в лесу. Дальше рисуем градиент, который будет в последствии деформировать наш экран.
Тут всё по классике - добавляем вектор центра экрана (cent) и вычитаем его из UV градиента...