lygia
/animation
/easing
/bounce
)Bounce easing. From https://github.com/stackgl/glsl-easings
Dependencies:
lygia
/math
/const
.glsl
lygia
/animation
/easing
/bounceOut
.glsl
lygia
/animation
/easing
/bounceIn
.glsl
lygia
/animation
/easing
/bounceInOut
.glsl
Use:
<float> bounceIn(<float> x)
<float> bounceOut(<float> x)
<float> bounceInOut(<float> x)
Dependencies:
Use:
bounce<In|Out|InOut>(<float> x)
#ifndef FNC_BOUNCEOUT
#define FNC_BOUNCEOUT
float bounceOut(in float t) {
const float a = 4.0 / 11.0;
const float b = 8.0 / 11.0;
const float c = 9.0 / 10.0;
const float ca = 4356.0 / 361.0;
const float cb = 35442.0 / 1805.0;
const float cc = 16061.0 / 1805.0;
float t2 = t * t;
return t < a
? 7.5625 * t2
: t < b
? 9.075 * t2 - 9.9 * t + 3.4
: t < c
? ca * t2 - cb * t + cc
: 10.8 * t * t - 20.52 * t + 10.72;
}
#endif
#ifndef FNC_BOUNCEIN
#define FNC_BOUNCEIN
float bounceIn(in float t) {
return 1.0 - bounceOut(1.0 - t);
}
#endif
#ifndef FNC_BOUNCEINOUT
#define FNC_BOUNCEINOUT
float bounceInOut(in float t) {
return t < 0.5
? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))
: 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;
}
#endif
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.
Sign up for the news letter bellow, joing the LYGIA's channel on Discord or follow the Github repository