 // outside of what currently has color
 
 void main(void) {
-    fragColor = composite(texture(iChannel[2], uv) * mix(0.95, 0.995, iIntensity), texture(iInput, uv));
+    vec4 oldC = texture(iChannel[2], uv);
+    float d = mix(0.01, 0.001, iIntensity);
+    oldC = max(oldC - d, vec4(0.));
+    vec4 newC = texture(iInput, uv);
+    fragColor = max(oldC, newC);
 }

void main(void) {
    vec2 normCoord = (uv - 0.5) * aspectCorrection;

    float bs = 2048. * pow(2, -5. * iIntensity);
    vec2 bins = bs * aspectCorrection;
    vec2 db = 1. / (bins * aspectCorrection);
    normCoord = round(normCoord * bins) * db + 0.5;

    float alive = texture(iChannel[1], uv).r;
    vec4 under = texture(iInput, uv);
    vec4 over = alive * texture(iChannel[2], uv);
    over *= smoothstep(0., 0.2, iIntensity);
    fragColor = composite(under, over);
}

#buffershader
