blob: e7e344e0083426ad9a7908965bfe7321f3522751 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
extern vec2 distortionFactor;
extern vec2 scaleFactor;
extern number feather;
vec4 effect(vec4 color, Texture tex, vec2 uv, vec2 px) {
// to barrel coordinates
uv = uv * 2.0 - vec2(1.0);
// distort
uv *= scaleFactor;
uv += (uv.yx*uv.yx) * uv * (distortionFactor - 1.0);
number mask = (1.0 - smoothstep(1.0-feather,1.0,abs(uv.x)))
* (1.0 - smoothstep(1.0-feather,1.0,abs(uv.y)));
// to cartesian coordinates
uv = (uv + vec2(1.0)) / 2.0;
return color * Texel(tex, uv) * mask;
}
|