summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llinventory/llsettingssky.cpp10
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl3
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/materialF.glsl3
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl3
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl6
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl3
-rw-r--r--indra/newview/app_settings/shaders/class3/lighting/lightV.glsl2
7 files changed, 16 insertions, 14 deletions
diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp
index cfca2d0d78..211af6a7ae 100644
--- a/indra/llinventory/llsettingssky.cpp
+++ b/indra/llinventory/llsettingssky.cpp
@@ -32,6 +32,10 @@
#include "llfasttimer.h"
#include "v3colorutil.h"
+#if LL_WINDOWS
+#pragma optimize("", off)
+#endif
+
//=========================================================================
namespace
{
@@ -1276,8 +1280,10 @@ void LLSettingsSky::calculateLightSettings() const
LLColor3 tmpAmbient = ambient + (smear(1.f) - ambient) * cloud_shadow;
//brightness of surface both sunlight and ambient
- mSunDiffuse = gammaCorrect(componentMult(sunlight, light_transmittance));
- mSunAmbient = gammaCorrect(componentMult(tmpAmbient, light_transmittance));
+ // reduce range to 0 - 1 before gamma correct to prevent clipping
+ // then restore to full 0 - 3 range before storage
+ mSunDiffuse = gammaCorrect(componentMult(sunlight * 0.33333f, light_transmittance)) * 3.0f;
+ mSunAmbient = gammaCorrect(componentMult(tmpAmbient * 0.33333f, light_transmittance)) * 3.0f;
F32 moon_brightness = getIsMoonUp() ? getMoonBrightness() : 0.001f;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index dbd7abd7e5..b439fbbff6 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
@@ -223,8 +223,7 @@ void main()
float ambient = da;
ambient *= 0.5;
ambient *= ambient;
- //ambient = max(getAmbientClamp(), ambient); // keeps shadows dark
- ambient = 1.0 - ambient;
+ ambient = min(getAmbientClamp(), 1.0 - ambient);
vec3 sun_contrib = min(final_da, shadow) * sunlit;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
index 7533762a96..274d1818f0 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
@@ -320,8 +320,7 @@ void main()
float ambient = da;
ambient *= 0.5;
ambient *= ambient;
- //ambient = max(getAmbientClamp(), ambient);
- ambient = 1.0 - ambient;
+ ambient = min(getAmbientClamp(), 1.0 - ambient);
vec3 sun_contrib = min(final_da, shadow) * sunlit;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
index b6e3951ee3..2a24915ade 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
@@ -106,8 +106,7 @@ void main()
float ambient = da;
ambient *= 0.5;
ambient *= ambient;
- //ambient = max(getAmbientClamp(), ambient);
- ambient = 1.0 - ambient;
+ ambient = min(getAmbientClamp(), 1.0 - ambient);
vec3 sun_contrib = final_da * sunlit;
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
index 6788cc1f63..7f5ac00963 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
@@ -44,7 +44,7 @@ uniform float sun_moon_glow_factor;
float getAmbientClamp()
{
- return 0.66f;
+ return 0.2f;
}
void calcAtmosphericVars(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten) {
@@ -137,7 +137,7 @@ void calcAtmosphericVars(vec3 inPositionEye, float ambFactor, out vec3 sunlit, o
+ tmpAmbient));
//brightness of surface both sunlight and ambient
- sunlit = sunlight.rgb * 0.5;
- amblit = tmpAmbient.rgb * .25;
+ sunlit = sunlight.rgb;
+ amblit = tmpAmbient.rgb;
additive *= vec3(1.0 - temp1);
}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index e41b4b99a3..39b13b46cc 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -116,8 +116,7 @@ void main()
float ambient = da;
ambient *= 0.5;
ambient *= ambient;
- //ambient = max(getAmbientClamp(), ambient);
- ambient = 1.0 - ambient;
+ ambient = min(getAmbientClamp(), 1.0 - ambient);
vec3 sun_contrib = min(scol, final_da) * sunlit;
diff --git a/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl
index 48c883d98a..2f64ab25cb 100644
--- a/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl
+++ b/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl
@@ -32,7 +32,7 @@ vec4 sumLights(vec3 pos, vec3 norm, vec4 color);
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color)
{
vec4 c = sumLights(pos, norm, color);
- c.rgb += atmosAmbient() * color.rgb;
+ c.rgb += atmosAmbient() * color.rgb * 0.25;
return c;
}