Personal tools

Views

Duotone Hydra

From Adobe Labs

[edit]

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);
    }
}
Retrieved from "http://labs.adobe.com/wiki/index.php/Duotone_Hydra"