mirror of
https://github.com/VectorKappa/dotfiles.git
synced 2025-12-19 08:16:10 +01:00
More shaders
This commit is contained in:
65
picom/.config/picom-shaders/nordify.glsl
Normal file
65
picom/.config/picom-shaders/nordify.glsl
Normal file
@@ -0,0 +1,65 @@
|
||||
// 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);
|
||||
}
|
||||
Reference in New Issue
Block a user