summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class2
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/app_settings/shaders/class2')
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl28
1 files changed, 14 insertions, 14 deletions
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index 7fd4d7e248..57997245f8 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -51,6 +51,7 @@ uniform vec3 camPosLocal;
uniform float cloud_shadow;
uniform float max_y;
uniform float global_gamma;
+uniform float display_gamma;
uniform mat3 env_mat;
uniform vec4 shadow_clip;
uniform mat3 ssao_effect_mat;
@@ -93,27 +94,26 @@ void main()
vec3 light_dir = (sun_up_factor == 1) ? sun_dir : moon_dir;
- float da = dot(norm.xyz, light_dir.xyz);
+ float scol = 1.0;
+ vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg;
+
+ float da = dot(normalize(norm.xyz), light_dir.xyz);
da = clamp(da, 0.0, 1.0);
+ float light_gamma = 1.0/1.3;
+ da = pow(da, light_gamma);
+
vec4 diffuse = texture2DRect(diffuseRect, tc);
-
+
+ scol = max(scol_ambocc.r, diffuse.a);
+
vec3 col;
- float scol = 1.0;
float bloom = 0.0;
{
vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy);
-
- vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg;
- scol_ambocc = pow(scol_ambocc, vec2(global_gamma + 0.3));
- scol = max(scol_ambocc.r, diffuse.a);
float ambocc = scol_ambocc.g;
- float final_da = da;
- final_da = min(final_da, scol);
- final_da = pow(final_da, global_gamma + 0.3);
-
vec3 sunlit;
vec3 amblit;
vec3 additive;
@@ -121,12 +121,12 @@ void main()
calcFragAtmospherics(pos.xyz, ambocc, sunlit, amblit, additive, atten);
- float ambient = min(da, 1.0);
+ float ambient = min(abs(da), 1.0);
ambient *= 0.5;
ambient *= ambient;
- ambient = min(1.0 - ambient,max(scol,0.3));
+ ambient = 1.0 - ambient * smoothstep(0.0, 0.3, scol);
- vec3 sun_contrib = sunlit * final_da;
+ vec3 sun_contrib = min(da,scol) * sunlit;
col.rgb = amblit;
col.rgb *= ambient;