Немного поздно, но, похоже, это помогает:
<languageVersion : 1.0;>
kernel Darken
< namespace : "omino";
vendor : "omino";
version : 1;
description : "darken the right part of an image";
>
{
input image4 src;
output pixel4 dst;
parameter float leftEdgeOfEffect <minValue: 0.0 ; maxValue: 2000.0; defaultValue: 200.0;>;
parameter float darkness <minValue: 0.0 ; maxValue: 1.0; defaultValue: 0.75;>;
void
evaluatePixel()
{
float2 co = outCoord();
pixel4 p = sampleNearest(src,co);
if(co.x >= leftEdgeOfEffect)
p.rgb = p.rgb * (1.0 - darkness);
dst = p;
}
}
Фактическая манипуляция пикселем происходит здесь:
p.rgb = p.rgb * (1,0 - темнота);
Это просто затемняет R, G и B. Вы можете стать хитрее здесь для более интересных эффектов.