Basisbeginselen van Pixel Bender-arceringen

Flash Player 10 of hoger, Adobe AIR 1.5 of hoger

Adobe Pixel Bender is een programmeertaal voor het maken en bewerken van grafische inhoud. Met Pixel Bender maakt u een kernel, die in dit document ook arcering wordt genoemd. Met de arcering definieert u één functie die op elke pixel van een afbeelding afzonderlijk wordt uitgevoerd. Het resultaat van elke oproep van de functie is de uitvoerkleur bij de desbetreffende pixelcoördinaat in de afbeelding. U kunt invoerafbeeldingen en parameterwaarden opgeven om de bewerking aan te passen. In één uitvoering van een arcering zijn de invoer- en parameterwaarden constant. Het enige wat varieert, is de coördinaat van de pixel waarvan de kleur het resultaat van de functieoproep is.

Waar mogelijk wordt de arceringsfunctie voor meerdere pixelcoördinaten parallel opgeroepen. Hierdoor verbeteren de prestaties van de arcering en kunnen bewerkingen zeer snel worden uitgevoerd.

In ActionScript kunnen drie soorten effecten eenvoudig worden gemaakt met een arcering:

  • vulling bij het tekenen

  • overvloeimodus

  • filter

Een arcering kan ook in de zelfstandige modus worden uitgevoerd. In de zelfstandige modus wordt het resultaat van een arcering direct benaderd en wordt niet het bedoelde gebruik van de arcering vooraf opgegeven. Het resultaat kan worden benaderd als grafische gegevens of als binaire of numerieke gegevens. De gegevens hoeven geen grafische gegevens te zijn. Zo kunt u aan een arcering een set gegevens als invoer geven. De arcering bewerkt de gegevens en u kunt de resulterende gegevens benaderen die worden geretourneerd door de arcering.

Pixel Bender-ondersteuning is beschikbaar vanaf Flash Player 10 en Adobe AIR 1.5. Pixel Bender-overvloeiingen, -filters en -vullingen worden niet ondersteund onder GPU-rendering. Op mobiele apparaten worden Pixel Bender-arceringen wel uitgevoerd onder CPU-rendering. De prestaties vallen echter tegen in vergelijking met die van desktopcomputers. Vele arceringsprogamma's kunnen slechts een paar frames per seconde uitvoeren.

Belangrijke concepten en termen

De volgende referentielijst bevat belangrijke termen met betrekking tot het maken en gebruiken van Pixel Bender-arceringen:

Kernel
in Pixel Bender is een kernel hetzelfde als een arcering. Met Pixel Bender legt u met uw code een kernel vast waarin één functie is gedefinieerd die op elke pixel van een afbeelding afzonderlijk wordt uitgevoerd.

Pixel Bender-bytecode
Wanneer een Pixel Bender-kernel wordt gecompileerd, wordt deze omgezet in Pixel Bender-bytecode. De bytecode wordt tijdens runtime benaderd en uitgevoerd.

Pixel Bender-taal
De programmeertaal die wordt gebruikt om een Pixel Bender-kernel te maken.

Pixel Bender-toolkit
De toepassing waarmee een bestand met Pixel Bender-bytecode wordt gemaakt van Pixel Bender-broncode. Met de toolkit kunt u Pixel Bender-broncode schrijven, testen en compileren.

Arcering
In de context van dit document is een arcering een functieset die is geschreven in de Pixel Bender-taal. De code van een arcering maakt een visueel effect of voert een berekening uit. In beide gevallen retourneert de arcering een set gegevens (doorgaans de pixels van een afbeelding). De arcering voert voor elk gegevenspunt dezelfde bewerking uit, met als enige verschil de coördinaten van de uitvoerpixel. De arcering wordt niet in ActionScript geschreven. Een arcering wordt geschreven in de Pixel Bender-taal en gecompileerd naar Pixel Bender-bytecode. Een arcering kan bij de compilatie worden ingesloten in een SWF-bestand of tijdens de runtime worden geladen als extern bestand. In beide gevallen wordt de arcering in ActionScript benaderd door een Shader-object te maken en dit object te koppelen aan de bytecode van de arcering.

Arceringsinvoer
Complexe invoer, doorgaans grafische bitmapgegevens, die aan een arcering wordt doorgegeven om te gebruiken in de berekeningen. Voor elke invoervariabele die in een arcering is gedefinieerd, wordt één waarde (dat wil zeggen één afbeelding of set binaire gegevens) gebruikt voor de hele uitvoering van de arcering.

Arceringsparameter
Eén waarde (of een beperkte set waarden) die aan een arcering wordt doorgegeven om te gebruiken in de berekeningen. Elke parameterwaarde wordt gedefinieerd voor één uitvoering van de arcering, en dezelfde waarde wordt tijdens de hele uitvoering van de arcering gebruikt.

Codevoorbeelden binnen dit hoofdstuk doorlopen

Wanneer u het hoofdstuk doorwerkt, wilt u de codevoorbeelden wellicht uittesten. Bij het testen moet de code worden uitgevoerd en moeten de resultaten worden bekeken in het nieuwe SWF-bestand. In alle voorbeelden wordt inhoud gemaakt met de API voor tekenen die wordt gebruikt of veranderd door het arceringseffect.

De meeste codevoorbeelden bestaan uit twee delen. Eén deel is de Pixel Bender-broncode voor de arcering die wordt gebruikt in het voorbeeld. U moet eerst met de Pixel Bender Toolkit de broncode compileren naar een bestand met Pixel Bender-bytecode. Voer de volgende stappen uit om het bestand met Pixel Bender-bytecode te maken:

  1. Open Adobe Pixel Bender Toolkit. Kies zo nodig in het menu Build de opdracht Turn on Flash Player warnings and errors.

  2. Kopieer de Pixel Bender-code en plak deze in het deelvenster met de code-editor van de Pixel Bender Toolkit.

  3. Kies in het menu File de opdracht Export kernel filter for Flash Player.

  4. Sla het bestand met Pixel Bender-bytecode op in dezelfde map als het Flash-document. De bestandsnaam moet gelijk zijn aan de naam in het voorbeeld.

Het ActionScript-deel van elk voorbeeld wordt geschreven als klassebestand. Ga als volgt te werk om het voorbeeld te testen in Flash Professional:

  1. Maak een leeg Flash-document en sla dit op uw computer op.

  2. Maak een nieuw ActionScript-bestand en sla het op in dezelfde map als het Flash-document. De bestandsnaam moet gelijk zijn aan de naam van de klasse in het codevoorbeeld. Als in de code bijvoorbeeld een klasse met de naam MyApplication wordt gedefinieerd, slaat u het ActionScript-bestand op als MyApplication.as.

  3. Kopieer de code naar het ActionScript-bestand en sla het bestand op.

  4. Klik in het Flash-document op een leeg deel van het werkgebied of de werkruimte om Eigenschapcontrole van het document te activeren.

  5. Typ in het veld Documentklasse in Eigenschapcontrole de naam van de ActionScript-klasse die u uit de tekst hebt overgenomen.

  6. Voer het programma uit via Besturing > Film testen

    De resultaten van het voorbeeld worden weergegeven in het voorbeeldvenster.

Een uitgebreide beschrijving van deze technieken voor het testen van codevoorbeelden is te vinden in ActionScript-voorbeelden gebruiken .