summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl19
1 files changed, 15 insertions, 4 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
index c81d0f97da..c7426788c4 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
@@ -106,16 +106,23 @@ void main()
float ambient = da;
ambient *= 0.5;
ambient *= ambient;
- ambient = min(getAmbientClamp(), 1.0 - ambient);
+
+ ambient = (1.0 - ambient);
+ float ambient_clamp = getAmbientClamp() + 0.1;
+ ambient *= ambient_clamp;
vec3 sun_contrib = final_da * sunlit;
+#if !defined(AMBIENT_KILL)
color.rgb = amblit;
color.rgb *= ambient;
+#endif
vec3 post_ambient = color.rgb;
+#if !defined(SUNLIGHT_KILL)
color.rgb += sun_contrib;
+#endif
vec3 post_sunlight = color.rgb;
@@ -153,7 +160,7 @@ vec3 post_diffuse = color.rgb;
vec3 post_spec = color.rgb;
#ifndef WATER_FOG
- color.rgb = mix(color.rgb, diffuse_srgb.rgb, diffuse_srgb.a);
+ color.rgb += diffuse_srgb.rgb * diffuse_srgb.a;
#endif
if (envIntensity > 0.0)
@@ -179,11 +186,10 @@ vec3 post_atmo = color.rgb;
bloom = fogged.a;
#endif
+// srgb colorspace debuggables
//color.rgb = amblit;
-//color.rgb = vec3(ambient);
//color.rgb = sunlit;
//color.rgb = post_ambient;
-//color.rgb = vec3(final_da);
//color.rgb = sun_contrib;
//color.rgb = post_sunlight;
//color.rgb = diffuse_srgb.rgb;
@@ -197,6 +203,11 @@ vec3 post_atmo = color.rgb;
color.rgb = srgb_to_linear(color.rgb);
}
+// linear debuggables
+//color.rgb = vec3(final_da);
+//color.rgb = vec3(ambient);
+//color.rgb = vec3(scol);
+
frag_color.rgb = color.rgb;
frag_color.a = bloom;
}