Metaballs. Чернила

12/10/07 at 22:24 Leave a comment

ЧернилаНекоторое время назад одна моя знакомая расказала про такое задание на курсах по флэшу, которые она тогда посещала: надо создать анимацию капли воды, разделяющейся на 2 капли. Или наоборот, анимацию двух капель соединяющихся в одну. Целью задания было продемонстрировать еще раз принципы работы Шэйп Твина и показать, что нельзя такую анимацию сделать с помощью всего двух ключевых кадров (в начальном кадре один кружок, в конечном два). Меня же заинтересовало как это сделать так, чтобы капли были действительно выглядели как капли, чтобы в промежуточных кадрах были не вариации на тему восьмерки, а гладкий, “жидкий” объект. Такие объекты называются metaballs. Единственный перевод этого термина, который я нашел – метасферы.

Как это сделать? Строить по формулам слишком медленнно. Да и не нужно, учитывая что нам нужка картинка, а не точное математическое описание. Можно воспользоваться специальным флэшевым механизмом для интенсивных, но не очень точных вычеслений – растровыми фильтрами. Идея очевидная: берем просто сферы, проще говоря круги, и сглаживаем их, получаем метасферы. Далеко отстоящие друг от друга круги так и останутся кругами, а между находящимися рядом или пересекающимися круги должны появиться плавные переходы. За неимением сглаживающего фильтра придется воспользоваться комбинацией тех, что есть. Сначала размываем круги с помощью BlurFilter, затем увеливаем контраст по альфа-каналу с помощью фильтра ColorMatrixFilter, этим мы убираем размытость, но сохраняем сглаженность. Соответствующая часть кода:

drops.filters = [
new BlurFilter( 16, 16, 2 ),
new ColorMatrixFilter( [
1, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 16, -2048] )
];

ColorMatrixFilter можно заменить методом treshold или использовать ColorTransform, но код, на мой взгляд, будет выглядеть хуже.

Ниже реализация, в ней для динамики круги немного двигаются и немного меняют размер. Кроме того добавлен BevelFilter (блик по верхнему левому краю капель).

Metaballs. Чернила #1
Metaballs. Чернила #2

Advertisement

Entry filed under: эксперименты. Tags: , , , .

Post #0 Metaballs. Вода

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


 

October 2007
M T W T F S S
    Nov »
1234567
891011121314
15161718192021
22232425262728
293031  

Follow

Get every new post delivered to your Inbox.