mirror of
https://github.com/VectorKappa/dotfiles.git
synced 2025-12-19 16:26:10 +01:00
66 lines
1.8 KiB
GLSL
66 lines
1.8 KiB
GLSL
// The Nord colorscheme is used by default,
|
|
// but you can make your own by changing `colors`
|
|
|
|
uniform float opacity;
|
|
uniform float time;
|
|
uniform bool invert_color;
|
|
uniform sampler2D tex;
|
|
|
|
float sin_rand() {
|
|
return sin(gl_FragCoord.x + cos(gl_FragCoord.y));
|
|
}
|
|
|
|
float random(float seedChange) {
|
|
vec2 seed = gl_FragCoord.xy + sin(seedChange);
|
|
return fract(dot(vec2(sin(mod(seed.x / cos(seed.y), 5.0) * 10000.0)), vec2(1.1, 12.2)));
|
|
}
|
|
|
|
void main() {
|
|
vec4 c = texture2D(tex, gl_TexCoord[0].xy);
|
|
vec4 d = c;
|
|
vec3 colors[16];
|
|
colors[0 ] = vec3(0.18 ,0.204,0.251);
|
|
colors[1 ] = vec3(0.231,0.259,0.322);
|
|
colors[2 ] = vec3(0.263,0.298,0.369);
|
|
colors[3 ] = vec3(0.298,0.337,0.416);
|
|
colors[4 ] = vec3(0.847,0.871,0.914);
|
|
colors[5 ] = vec3(0.898,0.914,0.941);
|
|
colors[6 ] = vec3(0.925,0.937,0.957);
|
|
colors[7 ] = vec3(0.561,0.737,0.733);
|
|
colors[8 ] = vec3(0.533,0.753,0.816);
|
|
colors[9 ] = vec3(0.506,0.631,0.757);
|
|
colors[10] = vec3(0.369,0.506,0.675);
|
|
colors[11] = vec3(0.749,0.38 ,0.416);
|
|
colors[12] = vec3(0.816,0.529,0.439);
|
|
colors[13] = vec3(0.922,0.796,0.545);
|
|
colors[14] = vec3(0.639,0.745,0.549);
|
|
colors[15] = vec3(0.706,0.557,0.678);
|
|
|
|
float mindist = 100.0;
|
|
int minind = 0;
|
|
float mindist2 = 100.0;
|
|
int minind2 = 0;
|
|
for (int i = 0; i < 16; i++) {
|
|
float dist = length(c.xyz - colors[i]);
|
|
if (dist < mindist) {
|
|
mindist2 = mindist;
|
|
mindist = dist;
|
|
minind2 = minind;
|
|
minind = i;
|
|
}
|
|
}
|
|
float ratio = mindist / (mindist + mindist2);
|
|
float r = random(1.0) * 0.4 + 0.25;
|
|
if (r > ratio)
|
|
c.xyz = colors[minind];
|
|
else
|
|
c.xyz = colors[minind2];
|
|
|
|
c.xyz = mix(mix(colors[minind], colors[minind2], ratio), c.xyz, 0.5);
|
|
|
|
if (invert_color)
|
|
c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);
|
|
c *= opacity;
|
|
gl_FragColor = vec4(c);
|
|
}
|