A bad chroma-key edge — glow bleeding backward from where the matte gave up.
GLSL fragment shader
The effect's own code. The uniforms and helpers above it — uTex, uFeedback, the depth proxy, the frame ring, depthAt(), timeAt() — are the same header every Ether-MOSH shader opens with, and are documented once on the registry rather than reprinted on all 143 pages.
void main(){ // The depth proxy is soft and blobby by construction (see the header // comment on uDepthTex), never a hard cutout, so a gradient-based edge // detector starves against it. A band around the subject/background // midpoint finds the same "matte gave up here" zone without depending on // how steep the transition happens to be. vec4 c = texture2D(uTex, vUv); float d = depthAt(vUv); float band = clamp(1.0 - abs(d - 0.5) * 2.0, 0.0, 1.0); float edge = pow(band, mix(5.0, 0.6, uWidth)); vec3 haloColor = vec3(0.1, 1.0, 0.5); vec3 result = mix(c.rgb, haloColor, edge * uGlow); result = mix(result, 1.0 - c.rgb, d * edge * 0.35 * uGlow); gl_FragColor = vec4(result, c.a); }