From 0e2d9affb26543a504cace9142354941a315964f Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Tue, 16 Aug 2016 00:22:00 +0200 Subject: [PATCH] Make sure tonemap shader never takes the sqrt of a negative number Fix bug where the old hardcoded exposure bias was still being used in the uncharted2 tonemap --- wadsrc/static/shaders/glsl/tonemap.fp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wadsrc/static/shaders/glsl/tonemap.fp b/wadsrc/static/shaders/glsl/tonemap.fp index 35388b7b8c..110cb6030f 100644 --- a/wadsrc/static/shaders/glsl/tonemap.fp +++ b/wadsrc/static/shaders/glsl/tonemap.fp @@ -7,12 +7,14 @@ uniform float ExposureAdjustment; vec3 Linear(vec3 c) { + //c = max(c, vec3(0.0)); //return pow(c, 2.2); return c * c; // cheaper, but assuming gamma of 2.0 instead of 2.2 } vec3 sRGB(vec3 c) { + c = max(c, vec3(0.0)); //return pow(c, vec3(1.0 / 2.2)); return sqrt(c); // cheaper, but assuming gamma of 2.0 instead of 2.2 } @@ -56,8 +58,7 @@ vec3 Uncharted2Tonemap(vec3 x) vec3 Tonemap(vec3 color) { float W = 11.2; - float ExposureBias = 2.0; - vec3 curr = Uncharted2Tonemap(ExposureBias * color); + vec3 curr = Uncharted2Tonemap(color); vec3 whiteScale = vec3(1) / Uncharted2Tonemap(vec3(W)); return sRGB(curr * whiteScale); }