Данная статья является дополнением к нескольким уже имеющимся в группе статьям.
Результатом у нас будет вот это : Для проекта нам потребуется две картинки руки, форма выреза( в моем случае круг, под лупу) и сама лупа. Идея тут проста : Мы рисуем маску в отдельный вьюпорт. И затем подаем альфа канал (или любой другой) этого вьюпорта в шейдер как альфу для ноды. В нашем случае маскируется нормальная рука, так что шейдер будет подключен именно к ней. Сцена выглядит вот так: Спрайты (Sprite2D) и один SubViewport.
Последний надо настроить под размеры окна вашего приложения, и само собой положить маску в этот вьюпорт. И поставить как минимум одну галочку возле Transparent BG.
(Вообще, этого можно и не делать, если вы допустим ходите брать не альфа канал , а только красный или какой то еще. Но так как я у себя использую именно альфу, то без галочки ничего работать не будет) Теперь добавляем на спрайт обычной руки шейдер. Выносим юниформ , в который подключим наш вьюпорт. Дальше скорее всего г