Страница 1 из 1

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

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

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

Изображение

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

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

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

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