Adobe Pixel Bender — это язык программирования, который служит для создания или обработки графического содержимого. С помощью Pixel Bender можно создать ядро, которое также называется шейдером. Шейдер определяет одну функцию, которая выполняется индивидуально для каждого пиксела изображения. В результате каждого вызова функции цвет пиксела в конкретном месте изображения меняется. Можно настроить операцию, задав вводимые изображения и значения параметров. В ходе одного выполнения шейдера ввод и значения параметров остаются неизменными. Изменяются только координаты пиксела, цвет которого является результатом вычисления функции.
Где это возможно, функция шейдера вызывается параллельно для нескольких пикселных координат вывода. Это ускоряет работу шейдера и может повысить быстродействие в целом.
В ActionScript с помощью шейдера можно без труда создать эффекты трех типов:
-
заливка рисунка;
-
режим наложения;
-
фильтр.
Шейдер также может выполняться в автономном режиме. В автономном режиме результат выполнения шейдера получается напрямую, а не через предварительное определение предполагаемого использования. Результат можно получить в виде графических данных, либо в виде двоичных или числовых данных. Данные необязательно должны быть графическими. Таким образом можно ввести в шейдер набор данных. Шейдер обрабатывает данные, после чего можно просмотреть возвращенные им обработанные данные.
Поддержка Pixel Bender доступна начиная с Flash Player 10 и Adobe AIR 1.5. Наложения, фильтры и заливки Pixel Bender не поддерживаются при визуализации с использованием графического процессора. На мобильных устройствах шейдеры Pixel Bender выполняются при визуализации с использованием ЦП. Однако производительность существенно отличается от производительности на персональном компьютере. Многие программы шейдеров могут выполняться со скоростью несколько фреймов секунду.
Важные понятия и термины
В следующем справочном списке содержатся важные термины, которые встречаются при создании и использовании шейдеров Pixel Bender.
-
Ядро
-
Применительно к Pixel Bender, ядро — это то же самое, что шейдер. С помощью Pixel Bender код определяет ядро, которое, в свою очередь, определяет одну функцию, которая выполняется индивидуально для каждого пиксела изображения.
-
Байт-код Pixel Bender
-
В процессе компиляции ядро Pixel Bender преобразуется в байт-код Pixel Bender. Обращение к байт-коду и его выполнение осуществляются во время выполнения.
-
Язык Pixel Bender
-
Язык программирования, используемый для создания ядра Pixel Bender.
-
Pixel Bender Toolkit
-
приложение, которое используется для создания файла байт-кода Pixel Bender из исходного кода Pixel Bender. Этот набор инструментов позволяет писать, тестировать и компилировать исходный код Pixel Bender.
-
Шейдер
-
В данном документе шейдером называется набор функций, написанный на языке Pixel Bender. Код шейдера создает визуальный эффект или выполняет вычисление. И в том, и в другом случае шейдер возвращает набор данных (обычно это пикселы изображения). Шейдер выполняет одну и ту же операцию в каждой точке данных. При этом отличаются только координаты выводимого пиксела. При написании шейдера ActionScript не используется. Он пишется на языке Pixel Bender и компилируется в байт-код Pixel Bender. Шейдер можно встроить в SWF-файл во время компиляции или загрузить как внешний файл во время выполнения. В любом случае он вызывается кодом ActionScript путем создания объекта Shader, который затем связывается с байт-кодом шейдера.
-
Ввод шейдера
-
Сложный ввод, как правило, графические данные растрового изображения, которые передаются шейдеру для выполнения вычислений. Для каждой переменной ввода, определенной в шейдере, используется одно значение (то есть одно изображение или набор двоичных данных) в процессе выполнения шейдера.
-
Параметр шейдера
-
Одно значение (или небольшой набор значений) передаваемых шейдеру для выполнения вычислений. Каждое значение параметра определяется для одного выполнения шейдера, это значение не меняется на протяжении всей операции.
Работа с примерами кода
Может потребоваться тестирование приведенных примеров кода. Тестирование кода включает его выполнение и просмотр результатов в созданном SWF-файле. Во всех примерах создается содержимое с помощью API-интерфейса рисования, который использует эффект шейдера или изменяется под его действием.
Большая часть примеров состоит из двух частей. В первой части представлен исходный код Pixel Bender для шейдера, используемого в примере. Сначала с помощью Pixel Bender Toolkit необходимо скомпилировать исходный код в файл байт-кода Pixel Bender. Чтобы создать файл байт-кода Pixel Bender, выполните следующие действия.
-
Откройте программу Adobe Pixel Bender Toolkit. При необходимости в меню «Build» (Собрать) выберите «Turn on Flash Player warnings and errors» (Включить предупреждения и ошибки проигрывателя Flash Player).
-
Скопируйте код Pixel Bender и вставьте его в панель редактора кода Pixel Bender Toolkit.
-
В меню «File» (Файл) выберите «Export kernel filter for Flash Player» (Экспортировать ядро фильтра для проигрывателя Flash Player).
-
Сохраните файл байт-кода Pixel Bender в том же каталоге, что и документ Flash. Имя файла должно соответствовать имени, использованному в описании примера.
Вторая часть примера содержит код ActionScript, написанный в качестве файла класса. Чтобы проверить работу примера в Flash Professional, выполните следующие действия.
-
Создать пустой документ Flash и сохранить его на компьютере.
-
Создайте новый файл ActionScript и сохраните его в том же каталоге, что и документ Flash. Имя файла должно соответствовать имени класса в тестируемом коде. Например, если пример кода определяет класс с именем MyApplication, выберите имя MyApplication.as при сохранении файла ActionScript.
-
Скопируйте код в файл ActionScript и сохраните его.
-
В документе Flash щелкните пустую часть рабочей области или рабочего пространства, чтобы активировать инспектор свойств.
-
В поле «Класс документа» инспектора свойств введите имя класса ActionScript, скопированного из текста.
-
Запустите программу, выбрав «Управление» > «Тестировать ролик»
Результаты выполнения примера появятся в окне предварительного просмотра.
Эти приемы проверки кодов из примеров подробно объясняются в главе «
Работа с примерами ActionScript
».