summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl')
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl18
1 files changed, 12 insertions, 6 deletions
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index 2c1cc3026f..8bc9add5cf 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -57,6 +57,8 @@ uniform mat3 ssao_effect_mat;
uniform vec3 sun_dir;
uniform vec3 moon_dir;
+uniform int sun_up_factor;
+
VARYING vec2 vary_fragcoord;
uniform mat4 inv_proj;
@@ -89,9 +91,9 @@ void main()
float envIntensity = norm.z;
norm.xyz = getNorm(tc); // unpack norm
- float da_sun = dot(norm.xyz, normalize(sun_dir.xyz));
- float da_moon = dot(norm.xyz, normalize(moon_dir.xyz));
- float da = (da_sun > 0.0) ? da_sun : da_moon;
+ float da_sun = dot(norm.xyz, sun_dir.xyz);
+ float da_moon = dot(norm.xyz, moon_dir.xyz);
+ float da = (sun_up_factor == 1) ? da_sun : da_moon;
da = clamp(da, 0.0, 1.0);
da = pow(da, global_gamma + 0.3);
@@ -106,7 +108,7 @@ void main()
vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg;
scol_ambocc = pow(scol_ambocc, vec2(global_gamma + 0.3));
- float scol = max(scol_ambocc.r, diffuse.a);
+ float scol = max(scol_ambocc.r, diffuse.a);
float ambocc = scol_ambocc.g;
vec3 sunlit;
@@ -116,7 +118,8 @@ void main()
calcFragAtmospherics(pos.xyz, ambocc, sunlit, amblit, additive, atten);
- float ambient = dot(norm.xyz, sun_dir.xyz);
+ float ambient = da;
+
ambient *= 0.5;
ambient *= ambient;
ambient = (1.0-ambient);
@@ -124,7 +127,7 @@ void main()
col.rgb = amblit;
col.rgb *= min(ambient, max(scol, 0.5));
- col += (sunlit * da) * scol;
+ col += sunlit * da * scol;
col *= diffuse.rgb;
@@ -162,6 +165,9 @@ void main()
col = fogged.rgb;
bloom = fogged.a;
#endif
+
+//col.rgb = vec3(scol);
+//col.rgb = vec3(da * scol);
}
frag_color.rgb = col;
frag_color.a = bloom;