Pixel Bender Plug-in zu Photoshop

Berechnungen für pixel-basierte Filter lassen sich mithilfe eines modernen Grafikprozessors durch hohe Parallelisierung markant beschleunigen. Zur Programmierung der so genannten Kernel für die Filteroperationen dient eine Sprache, die stark an C angelehnt ist; die grafische Oberfläche und die Optimierung des Codes für unterschiedliche Hardware übernimmt das Pixel Bender Plug-in automatisch. Das Beispiel unten zeigt einen simplen Filter, der in regelmässigen Abständen jeweils Streifen einer wählbaren Breite invertiert.

Download des Plug-ins bei Adobe Labs.

Screenshot

Quellcode des abgebildeten Filters
<languageVersion : 1.0;>

kernel NegativeStripes2
<
   namespace:	"com.pixsource";
   vendor:	"Eric A. Soder";
   version:	1;
   description:	"This filter partially inverts color (alternating columns).";
>
{
   parameter int width
   <
      minValue:       int(1.0);
      maxValue:       int(150.0);
      defaultValue:   int(10.0);
      description:    "Column width";
   >;
    
   dependent float col;
   dependent float threecol;
   dependent float fourcol;
    
   input image4 source;
   output pixel4 result;
    
   void evaluateDependents() {
      col = float(width);
      threecol = 3.0 * col;
      fourcol = 4.0 * col;
   }
    
   void evaluatePixel() {
      float4 inputColor = sampleNearest(source, outCoord());
      float4 inverseColor;
      inverseColor.rgb = float3(1.0) - inputColor.rgb;
      inverseColor.a = inputColor.a;
      bool invert = mod( outCoord().x, fourcol ) >= threecol;
      result = invert ? inverseColor : inputColor;
   }
}