eterminant
            float det = (Ixx * Iyy) - (Ixy * Ixy);

            float sq = sqrt(trace * trace / 4.0 - det);

            float R = min( trace * 0.5 + sq, trace * 0.5 - sq );

            return (R >= threshold) ? R : 0.0;
        }

        void main()
        {
            vec2 onePixel = vec2(1.0, 1.0) / u_dimensions;

            vec4 p11 = PIXEL_AT(-1,-1); vec4 p12 = PIXEL_AT( 0,-1); vec4 p13 = PIXEL_AT( 1,-1);
            vec4 p21 = PIXEL_AT(-1, 0); vec4 p22 = PIXEL_AT( 0, 0); vec4 p23 = PIX