Duotone Hydra
From Adobe Labs
Duotone Source
kernel duotone
<
nameSpace: "duotone";
vendor: "nab";
version: 1;
description: "simple duotone effect";
>
{
// user param
parameter float3 color;
// main function
void evaluatePixel(image4 src, out float4 dst)
{
float4 rgba;
float r, g, b, a;
// rerieve pixel value
rgba = sampleNearest(src, outCoord());
r = rgba.r;
g = rgba.g;
b = rgba.b;
a = rgba.a;
// add user's color to the average value
r = (r + g + b) / 3.0;
g = r + color.g;
b = r + color.b;
r += color.r;
// check range
clamp(r, 0.0, 1.0);
clamp(g, 0.0, 1.0);
clamp(b, 0.0, 1.0);
// set new pixel
dst = float4(r, g, b, a);
}
}