32 lines
No EOL
852 B
GLSL
32 lines
No EOL
852 B
GLSL
#include "../../math/const.glsl"
|
|
|
|
/*
|
|
contributors: Hugh Kennedy (https://github.com/hughsk)
|
|
description: Bounce out easing. From https://github.com/stackgl/glsl-easings
|
|
use: <float> bounceOut(<float> x)
|
|
examples:
|
|
- https://raw.githubusercontent.com/eduardfossas/lygia-study-examples/main/animation/e_EasingBounce.frag
|
|
*/
|
|
|
|
#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 |