Как плавно преобразовать спрайт квадрата в круг.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как плавно преобразовать спрайт квадрата в круг.

Сообщение Pro 08 июл 2018, 12:51

Есть спрайт с нарисованным квадратом. Мне нужно его плавно преобразовать в круг.
Как это можно сделать?
Думал рендерить в альфа канал новую альфу, рисуя туда круг. Вначале круг будет увеличенный, потом плавно уменьшаться, тем самым "скругляя" углы квадрата.
Но я слышал, что рендер в текстуру только в Pro версии. Как еще можно сделать? Может шейдер есть, который рисует прозрачными пиксели по динамичной маске в виде фигуры?
Pro
UNец
 
Сообщения: 22
Зарегистрирован: 27 май 2018, 11:19

Re: Как плавно преобразовать спрайт квадрата в круг.

Сообщение 1max1 08 июл 2018, 13:00

Слишком размытый вопрос, можно ведь один спрайт плавно заменить другим, у одного альфу лерпать к нулю, у другого, под первым спрайтом, к единице.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как плавно преобразовать спрайт квадрата в круг.

Сообщение Pro 08 июл 2018, 13:13

1max1 писал(а):Слишком размытый вопрос, можно ведь один спрайт плавно заменить другим, у одного альфу лерпать к нулю, у другого, под первым спрайтом, к единице.

Так и будет. Снизу круг, сверху исчезающий квадрат. Но хочется что бы у квадрата еще и углы скруглялись, а не просто уменьшалась альфа.
Pro
UNец
 
Сообщения: 22
Зарегистрирован: 27 май 2018, 11:19

Re: Как плавно преобразовать спрайт квадрата в круг.

Сообщение waruiyume 08 июл 2018, 13:29

Можно в шейдере сделать что-то в духе:
half dist = length(half(0.5,0.5), uv);
if(dist<_CutDist)//_CutDist должен быть в диапазоне от 1 до 1.4
discard;
За синтаксис не ручаюсь.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как плавно преобразовать спрайт квадрата в круг.

Сообщение 1max1 08 июл 2018, 13:49

Но хочется что бы у квадрата еще и углы скруглялись, а не просто уменьшалась альфа.

Первый спрайт квадрат, второй - спрайт маска круга достаточно большого чтобы полностью закрыть квадрат.
В спрайте с квадратом ставишь Visible Inside Mask, потом перекрываешь маской круга квадрат, он должен быть виден, и когда надо будет сделать круг, нужно просто плавно уменьшать скейл маски до нужного размера, таким макаром углы будут медленно скруглятся.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как плавно преобразовать спрайт квадрата в круг.

Сообщение Pro 08 июл 2018, 14:04

waruiyume, идею понял. Придется шейдеры учить.
Я надеялся, что в юнити есть готовое решение(или шейдер), который умеет трансформировать изображение, указав начальную и конечную форму.
Pro
UNец
 
Сообщения: 22
Зарегистрирован: 27 май 2018, 11:19

Re: Как плавно преобразовать спрайт квадрата в круг.

Сообщение Pro 08 июл 2018, 14:07

1max1 писал(а):Первый спрайт квадрат, второй - спрайт маска круга достаточно большого чтобы полностью закрыть квадрат.
В спрайте с квадратом ставишь Visible Inside Mask, потом перекрываешь маской круга квадрат, он должен быть виден, и когда надо будет сделать круг, нужно просто плавно уменьшать скейл маски до нужного размера, таким макаром углы будут медленно скруглятся.

Спасибо, попробую так.
Pro
UNец
 
Сообщения: 22
Зарегистрирован: 27 май 2018, 11:19


Вернуться в Почемучка

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

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