LYGIA Shader Library

elastic (lygia/animation/easing/elastic)

elastic easing. From https://github.com/stackgl/glsl-easings

Dependencies:

Use:

elastic<In|Out|InOut>(<float> x)

Check it on Github



Dependencies:

Use:

elastic<In|Out|InOut>(<float> x)

Check it on Github



#ifndef FNC_ELASTICIN
#define FNC_ELASTICIN
float elasticIn(in float t) {
    return sin(13.0 * t * HALF_PI) * pow(2.0, 10.0 * (t - 1.0));
}
#endif 

#ifndef FNC_ELASTICOUT
#define FNC_ELASTICOUT
float elasticOut(in float t) {
    return sin(-13.0 * (t + 1.0) * HALF_PI) * pow(2.0, -10.0 * t) + 1.0;
}
#endif

#ifndef FNC_ELASTICINOUT
#define FNC_ELASTICINOUT
float elasticInOut(in float t) {
    return t < 0.5
        ? 0.5 * sin(+13.0 * HALF_PI * 2.0 * t) * pow(2.0, 10.0 * (2.0 * t - 1.0))
        : 0.5 * sin(-13.0 * HALF_PI * ((2.0 * t - 1.0) + 1.0)) * pow(2.0, -10.0 * (2.0 * t - 1.0)) + 1.0;
}
#endif

Examples

License

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