Noções básicas de sombreadores Pixel Bender

Flash Player 10 e posterior, Adobe AIR 1.5 e posterior

O Adobe Pixel Bender é uma linguagem de programação utilizada para criar ou manipular conteúdo de imagem. Usando o Pixel Bender, você criar um kernel, também conhecido como sombreador. O sombreador define uma única função executada individualmente em cada pixel de uma imagem. O resultado de cada chamada à função é a cor gerada nessa coordenada de pixel da imagem. É possível especificar valores de imagens e parâmetros de entrada para personalizar a operação. Em uma única execução de um sombreador, os valores de entrada e parâmetro são constantes. A única coisa variável é a coordenada do pixel cuja cor é o resultado da chamada à função.

Quando possível, a função de sombreador é chamada para várias coordenadas de pixel de saída em paralelo. Isso melhora o desempenho do sombreador e pode oferecer processamento de alto desempenho.

No ActionScript, três tipos de efeitos podem ser facilmente criados com um sombreador:

  • preenchimento de desenho

  • modo de mesclagem

  • filtro

Também é possível executar um sombreador no modo autônomo. No modo autônomo, o resultado de um sombreador é acessado diretamente, sem a necessidade de especificar previamente seu uso pretendido. É possível acessar o resultado como dados de imagem ou como dados binários ou numéricos. Não é necessário que os dados sejam dados de imagem. Dessa forma, você pode atribuir a um sombreador um conjunto de dados como entrada. O sombreador processa os dados, e você pode acessar o resultado retornado por ele.

O suporte a Pixel Bender está disponível para o Flash Player 10 e o Adobe AIR 1.5. As combinações, filtros e preenchimentos do Pixel Bender não são suportados na renderização da GPU. Em dispositivos móveis, os sombreadores Pixel Bender são executados com renderização pela CPU. No entanto, o desempenho não é do mesmo nível de um computador desktop. Muitos programas sombreadores podem executar somente alguns quadros por segundo.

Conceitos e termos importantes

A lista de referência a seguir contém termos importantes que você vai encontrar ao criar e usar os sombreadores do Pixel Bender:

Kernel
No Pixel Bender, um kernel é o mesmo que um sombreador. Usando o Pixel Bender, seu código define um kernel, que por sua vez define uma única função que é executada individualmente em cada pixel de uma imagem.

Código de bytes do Pixel Bender
Um kernel do Pixel Bender é transformado em código de bytes do Pixel Bender. O código de bytes é acessado e executado no tempo de execução.

Linguagem Pixel Bender
A linguagem de programação usada para criar um kernel do Pixel Bender.

Toolkit do Pixel Bender
O aplicativo usado para criar um arquivo de código de bytes do Pixel Bender com base no código-fonte do Pixel Bender. O kit de ferramentas permite programar, testar e compilar o código-fonte do Pixel Bender.

Shader
Neste documento, um sombreador é um conjunto de funcionalidades criado na linguagem Pixel Bender. O código de um sombreador cria um efeito visual ou executa um cálculo. Em qualquer um dos casos, o sombreador retorna um conjunto de dados (normalmente, os pixels de uma imagem). O sombreador realiza a mesma operação em cada ponto de dados, com a única diferença sendo as coordenadas do pixel de saída. O sombreador não é escrito em ActionScript. Ele é criado na linguagem Pixel Bender e compilado no código de bytes do Pixel Bender. Ele pode ser incorporado a um arquivo SWF em tempo de compilação ou carregado como arquivo externo em tempo de execução. Nos dois casos, ele é acessado no ActionScript através da criação de um objeto Shader e da vinculação deste ao código de bytes do sombreador.

Entrada do sombreador
Uma entrada complexa, geralmente dados de imagem de bitmap, fornecida para um sombreador para uso em seus cálculos. Para cada variável de entrada definida em um sombreador, é usado um único valor (isto é, uma única imagem ou um conjunto de dados binários) para a execução inteira do sombreador.

Parâmetro de sombreador
Um único valor (ou conjunto limitado de valores) que é fornecido para um sombreador usá-lo em seus cálculos. Cada valor de parâmetro é definido para uma única execução do sombreador, e o mesmo valor é usado durante toda a execução.

Teste por meio dos exemplos de código

Talvez você queira testar as listagens do código de exemplo que são fornecidas. Testar o código envolve executá-lo e ver os resultados no SWF que é criado. Todos os exemplos criam conteúdo usando a API de desenho que utiliza ou é modificada pelo efeito de sombreador.

A maioria das listagens de código de exemplo têm duas partes. Uma parte é o código-fonte do Pixel Bender referente ao sombreador usado no exemplo. Primeiro você deve usar o Pixel Bender Toolkit para compilar o código-fonte em um arquivo de código de bytes do Pixel Bender. Siga estas etapas para criar o arquivo de código de bytes do Pixel Bender:

  1. Abra o Adobe Pixel Bender Toolkit. Se necessário, no menu Criar, escolha “Ativar avisos e erros do Flash Player”.

  2. Copie a listagem de código do Pixel Bender e cole-a no painel do editor de código do Pixel Bender Toolkit.

  3. No menu Arquivo, escolha “Exportar filtro de kernel do Flash Player”.

  4. Salve o arquivo do código de bytes do Pixel Bender no mesmo diretório que o documento do Flash. O nome do arquivo deve ser igual ao nome especificado na descrição do exemplo.

A parte do ActionScript de cada exemplo é escrita como arquivo de classe. Execute as etapas a seguir par testar o exemplo no Flash Professional:

  1. Crie um documento do Flash vazio e salve-o no seu computador.

  2. Crie e salve um novo arquivo do ActionScript no mesmo diretório do documento Flash. O nome do arquivo deve corresponder ao nome da classe na listagem de código. Por exemplo, se a listagem de código define uma classe chamada MyApplication, use o nome MyApplication.as para salvar o arquivo do ActionScript.

  3. Copie a listagem de código no arquivo do ActionScript e salve o arquivo.

  4. No documento Flash, clique em uma parte em branco do Palco ou espaço de trabalho para ativar o Inspetor de propriedades do documento.

  5. No Inspetor de propriedades, no campo Classe do documento, digite o nome da classe ActionScript que você copiou do texto.

  6. Execute o programa usando Controlar > Testar filme

    Você verá os resultados do exemplo na janela de visualização.

As técnicas para testar listas de código de exemplo são explicadas em mais detalhes em Como Usar Exemplos do ActionScript .