summaryrefslogtreecommitdiff
path: root/indra/llinventory
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-05-21 16:00:45 -0700
committerGraham Linden <graham@lindenlab.com>2019-05-21 16:00:45 -0700
commite9dbee00262a437e4b3f971b37ea636e92032133 (patch)
tree57f79641ee532f3f80b0fbd89d3a1f42de398829 /indra/llinventory
parent78e62fe0f16d95a2afb6c4205b121db189c297b9 (diff)
SL-11238
Fix ambient light inputs to the renderer. Fix 3rd sky shader w/ mistaken density mod conversion. Make ambient clamp apply to all modes. Tune ALM ambient clamp to match non-ALM.
Diffstat (limited to 'indra/llinventory')
-rw-r--r--indra/llinventory/llsettingssky.cpp30
-rw-r--r--indra/llinventory/llsettingssky.h3
2 files changed, 26 insertions, 7 deletions
diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp
index e02ecc8a33..fecca12905 100644
--- a/indra/llinventory/llsettingssky.cpp
+++ b/indra/llinventory/llsettingssky.cpp
@@ -1246,6 +1246,17 @@ LLColor4 LLSettingsSky::getTotalAmbient() const
return mTotalAmbient;
}
+LLColor3 LLSettingsSky::getMoonlightColor() const
+{
+ F32 moon_brightness = getIsMoonUp() ? getMoonBrightness() : 0.001f;
+
+ LLColor3 moonlight_a(0.45, 0.45, 0.66);
+ LLColor3 moonlight_b(0.33, 0.33, 1.0);
+
+ LLColor3 moonlight = lerp(moonlight_b, moonlight_a, moon_brightness);
+ return moonlight;
+}
+
void LLSettingsSky::calculateLightSettings() const
{
// Initialize temp variables
@@ -1278,19 +1289,24 @@ void LLSettingsSky::calculateLightSettings() const
//brightness of surface both sunlight and ambient
// 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;
+ //mSunDiffuse = gammaCorrect(componentMult(sunlight, light_transmittance));
+ //mSunAmbient = gammaCorrect(componentMult(tmpAmbient, light_transmittance));
+
+ mSunDiffuse = componentMult(sunlight, light_transmittance);
+ mSunAmbient = componentMult(tmpAmbient, light_transmittance);
F32 moon_brightness = getIsMoonUp() ? getMoonBrightness() : 0.001f;
- LLColor3 moonlight_a(0.45, 0.45, 0.66);
- LLColor3 moonlight_b(0.33, 0.33, 1.0);
+ LLColor3 moonlight = getMoonlightColor();
+ LLColor3 moonlight_b(0.33, 0.33, 1.0); // scotopic ambient value
- LLColor3 moonlight = lerp(moonlight_b, moonlight_a, moon_brightness);
componentMultBy(moonlight, componentExp((light_atten * -1.f) * lighty));
- mMoonDiffuse = gammaCorrect(componentMult(moonlight, light_transmittance) * moon_brightness);
- mMoonAmbient = gammaCorrect(componentMult(moonlight_b, light_transmittance) * 0.0125f);
+ //mMoonDiffuse = gammaCorrect(componentMult(moonlight, light_transmittance) * moon_brightness);
+ //mMoonAmbient = gammaCorrect(componentMult(moonlight_b, light_transmittance) * 0.0125f);
+ mMoonDiffuse = componentMult(moonlight, light_transmittance) * moon_brightness;
+ mMoonAmbient = componentMult(moonlight_b, light_transmittance) * 0.0125f;
+
mTotalAmbient = mSunAmbient;
}
diff --git a/indra/llinventory/llsettingssky.h b/indra/llinventory/llsettingssky.h
index ef2a6740f0..92b8a8bd5a 100644
--- a/indra/llinventory/llsettingssky.h
+++ b/indra/llinventory/llsettingssky.h
@@ -282,6 +282,9 @@ public:
LLVector3 getSunDirection() const;
LLVector3 getMoonDirection() const;
+ // color based on brightness
+ LLColor3 getMoonlightColor() const;
+
LLColor4 getMoonAmbient() const;
LLColor3 getMoonDiffuse() const;
LLColor4 getSunAmbient() const;