2016-03-16 13:33:06 -04:00
|
|
|
uniform sampler2D taccum;
|
|
|
|
uniform sampler2D trevealage;
|
2020-12-27 13:14:39 -05:00
|
|
|
uniform sampler2D tcolor;
|
2016-03-16 13:33:06 -04:00
|
|
|
|
|
|
|
out vec4 fragColor;
|
|
|
|
|
|
|
|
void main() {
|
2016-03-20 16:17:21 -04:00
|
|
|
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);
|
2016-03-16 13:33:06 -04:00
|
|
|
|
2016-03-20 16:17:21 -04:00
|
|
|
float r = accum.a;
|
|
|
|
accum.a = aa;
|
|
|
|
if (r >= 1.0) {
|
2021-08-29 21:25:35 -04:00
|
|
|
fragColor = vec4(col.rgb, 1.0);
|
2016-03-20 16:17:21 -04:00
|
|
|
} else {
|
|
|
|
vec3 alp = clamp(accum.rgb / clamp(accum.a, 1e-4, 5e4), 0.0, 1.0);
|
2021-08-29 21:25:35 -04:00
|
|
|
fragColor = vec4(col.rgb * r + alp * (1.0 - r), 1.0);
|
2016-03-20 16:17:21 -04:00
|
|
|
}
|
2016-03-16 13:33:06 -04:00
|
|
|
}
|