diff options
author | Ptolemy <ptolemy@lindenlab.com> | 2020-09-11 20:46:55 -0700 |
---|---|---|
committer | Ptolemy <ptolemy@lindenlab.com> | 2020-09-11 20:46:55 -0700 |
commit | 874d7e7e02e3bfbabbac1b31e94ad848ee854367 (patch) | |
tree | a46e9150e6ce721ec892373770fe07c65c7399e3 /indra/newview/app_settings/shaders/class1 | |
parent | f677b4187b1c8b4e6633bc8a39ef4cc9ca7577bf (diff) |
SL-13465 Restore Pre-EEP haze effecting moon
Diffstat (limited to 'indra/newview/app_settings/shaders/class1')
4 files changed, 32 insertions, 60 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl index 4366945214..35068899ee 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl @@ -1,9 +1,9 @@ /** - * @file moonF.glsl + * @file class1\deferred\moonF.glsl * * $LicenseInfo:firstyear=2005&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2005, Linden Research, Inc. + * Copyright (C) 2005, 2020 Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,46 +36,33 @@ out vec4 frag_data[3]; uniform vec4 color; uniform vec4 sunlight_color; uniform vec4 moonlight_color; -uniform vec3 lumWeights; +uniform vec3 moon_dir; uniform float moon_brightness; -uniform float minLuminance; uniform sampler2D diffuseMap; -uniform sampler2D altDiffuseMap; -uniform float blend_factor; // interp factor between moon A/B + VARYING vec2 vary_texcoord0; vec3 srgb_to_linear(vec3 c); -vec3 getAdditiveColor(); - /// Soft clips the light with a gamma correction vec3 scaleSoftClip(vec3 light); void main() { - vec4 moonA = texture2D(diffuseMap, vary_texcoord0.xy); - vec4 moonB = texture2D(altDiffuseMap, vary_texcoord0.xy); - vec4 c = mix(moonA, moonB, blend_factor); - - c.rgb = srgb_to_linear(c.rgb); - - // mix factor which blends when sunlight is brighter - // and shows true moon color at night - vec3 luma_weights = vec3(0.3, 0.5, 0.3); - - vec4 light_color = max(sunlight_color, moonlight_color); - float blend = 1.0 - dot(normalize(light_color.rgb), luma_weights); - - vec3 exp = vec3(1.0 - blend * moon_brightness) * 2.0 - 1.0; - c.rgb = pow(c.rgb, exp); + // Restore Pre-EEP alpha fade moon near horizon + float fade = 1.0; + if( moon_dir.z > 0 ) + fade = clamp( moon_dir.z*moon_dir.z*4.0, 0.0, 1.0 ); - //c.rgb *= moonlight_color.rgb; + vec4 c = texture2D(diffuseMap, vary_texcoord0.xy); +// c.rgb = srgb_to_linear(c.rgb); + c.rgb *= moonlight_color.rgb; + c.rgb *= moon_brightness; - // Partial atmospherics calculation - vec3 ac = getAdditiveColor(); - c.rgb += ac; + c.rgb *= fade; + c.a *= fade; - c.rgb = scaleSoftClip(c.rgb); + c.rgb = scaleSoftClip(c.rgb); frag_data[0] = vec4(c.rgb, c.a); frag_data[1] = vec4(0.0); diff --git a/indra/newview/app_settings/shaders/class1/deferred/moonV.glsl b/indra/newview/app_settings/shaders/class1/deferred/moonV.glsl index 1fed9d39e2..c4922afd7d 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/moonV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/moonV.glsl @@ -1,9 +1,9 @@ /** - * @file moonV.glsl + * @file class1\deferred\moonV.glsl * * $LicenseInfo:firstyear=2007&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. + * Copyright (C) 2007, 2020 Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,8 +32,6 @@ ATTRIBUTE vec2 texcoord0; VARYING vec2 vary_texcoord0; -void calcAtmospherics(vec3 eye_pos); - void main() { //transform vertex @@ -42,7 +40,5 @@ void main() gl_Position = modelview_projection_matrix*vert; - calcAtmospherics(pos.xyz); - vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; } diff --git a/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl b/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl index 72d2c4cdfa..2425a2ad04 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl @@ -3,7 +3,7 @@ * * $LicenseInfo:firstyear=2005&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2005, Linden Research, Inc. + * Copyright (C) 2005, 2020 Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,37 +36,30 @@ out vec4 frag_color; uniform vec4 color; uniform vec4 sunlight_color; uniform vec4 moonlight_color; -uniform vec3 lumWeights; +uniform vec3 moon_dir; uniform float moon_brightness; -uniform float minLuminance; uniform sampler2D diffuseMap; -uniform sampler2D altDiffuseMap; -uniform float blend_factor; // interp factor between moon A/B + VARYING vec2 vary_texcoord0; -vec3 getAdditiveColor(); vec3 scaleSoftClip(vec3 light); void main() { - vec4 moonA = texture2D(diffuseMap, vary_texcoord0.xy); - vec4 moonB = texture2D(altDiffuseMap, vary_texcoord0.xy); - vec4 c = mix(moonA, moonB, blend_factor); - - // mix factor which blends when sunlight is brighter - // and shows true moon color at night - vec3 luma_weights = vec3(0.3, 0.5, 0.3); - float blend = 1.0f - dot(normalize(sunlight_color.rgb), luma_weights); + // Restore Pre-EEP alpha fade moon near horizon + float fade = 1.0; + if( moon_dir.z > 0 ) + fade = clamp( moon_dir.z*moon_dir.z*4.0, 0.0, 1.0 ); - vec3 exp = vec3(1.0 - blend * moon_brightness) * 2.0 - 1.0; - c.rgb = pow(c.rgb, exp); - //c.rgb *= moonlight_color.rgb; + vec4 c = texture2D(diffuseMap, vary_texcoord0.xy); +// c.rgb = pow(c.rgb, vec3(0.7f)); // can't use "srgb_to_linear(color.rgb)" as that is a deferred only function + c.rgb *= moonlight_color.rgb; + c.rgb *= moon_brightness; - // Partial atmospherics calculation - vec3 ac = getAdditiveColor(); - c.rgb += ac; + c.rgb *= fade; + c.a *= fade; - c.rgb = scaleSoftClip(c.rgb); + c.rgb = scaleSoftClip(c.rgb); frag_color = vec4(c.rgb, c.a); } diff --git a/indra/newview/app_settings/shaders/class1/windlight/moonV.glsl b/indra/newview/app_settings/shaders/class1/windlight/moonV.glsl index c4cdd06e28..2fceb5f743 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/moonV.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/moonV.glsl @@ -3,7 +3,7 @@ * * $LicenseInfo:firstyear=2007&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2007, Linden Research, Inc. + * Copyright (C) 2007, 2020 Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -30,8 +30,6 @@ uniform mat4 modelview_projection_matrix; ATTRIBUTE vec3 position; ATTRIBUTE vec2 texcoord0; -void calcAtmospherics(vec3 inPositionEye); - VARYING vec2 vary_texcoord0; void main() @@ -43,6 +41,4 @@ void main() gl_Position = modelview_projection_matrix*vert; vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; - - calcAtmospherics(pos.xyz); } |