Browse Source

Fixes in tonemapping

Panagiotis Christopoulos Charitos 10 years ago
parent
commit
c03dc908fc
2 changed files with 5 additions and 5 deletions
  1. 4 4
      shaders/PpsTmAverageLuminance.comp.glsl
  2. 1 1
      shaders/Tonemapping.glsl

+ 4 - 4
shaders/PpsTmAverageLuminance.comp.glsl

@@ -5,6 +5,7 @@
 
 #pragma anki type comp
 #pragma anki include "shaders/Common.glsl"
+#pragma anki include "shaders/Tonemapping.glsl"
 
 #if IS_RT_MIPMAP == 0
 #	error Wrong mipmap
@@ -46,9 +47,8 @@ void main()
 		{
 			vec3 color = texelFetchOffset(
 				u_isRt, ivec2(xStart, yStart), IS_RT_MIPMAP, ivec2(x, y)).rgb;
-			float lum = dot(vec3(0.30, 0.59, 0.11), color);
-			const float DELTA = 0.000001;
-			avgLum += log(DELTA + lum);
+			float lum = computeLuminance(color);
+			avgLum += log(lum);
 		}
 	}
 
@@ -75,7 +75,7 @@ void main()
 	if(gl_LocalInvocationIndex == 0)
 	{
 		float crntLum = exp(g_avgLum[0] / float(WORKGROUP_SIZE));
-#if 1
+#if 0
 		float prevLum = u_averageLuminancePad3.x;
 
 		// Lerp between previous and new L value

+ 1 - 1
shaders/Tonemapping.glsl

@@ -16,7 +16,7 @@ float log10(in float x)
 
 float computeLuminance(in vec3 color)
 {
-	return dot(vec3(0.30, 0.59, 0.11), color);
+	return max(dot(vec3(0.30, 0.59, 0.11), color), EPSILON);
 }
 
 vec3 computeExposedColor(in vec3 color, in float avgLum, in float threshold)