rtx: add reinhard tonemapping

This commit is contained in:
Ivan 'provod' Avdeev 2021-12-20 13:40:33 -08:00 committed by Ivan Avdeev
parent 985ea278f8
commit 0a05adaabc
1 changed files with 10 additions and 1 deletions

View File

@ -31,6 +31,14 @@ vec3 aces_tonemap(vec3 color){
return clamp(m2 * (a / b), 0.0, 1.0);
}
vec3 reinhard(vec3 color){
return color / (color + 1.0);
}
vec3 reinhard02(vec3 c, vec3 Cwhite2) {
return c * (1. + c / Cwhite2) / (1. + c);
}
float normpdf2(in float x2, in float sigma) { return 0.39894*exp(-0.5*x2/(sigma*sigma))/sigma; }
float normpdf(in float x, in float sigma) { return normpdf2(x*x, sigma); }
@ -122,7 +130,8 @@ void main() {
// TODO: should be dynamic based on previous frames brightness
colour *= 4.;
colour = aces_tonemap(colour);
//colour = aces_tonemap(colour);
colour = reinhard02(colour, vec3(400.));
imageStore(dest, pix, vec4(colour, 0.));
//imageStore(dest, pix, imageLoad(src_diffuse_gi, pix));