23 lines
482 B
GLSL
23 lines
482 B
GLSL
#define M_PI 3.1415926535897932384626433832795
|
|
|
|
uniform float size;
|
|
|
|
vec4 process(vec4 col) {
|
|
float maxFactor = 2.0 - (size * 0.01);
|
|
|
|
vec2 uv;
|
|
vec2 xy = 2.0 * v_texcoord - 1.0;
|
|
float d = length(xy);
|
|
if (d < (2.0-maxFactor)) {
|
|
d = length(xy * maxFactor);
|
|
float z = sqrt(1.0 - d * d);
|
|
float r = atan(d, z) / M_PI;
|
|
float phi = atan(xy.y, xy.x);
|
|
|
|
uv.x = r * cos(phi) + 0.5;
|
|
uv.y = r * sin(phi) + 0.5;
|
|
} else {
|
|
uv = v_texcoord;
|
|
}
|
|
return texture2D(texture, uv);
|
|
} |