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.
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; } }