diff options
author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2020-09-28 22:39:06 +0300 |
---|---|---|
committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2020-09-28 22:39:06 +0300 |
commit | 83822fd1992140b85966ca613b026c4bc6c38005 (patch) | |
tree | 8dadfcd76a9c27193e8009d1d361e91e41cf7e71 /indra/newview/app_settings/shaders/class1/windlight/moonF.glsl | |
parent | 652e8459001e052edd6eeef0b919d4d68c8daa58 (diff) | |
parent | bac6652cdcd2d8333df04c3ebd3a6a7b752328b3 (diff) |
Merge branch 'master' into DRTVWR-516-maint
# Conflicts:
# indra/newview/llvocache.cpp
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/windlight/moonF.glsl')
-rw-r--r-- | indra/newview/app_settings/shaders/class1/windlight/moonF.glsl | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl b/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl index 24f3992e32..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,28 +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 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); + // 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 ); + + 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; - // 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 mix = 1.0f - dot(normalize(sunlight_color.rgb), luma_weights); + c.rgb *= fade; + c.a *= fade; - vec3 exp = vec3(1.0 - mix * moon_brightness) * 2.0 - 1.0; - c.rgb = pow(c.rgb, exp); - //c.rgb *= moonlight_color.rgb; + c.rgb = scaleSoftClip(c.rgb); frag_color = vec4(c.rgb, c.a); } |