Blur

I’m currently reading through a couple of tutorials on how to create a water effect I want. One of them starts with a blur function which is pretty easy to understand in concept but I wanted to see the result. So I wrote the formula in hydra.

gyatt park

gyatt_blur.jpg

kernel Blur{
    void evaluatePixel(in image4 src, out pixel4 dst){
        float2 coord = outCoord();
        float4 source = sampleNearest(src,coord);
        float4 source1 = sampleNearest(src,float2(coord.x+1.0,coord.y));
        float4 source2 = sampleNearest(src,float2(coord.x-1.0,coord.y));
        float4 source3 = sampleNearest(src,float2(coord.x,coord.y+1.0));
        float4 source4 = sampleNearest(src,float2(coord.x,coord.y-1.0));
        float4 final = (source+source1+source2+source3+source4)*0.2;
        dst = final;
    }
}

The code gets the pixel of the current pixel along with the top, right, bottom, left and then divides by 5 to find the average.
Flash already has an inbuilt blur filter but this was just to see the maths.

Loops are not supported when Hydra is used within flash, so I can’t think of a way that you could increase the blur via a parameter at the moment.

About Carly (Admin)

I'm a multimedia developer based in Brisbane. I work for an elearning firm and code my own projects in the wee small hours between eating, sleeping and working.
This entry was posted in My projects. Bookmark the permalink.

Leave a Reply