Створення фільтрів в adobe pixel bender

З Pixel Bender можна реалізувати будь-які ефекти. Ця технологія допомагає в підвищенні продуктивності RIA-додатків і є незамінним інструментом для технічних дизайнерів.

Pixel Bender Toolkit абсолютно безкоштовний, скачати його можна за посиланням labs.adobe.com/technologies/pixelbender. PBT включає в себе інтегровану середу розробки з підтримкою рідного сі-подібного мови і граф-мови, приклади фільтрів, документацію.

Створення фільтрів проходить в три етапи:

  1. Розробка алгоритму
  2. Запис алгоритму в PBT
  3. Експорт в байт-код

Дана рядок говорить про те, що вхідне зображення src має тип image4. Тип image4 має 4 властивості: a (прозорість), b (синій канал), g (зелений канал), r (червоний канал).

Оскільки оброблене зображення ми будемо виводити по 1-му пікселу, нам слід вказати тип і назва обробленого пікселя. В даному випадку піксель dst матиме тип pixel4.

Функція evaluatePixel () буде викликатися для кожного пікселя. Якщо функція не повертатиме змінні, слід вказати void. Для того щоб дізнатися, який піксель обробляється в даний момент, потрібно використовувати outCoord (), це змінна типу float2, вектор, у якого дві властивості: X і Y. Функція sampleNearest (зображення, координати); повертає піксель (pixel4) в координатах зазначеного зображення.

У рядку dst = sampleNearest (src, outCoord ()) ;, ми присвоюємо піксель, що знаходиться на зображенні src в координатах outCoord (). X, outCoord (). Y. Після запуску фільтра (кнопка Run) ми бачимо, що зображення не змінилося, тому що ми банально скопіювали пікселі. Тепер спробуємо змінити цю ситуацію.

Не секрет, що освітлити зображення можна шляхом підвищення значень каналів. У функції evaluatePixel напишемо:

Натискаємо кнопку Run і бачимо, що зображення стало світліше. Тепер спробуємо змістити наше зображення на 10 пікселів вище і на 15 пікселів лівіше. Для цього в evaluatePixel пишемо:

За правилом свізлінга, який реалізований в PB, вийде так:

Як ви вже здогадалися, вісь ординат направлена ​​вгору, вісь абсцис - вліво.

Тепер спробуємо заповнити пікселі в координаті x менше 50 пікселями в координаті x = 50;

Пишемо в функції evaluatePixel:

Створення фільтрів в adobe pixel bender

Тепер спробуємо створити пучок світла на зображенні.

Як говорилося вище, щоб зробити піксель світліше, потрібно збільшити значення його каналів.

Візьмемо випадкову координату пучка світла, припустимо, це буде параметр

Придумаємо розмір світіння 200. Далі слід ділити розмір світіння на відстань від його центру до поточного пікселя.

Створення фільтрів в adobe pixel bender

Припустимо, нам потрібно зробити пікселі розміром 5x5. Колір цього великого пікселя будемо брати з його верхнього лівого кута. У міру обходу пікселів ми будемо ділити кожну координату на розмір великого пікселя, тим самим ми дізнаємося, його номер в двовимірному масиві (m, n). Далі потрібно помножити m і n на розмір великого пікселя для того, щоб дізнатися координату верхнього лівого кута.

Створення фільтрів в adobe pixel bender

Висновок: з PB можна реалізувати будь-які ефекти. Допомагає в підвищенні продуктивності RIA-додатків. Незамінний інструмент для технічних дизайнерів. Навчившись обробляти зображення в Pixel Bender, ви заощадите багато часу в майбутньому.

Сергій Flastar ГОНЧАР

Версія для друку

Схожі статті