uniform sampler2D taccum; uniform sampler2D trevealage; uniform sampler2D tcolor; out vec4 fragColor; void main() { ivec2 C = ivec2(gl_FragCoord.xy); vec4 accum = texelFetch(taccum, C, 0); float aa = texelFetch(trevealage, C, 0).r; vec4 col = texelFetch(tcolor, C, 0); float r = accum.a; accum.a = aa; if (r >= 1.0) { fragColor = vec4(col.rgb, 0.0); } else { vec3 alp = clamp(accum.rgb / clamp(accum.a, 1e-4, 5e4), 0.0, 1.0); fragColor = vec4(col.rgb * r + alp * (1.0 - r), 0.0); } }