feat: blur-chromatic kombinations-shader

This commit is contained in:
2026-04-23 21:21:45 +02:00
parent e7c71b2675
commit 4d6553bb55
+62
View File
@@ -0,0 +1,62 @@
#version 300 es
precision highp float;
in vec2 v_texcoord;
uniform sampler2D tex;
out vec4 fragColor;
float blur_channel_r(vec2 center) {
float o = 0.003;
float c = 0.0;
c += texture(tex, center + vec2(-o, -o)).r * 0.0625;
c += texture(tex, center + vec2( 0, -o)).r * 0.125;
c += texture(tex, center + vec2( o, -o)).r * 0.0625;
c += texture(tex, center + vec2(-o, 0)).r * 0.125;
c += texture(tex, center ).r * 0.25;
c += texture(tex, center + vec2( o, 0)).r * 0.125;
c += texture(tex, center + vec2(-o, o)).r * 0.0625;
c += texture(tex, center + vec2( 0, o)).r * 0.125;
c += texture(tex, center + vec2( o, o)).r * 0.0625;
return c;
}
float blur_channel_g(vec2 center) {
float o = 0.003;
float c = 0.0;
c += texture(tex, center + vec2(-o, -o)).g * 0.0625;
c += texture(tex, center + vec2( 0, -o)).g * 0.125;
c += texture(tex, center + vec2( o, -o)).g * 0.0625;
c += texture(tex, center + vec2(-o, 0)).g * 0.125;
c += texture(tex, center ).g * 0.25;
c += texture(tex, center + vec2( o, 0)).g * 0.125;
c += texture(tex, center + vec2(-o, o)).g * 0.0625;
c += texture(tex, center + vec2( 0, o)).g * 0.125;
c += texture(tex, center + vec2( o, o)).g * 0.0625;
return c;
}
float blur_channel_b(vec2 center) {
float o = 0.003;
float c = 0.0;
c += texture(tex, center + vec2(-o, -o)).b * 0.0625;
c += texture(tex, center + vec2( 0, -o)).b * 0.125;
c += texture(tex, center + vec2( o, -o)).b * 0.0625;
c += texture(tex, center + vec2(-o, 0)).b * 0.125;
c += texture(tex, center ).b * 0.25;
c += texture(tex, center + vec2( o, 0)).b * 0.125;
c += texture(tex, center + vec2(-o, o)).b * 0.0625;
c += texture(tex, center + vec2( 0, o)).b * 0.125;
c += texture(tex, center + vec2( o, o)).b * 0.0625;
return c;
}
void main() {
float chroma = 0.004;
float a = texture(tex, v_texcoord).a;
float r = blur_channel_r(v_texcoord + vec2( chroma, 0.0));
float g = blur_channel_g(v_texcoord);
float b = blur_channel_b(v_texcoord - vec2( chroma, 0.0));
fragColor = vec4(r, g, b, a);
}