feat: crt/vignette/chromatic-aberration/pixelate shader + dynamischer F10-cycle

This commit is contained in:
2026-04-23 21:07:00 +02:00
parent 55668c1fb0
commit d3c70b0f84
7 changed files with 88 additions and 0 deletions
@@ -0,0 +1,17 @@
#version 300 es
precision highp float;
in vec2 v_texcoord;
uniform sampler2D tex;
out vec4 fragColor;
void main() {
float offset = 0.004;
float r = texture(tex, v_texcoord + vec2( offset, 0.0)).r;
float g = texture(tex, v_texcoord ).g;
float b = texture(tex, v_texcoord - vec2( offset, 0.0)).b;
float a = texture(tex, v_texcoord).a;
fragColor = vec4(r, g, b, a);
}
+20
View File
@@ -0,0 +1,20 @@
#version 300 es
precision highp float;
in vec2 v_texcoord;
uniform sampler2D tex;
out vec4 fragColor;
void main() {
vec4 c = texture(tex, v_texcoord);
// Scanlines: jede zweite Zeile leicht abdunkeln
float scanline = mod(floor(v_texcoord.y * 1000.0), 2.0);
c.rgb *= 1.0 - scanline * 0.25;
// Leichte Vignette für den Röhren-Look
vec2 uv = v_texcoord - 0.5;
c.rgb *= 1.0 - dot(uv, uv) * 1.2;
fragColor = c;
}
+12
View File
@@ -0,0 +1,12 @@
#version 300 es
precision highp float;
in vec2 v_texcoord;
uniform sampler2D tex;
out vec4 fragColor;
void main() {
float pixelSize = 0.005;
vec2 uv = floor(v_texcoord / pixelSize) * pixelSize;
fragColor = texture(tex, uv);
}
+16
View File
@@ -0,0 +1,16 @@
#version 300 es
precision highp float;
in vec2 v_texcoord;
uniform sampler2D tex;
out vec4 fragColor;
void main() {
vec4 c = texture(tex, v_texcoord);
vec2 uv = v_texcoord - 0.5;
float vignette = 1.0 - dot(uv, uv) * 2.2;
c.rgb *= clamp(vignette, 0.0, 1.0);
fragColor = c;
}