diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl')
-rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl index 3432bf07ef..4331418b33 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl @@ -37,22 +37,18 @@ uniform sampler2D emissiveRect; uniform sampler2D normalMap; uniform float diffuse_luminance_scale; -float lum(vec3 col) -{ - vec3 l = vec3(0.2126, 0.7152, 0.0722); - return dot(l, col); -} void main() { + const vec3 l = vec3(0.2126, 0.7152, 0.0722); vec2 tc = vary_fragcoord*0.6+0.2; tc.y -= 0.1; // HACK - nudge exposure sample down a little bit to favor ground over sky vec3 c = texture(diffuseRect, tc).rgb; vec4 norm = texture(normalMap, tc); - if (!GET_GBUFFER_FLAG(GBUFFER_FLAG_HAS_HDRI) && - !GET_GBUFFER_FLAG(GBUFFER_FLAG_SKIP_ATMOS)) + if (!GET_GBUFFER_FLAG(norm.w, GBUFFER_FLAG_HAS_HDRI) && + !GET_GBUFFER_FLAG(norm.w, GBUFFER_FLAG_SKIP_ATMOS)) { // Apply the diffuse luminance scale to objects but not the sky // Prevents underexposing when looking at bright environments @@ -62,7 +58,7 @@ void main() c += texture(emissiveRect, tc).rgb; - float L = lum(c); + float L = dot(l, c); frag_color = vec4(max(L, 0.0)); } |