Как сделать градиентное заполнение по кругу?

Шейдеры и все-все-все.

Как сделать градиентное заполнение по кругу?

Сообщение iprogrammer 21 ноя 2016, 13:42

Я тут шейдерами балуюсь. И нужно сделать градиентную заливку по кругу. Т.е. по кругу также, как это происходит у Canvas -> Image -> FillType:Filled, FillMethod:Radial360. Но при этом чтоб сектор начинался с прозрачности и заканчивался полным цветом.
Я думал, что достаточно сделать маску по прозрачности и поворачивать её и плюс сделать cutoff (точнее в обратную сторону...чтоб появлялось а не исчезало) у исходной текстуры.

В результате сделал шейдер где есть вращающуюся маска:

Изображение

И отображение по кругу текстурки:
Изображение

Итог вроде бы тот, что нужен:
Изображение

НО(!!!), я понял, что когда оба провернутся по часовой стрелке, то маска останется наложена и спрайт будет весь градиентно залит прозрачностью (как это показано на самом первом рисунке). То есть надо еще теперь провернуть маску, но так, чтоб она постепенно обрезалась с её начала О_о (если приводить аналогию, то это как червяк ползет и подтягивает хвост к голове.), либо сделать что-то еще, совсем другое.

Собсн вопросы: как в шейдере можно так сделать, чтоб провернуть текстуру и обрезая её одновременно в начале? Или может надо всё это дело вообще по-другому сделать? В какую сторону копать? Какой алгоритм бы для задачи использовать? Подтолкнуть в нужную сторону надо, может я не с того начал и все гораздо проще делается.
iprogrammer
UNец
 
Сообщения: 41
Зарегистрирован: 25 июн 2016, 07:10

Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6