LYGIA Shader Library

downscale (lygia/morphological/pyramid/downscale)

downscale for function for pyramids https://www.cs.huji.ac.il/labs/cglab/projects/convpyr/data/convpyr-small.pdf

Dependencies:

Use:

<vec4> pyramidDownscale(<SAMPLER_TYPE> tex, <vec2> st, <vec2> pixel)

Check it on Github



#ifndef PYRAMID_H1
#define PYRAMID_H1 1.0334, 0.6836, 0.1507
#endif

#ifndef PYRAMID_SAMPLE_FNC
#define PYRAMID_SAMPLE_FNC(TEX, UV) SAMPLER_FNC(TEX, UV)
#endif

#ifndef PYRAMID_DOWNSCALE_SAMPLE_FNC
#define PYRAMID_DOWNSCALE_SAMPLE_FNC(TEX, UV) PYRAMID_SAMPLE_FNC(TEX, UV)
#endif

#ifndef FNC_PYRAMID_DOWNSCALE
#define FNC_PYRAMID_DOWNSCALE
vec4 pyramidDownscale(SAMPLER_TYPE tex, vec2 st, vec2 pixel) {
    const vec3 h1 = vec3(PYRAMID_H1);

    vec4 color = vec4(0.0);
    for (int dy = -2; dy <= 2; dy++) {
        for (int dx = -2; dx <= 2; dx++) {
            vec2 uv = st + vec2(float(dx), float(dy)) * pixel * 0.5;
            if (uv.x <= 0.0 || uv.x >= 1.0 || uv.y <= 0.0 || uv.y >= 1.0)
                continue;
            color += PYRAMID_DOWNSCALE_SAMPLE_FNC(tex, uv) * h1[ absi(dx) ] * h1[ absi(dy) ];
        }
    }

    return color;
}
#endif

License

MIT License (MIT C)opyright (c) 2020 Lingdong Huang

LYGIA is dual-licensed under the Prosperity License and the Patron License for sponsors and contributors.

Sponsors and contributors are automatically added to the Patron License and they can ignore the any non-commercial rule of the Prosperity Licensed software (please take a look to the exception).

It's also possible to get a permanent comercial license hook to a single and specific version of LYGIA.

Get the latest news and releases

Sign up for the news letter bellow, joing the LYGIA's channel on Discord or follow the Github repository