From ee8953fea0b1b17121bf7d409053e2e4a102b403 Mon Sep 17 00:00:00 2001 From: klemek Date: Tue, 16 Sep 2025 23:30:26 +0200 Subject: [PATCH] 16 stages --- shaders/frag0.glsl | 170 ++++++++++++++++++++++++++++++++++++++++++--- shaders/frag5.glsl | 2 +- src/config.h | 2 +- 3 files changed, 163 insertions(+), 11 deletions(-) diff --git a/shaders/frag0.glsl b/shaders/frag0.glsl index 85d8bfd..8e3c57b 100644 --- a/shaders/frag0.glsl +++ b/shaders/frag0.glsl @@ -891,6 +891,84 @@ subroutine(src_stage_sub) vec3 src_2(vec2 vUV) return vec3(v); } +subroutine(src_stage_sub) vec3 src_3(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_4(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_5(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_6(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_7(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_8(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_9(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_10(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_11(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_12(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_13(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_14(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + +subroutine(src_stage_sub) vec3 src_15(vec2 vUV) +{ + // TODO tmp + return vec3(vUV, 0.0); +} + // 6. effects // ---------- @@ -916,31 +994,105 @@ subroutine(fx_stage_sub) vec3 fx_2(vec2 vUV, sampler2D previous, sampler2D feedb return gauss3(previous, vUV, 0.001); } +subroutine(fx_stage_sub) vec3 fx_3(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_4(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_5(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_6(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_7(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_8(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_9(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_10(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_11(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_12(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_13(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_14(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + +subroutine(fx_stage_sub) vec3 fx_15(vec2 vUV, sampler2D previous, sampler2D feedback) +{ + // TODO tmp + return texture(previous, vUV).xyz; +} + // 7. mix // ---------- -subroutine vec3 mix_stage_sub(vec2 vUV, sampler2D frame_a, sampler2D frame_b); +subroutine vec3 mix_stage_sub(vec2 vUV, sampler2D frame_a, sampler2D frame_b, float lvl); subroutine uniform mix_stage_sub mix_stage; -subroutine(mix_stage_sub) vec3 mix_0(vec2 vUV, sampler2D fa, sampler2D fb) +subroutine(mix_stage_sub) vec3 mix_0(vec2 vUV, sampler2D fa, sampler2D fb, float lvl) { - float v = 0.5; - vec3 color_a = texture(fa, vUV).xyz; vec3 color_b = texture(fb, vUV).xyz; - return mix(color_b, color_a, v); + return mix(color_b, color_a, lvl); } -subroutine(mix_stage_sub) vec3 mix_1(vec2 vUV, sampler2D fa, sampler2D fb) +subroutine(mix_stage_sub) vec3 mix_1(vec2 vUV, sampler2D fa, sampler2D fb, float lvl) { - float v = 0.5; - vec3 color_a = texture(fa, vUV).xyz; vec3 color_b = texture(fb, vUV).xyz; float k = mean(color_a); - return mix(color_b, color_a, step(v, k)); + return mix(color_b, color_a, step(lvl, k)); } \ No newline at end of file diff --git a/shaders/frag5.glsl b/shaders/frag5.glsl index ee1da15..806f4c5 100644 --- a/shaders/frag5.glsl +++ b/shaders/frag5.glsl @@ -8,5 +8,5 @@ in vec2 vUV; layout(location = 7) out vec3 fragColor; void main() { - fragColor = mix_stage(vUV, frame5, frame6); + fragColor = mix_stage(vUV, frame5, frame6, sin(iTime * 0.25) * 0.3 + 0.3); // TODO tmp } \ No newline at end of file diff --git a/src/config.h b/src/config.h index 67c6acb..b5c8a3f 100644 --- a/src/config.h +++ b/src/config.h @@ -18,7 +18,7 @@ #endif #ifndef SUB_COUNT -#define SUB_COUNT 3 // TODO 16 +#define SUB_COUNT 16 #endif #endif \ No newline at end of file