From 800503bbad9dfa500464deab6f45269fad1ffee5 Mon Sep 17 00:00:00 2001 From: klemek Date: Sun, 9 Nov 2025 18:40:01 +0100 Subject: [PATCH] fix: small optimizations --- default/frag7.glsl | 2 ++ default/inc_fx.glsl | 36 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/default/frag7.glsl b/default/frag7.glsl index 521d6f7..0b28512 100644 --- a/default/frag7.glsl +++ b/default/frag7.glsl @@ -26,5 +26,7 @@ void main() { float k = mean(color_a); + mix_value = mix(mix_value * 0.9 + 0.05, mix_value, iDemo); + fragColor = mix(color_b, color_a, mix_type ? step(mix_value, k) : mix_value); } \ No newline at end of file diff --git a/default/inc_fx.glsl b/default/inc_fx.glsl index 07414ea..18f4dc6 100644 --- a/default/inc_fx.glsl +++ b/default/inc_fx.glsl @@ -371,48 +371,48 @@ subroutine(fx_stage_sub) vec4 fx_12(vec2 vUV, sampler2D previous, sampler2D feed float p = 1 / k1; uv2 = round(uv2 * k1) / k1; vec3 c1 = mix( - gauss(previous, (uv2 + vec2(0.5, 0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(0.5, 0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(0.5, 0.5) * p).xyz, + reframe(feedback, uv2 + vec2(0.5, 0.5) * p).xyz, fb ); vec3 c2 = mix( - gauss(previous, (uv2 + vec2(1.5, 0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(1.5, 0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(1.5, 0.5) * p).xyz, + reframe(feedback, uv2 + vec2(1.5, 0.5) * p).xyz, fb ); vec3 c3 = mix( - gauss(previous, (uv2 + vec2(1.5, 1.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(1.5, 1.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(1.5, 1.5) * p).xyz, + reframe(feedback, uv2 + vec2(1.5, 1.5) * p).xyz, fb ); vec3 c4 = mix( - gauss(previous, (uv2 + vec2(0.5, 1.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(0.5, 1.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(0.5, 1.5) * p).xyz, + reframe(feedback, uv2 + vec2(0.5, 1.5) * p).xyz, fb ); vec3 c5 = mix( - gauss(previous, (uv2 + vec2(-0.5, 1.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(-0.5, 1.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(-0.5, 1.5) * p).xyz, + reframe(feedback, uv2 + vec2(-0.5, 1.5) * p).xyz, fb ); vec3 c6 = mix( - gauss(previous, (uv2 + vec2(-0.5, 0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(-0.5, 0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(-0.5, 0.5) * p).xyz, + reframe(feedback, uv2 + vec2(-0.5, 0.5) * p).xyz, fb ); vec3 c7 = mix( - gauss(previous, (uv2 + vec2(-0.5, -0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(-0.5, -0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(-0.5, -0.5) * p).xyz, + reframe(feedback, uv2 + vec2(-0.5, -0.5) * p).xyz, fb ); vec3 c8 = mix( - gauss(previous, (uv2 + vec2(0.5, -0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(0.5, -0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(0.5, -0.5) * p).xyz, + reframe(feedback, uv2 + vec2(0.5, -0.5) * p).xyz, fb ); vec3 c9 = mix( - gauss(previous, (uv2 + vec2(-0.5, -0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, - gauss(feedback, (uv2 + vec2(-0.5, -0.5) * p) * vec2(1 / ratio, 1) + .5, 1, 0.1).xyz, + reframe(previous, uv2 + vec2(-0.5, -0.5) * p).xyz, + reframe(feedback, uv2 + vec2(-0.5, -0.5) * p).xyz, fb ); bool alive = mean(c1) >= threshold;