Янв
7
2011

Pixel Bender filter «Slide Wring» for Flash

Pixel Bender filter "Slide Wring" for Flash

Представляю вам фильтр смены изображений «Slide Wring» написанный на Pixel Bender специально для Flash. Смотрим демку, качаем, пользуемся!

Чтобы использовать в своем AS3 проекте фильтр в формате .pbj его для начала нужно либо внедрить (во время компиляции), либо загрузить (во время выполнения). Примеры кода реализации каждого подхода вы найдете в документации. Я же ограничусь примером использования конкретно моего фильтра.

Первым делом подготовим объект BitmapData, создадим на его основе объект Bitmap и поцепим его на видное место:

mixbmd = new BitmapData(s1bmd.width, s1bmd.height);
mixbmp = new Bitmap(mixbmd);
addChild(mixbmp);

Для инициализации эффекта используем подобный код:

with (shader.data) {
	// подаем на вход наши слайды
	// это должны быть объекты BitmapData
	src1.input = slide1bmd;
	src2.input = slide2bmd;

	// указываем ширину и высоту слайдов
	// (меня эта операция в Одессе держит!)
	size.value = [slide1bmd.width, slide1bmd.height];

	// указываем толщину "бордюра"
	// интервал значений [0, 28] (по умолчанию 7)
	borderThickness.value = [7];

	// цвет "бордюра" [r, g, b]
	// интервал значений [0, 1] (по умолчанию 0.95)
	borderColor.value	 = [0.95, 0.95, 0.95];
}

А уже для осуществления перехода от одного слайда к другому изменяем лишь последний параметр:

// задаем фазу перехода
// интервал значений [0, 1] (по умолчанию 0)
shader.data.phase.value = [phase];

После того, как все приготовления завершены, можно непосредственно запускать:

// результат работы фильтра запишется в mixbmd
// и мы это сразу же заметим
var shader_job:ShaderJob = new ShaderJob(shader, mixbmd);
shader_job.start(true);

Ну вот и вся любов. Пользуйтесь, рапортуйте о багах, высказывайте пожелания. Если фильтр понравился, я сделаю еще версию с более полными настройками. Ну например:

  • степень затенения/осветления слайда при повороте
  • указание координат точки, вокруг которой происходит скручивание
  • возможность скручивания вокруг горизонтальной оси
  • положение бордюра (слева/справа, сверху/снизу)

Не могу сказать, что спешу реализовать все эти функции. И сложного там ничего нет, но больно уж прожорливая цаца вышла ;)

Pixel Bender filter "Slide Wring" for Flash

Related Posts

About the Author: Vadim BELLinSKY

Пробую себя в сфере создания flash-игр и социальных приложений. Рассказывать и показывать буду по мере продвижения.

Leave a comment