gain
A fast variation of Ken Perlin's gain function developed by Christophe Schlick.
- gain(g, x)
- Returns the given value with a gain function applied to it.
COPY- /// @func gain(g, x)
- ///
- /// @desc Returns the given value with a gain function applied to it.
- ///
- /// If x varies over the [0,1] interval, then the result also
- /// varies over that interval. The 0 and 1 endpoints of the
- /// interval are mapped onto themselves. Regardless of the value
- /// of g, all gain functions return 0.5 when x is 0.5. Above
- /// and below 0.5 the gain function consists of two scaled-down
- /// bias curves forming an S-shaped curve.
- ///
- /// @param {real} g gain
- /// @param {real} x value
- ///
- /// @return {real} adjusted value
- ///
- /// GMLscripts.com/license
-
- function gain(g, x)
- {
- var p;
- p = (1 / g - 2) * (1 - 2 * x);
- if (x < 0.5) return x / (p + 1);
- return (p - x) / (p - 1);
- }
Contributors: xot
GitHub: View · Commits · Blame · Raw