Fundamentos de los sombreados de Pixel Bender

Flash Player 10 y posterior, Adobe AIR 1.5 y posterior

Adobe Pixel Bender es un lenguaje de programación que se utiliza para crear o manipular contenido de imagen. Con Pixel Bender puede crear un núcleo, también denominado sombreado en este documento. El sombreado define una sola función que se ejecuta en cada uno de los píxeles de una imagen de forma individual. El resultado de cada llamada a la función es el color de salida en las coordenadas del píxel de la imagen. Las imágenes de entrada y los valores de parámetro se pueden especificar para personalizar la operación. En una sola ejecución de un sombreado, los valores de parámetro y entrada son constantes. Lo único que varía son las coordenadas del píxel cuyo color es el resultado de la llamada de la función.

Si es posible, la función de sombreado se llama para varias coordenadas de píxel de salida en paralelo. Esto mejora el rendimiento del sombreado y puede proporcionar un procesamiento de alto rendimiento.

En ActionScript, se pueden crear fácilmente tres tipos de efectos utilizando un sombreado:

  • Relleno de dibujo

  • Modo de mezcla

  • Filtro

Un sombreado también se puede ejecutar en modo autónomo. Con el uso del modo autónomo se accede directamente al resultado de un sombreado en lugar de especificar previamente su uso previsto. Se puede acceder al resultado como datos de imagen o datos binarios o numéricos. No es necesario que los datos sean de imagen. De este modo puede proporcionar a un sombreado un conjunto de datos como entrada. El sombreado procesa los datos y puede acceder a los datos de resultado que devuelve.

la compatibilidad con Pixel Bender existe a partir de Flash Player 10 y Adobe AIR 1.5. Los rellenos, filtros y mezclas de Pixel Bender no se admiten en el procesamiento con GPU. En los dispositivos móviles, los sombreados de Pixel Bender no se ejecutan con el procesamiento con CPU. Sin embargo, el rendimiento no está al mismo nivel que en un equipo de escritorio. Es posible que muchos programas de sombreado solo se ejecuten en unos pocos fotogramas por segundo.

Conceptos y términos importantes

La siguiente lista de referencia contiene términos importantes que aparecerán al crear y utilizar sombreados de Pixel Bender:

Núcleo
Para Pixel Bender, un núcleo es lo mismo que un sombreado. Con el uso de Pixel Bender, el código define un núcleo, que define una sola función que se ejecuta en cada uno de los píxeles de una imagen individualmente.

Código de bytes de Pixel Bender
Cuando se compila un núcleo de Pixel Bender, se transforma en un código de bytes de Pixel Bender. Al código de bytes se accede y se ejecuta en tiempo de ejecución.

Lenguaje Pixel Bender
Lenguaje de programación utilizado para crear un núcleo de Pixel Bender.

Kit de herramientas de Pixel Bender
Aplicación que se emplea para crear un archivo de código de bytes de Pixel Bender desde el código fuente del lenguaje. El kit de herramientas permite escribir, probar y compilar código fuente de Pixel Bender.

Sombreado
En este documento, un sombreado es un conjunto de funcionalidad escrito en el lenguaje Pixel Bender. Un código del sombreado crea un efecto visual o realiza un cálculo. En cualquier caso, el sombreado devuelve un conjunto de datos (generalmente los píxeles de una imagen). El sombreado realiza la misma operación en cada punto de datos, con la única diferencia de las coordenadas del pí­xel de salida. El sombreado no se escribe en ActionScript. Se escribe en el lenguaje Pixel Bender y se compila en el código de bytes de Pixel Bender. Se puede incorporar a un archivo SWF en tiempo de compilación o cargarse como archivo externo en tiempo de ejecución. En cualquier caso se puede acceder al mismo en ActionScript creando un objeto Shader y vinculando este objeto al código de bytes del sombreado.

Entrada de sombreado
Entrada compleja, generalmente datos de imagen de mapa de bits, que se proporciona a un sombreado para su uso en sus cálculos. Para cada variable de entrada definida en un sombreado, se utiliza un solo valor (es decir, una sola imagen o conjunto de datos binarios) para la ejecución competa del sombreado.

Parámetro de sombreado
Un solo valor (o conjunto limitado de valores) que se proporciona a un sombreado para su uso en sus cálculos. Cada valor de parámetro se define para una sola ejecución del sombreado y el mismo valor se emplea en toda la ejecución.

Ejecución de los ejemplos de código

Puede que desee probar las listas de código de ejemplo que se proporcionan. Para probar el código hay que ejecutarlo y ver los resultados en el archivo SWF creado. Todos los ejemplos crean contenido utilizando la API de dibujo, que utiliza o se modifica mediante el efecto de sombreado.

La mayor parte de los listados del código de ejemplo incluyen dos partes. Una parte es el código fuente de Pixel Bender para el sombreado utilizado en el ejemplo. En primer lugar debe utilizar el kit de herramientas de Pixel Bender para compilar el código fuente en un archivo de código de bytes de Pixel Bender. Siga estos pasos para crear el archivo de código de bytes de Pixel Bender:

  1. Abra el kit de herramientas de Adobe Pixel Bender. Si es necesario, en el menú Build (Compilación), seleccione “Turn on Flash Player warnings and errors” (Activar errores y avisos de Flash Player).

  2. Copie el listado de código de Pixel Bender y péguelo en el panel de editor de código de su kit de herramientas.

  3. En el menú File (Archivo), seleccione “Export kernel filter for Flash Player” (Exportar filtro de núcleo para Flash Player).

  4. Guarde el archivo de código de bytes de Pixel Bender en el mismo directorio que el documento Flash. El nombre del archivo debe coincidir con el nombre especificado en la descripción del ejemplo.

La parte de ActionScript de todos los ejemplos se escribe como un archivo de clase. Para probar el ejemplo en Flash Professional:

  1. Cree un documento de Flash vacío y guárdelo en el equipo.

  2. Cree un nuevo archivo de ActionScript y guárdelo en el mismo directorio que el documento de Flash. El nombre del archivo debe coincidir con el nombre de la clase del listado de código. Por ejemplo, si el listado de código define una clase denominada MyApplication, use el nombre MyApplication.as para guardar el archivo de ActionScript.

  3. Copie el listado de código en el archivo de ActionScript y guarde el archivo.

  4. En el documento de Flash, haga clic en una parte vacía del escenario o espacio de trabajo para activar el inspector de propiedades del documento.

  5. En el inspector de propiedades, en el campo Clase de documento, escriba el nombre de la clase de ActionScript que copió del texto.

  6. Ejecute el programa utilizando Control > Probar película.

    Verá el resultado del ejemplo en el panel de previsualización.

En el capítulo Cómo utilizar ejemplos de ActionScript se explican de forma más detallada estas técnicas para la comprobación de listados de código.