diff options
| author | Dave Parks <davep@lindenlab.com> | 2023-02-07 12:59:38 -0600 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2023-02-07 12:59:38 -0600 | 
| commit | 055883beb5709dfb4814c8c5e90ea326abc07724 (patch) | |
| tree | 82629fb9048136f538fdf9681d0d0795f01dd80f | |
| parent | 8926242d096ac9975efab4426a23161f8717edcb (diff) | |
SL-18780 Turn down contribution of cloud shadow to reflection probe ambiance and make the value a debug setting.
| -rw-r--r-- | indra/llinventory/llsettingssky.cpp | 5 | ||||
| -rw-r--r-- | indra/llinventory/llsettingssky.h | 2 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llreflectionmapmanager.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llsettingsvo.cpp | 3 | 
5 files changed, 20 insertions, 5 deletions
| diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp index 4004793ffd..c976307936 100644 --- a/indra/llinventory/llsettingssky.cpp +++ b/indra/llinventory/llsettingssky.cpp @@ -1437,12 +1437,13 @@ F32 LLSettingsSky::getReflectionProbeAmbiance() const      return mSettings[SETTING_REFLECTION_PROBE_AMBIANCE].asReal();  } -F32 LLSettingsSky::getTotalReflectionProbeAmbiance() const +F32 LLSettingsSky::getTotalReflectionProbeAmbiance(F32 cloud_shadow_scale) const  {      // feed cloud shadow back into reflection probe ambiance to mimic pre-reflection-probe behavior       // without brightening dark/interior spaces      F32 probe_ambiance = getReflectionProbeAmbiance(); -    probe_ambiance += (1.f - probe_ambiance) * getCloudShadow()*0.5f; + +    probe_ambiance += (1.f - probe_ambiance) * getCloudShadow()*cloud_shadow_scale;      return probe_ambiance;  } diff --git a/indra/llinventory/llsettingssky.h b/indra/llinventory/llsettingssky.h index b17b32ebb1..7ae569dd4c 100644 --- a/indra/llinventory/llsettingssky.h +++ b/indra/llinventory/llsettingssky.h @@ -137,7 +137,7 @@ public:      F32 getReflectionProbeAmbiance() const;      // get the probe ambiance setting to use for rendering (adjusted by cloud shadow, aka cloud coverage) -    F32 getTotalReflectionProbeAmbiance() const; +    F32 getTotalReflectionProbeAmbiance(F32 cloud_shadow_scale) const;      // Return first (only) profile layer represented in LLSD      LLSD getRayleighConfig() const; diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index bbf04a6889..304932dd1a 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8828,6 +8828,17 @@        <key>Value</key>        <integer>0</integer>      </map> +  <key>RenderCloudShadowAmbianceFactor</key> +  <map> +    <key>Comment</key> +    <string>Amount that cloud shadow (aka cloud coverage) contributes to reflection probe ambiance</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>F32</string> +    <key>Value</key> +    <real>0.1</real> +  </map>    <key>RenderComplexityColorMin</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp index 4fd10b85ad..04bce58114 100644 --- a/indra/newview/llreflectionmapmanager.cpp +++ b/indra/newview/llreflectionmapmanager.cpp @@ -780,7 +780,9 @@ void LLReflectionMapManager::updateUniforms()      LLEnvironment& environment = LLEnvironment::instance();      LLSettingsSky::ptr_t psky = environment.getCurrentSky(); -    F32 minimum_ambiance = psky->getTotalReflectionProbeAmbiance(); +    static LLCachedControl<F32> cloud_shadow_scale(gSavedSettings, "RenderCloudShadowAmbianceFactor", 0.125f); +    F32 minimum_ambiance = psky->getTotalReflectionProbeAmbiance(cloud_shadow_scale); +      F32 ambscale = gCubeSnapshot && !isRadiancePass() ? 0.f : 1.f; diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp index c3aaac3ede..1752b2494f 100644 --- a/indra/newview/llsettingsvo.cpp +++ b/indra/newview/llsettingsvo.cpp @@ -733,7 +733,8 @@ void LLSettingsVOSky::applySpecial(void *ptarget, bool force)      shader->uniform3fv(LLShaderMgr::SUNLIGHT_LINEAR, linearColor3v(sunDiffuse));      shader->uniform3fv(LLShaderMgr::MOONLIGHT_LINEAR,linearColor3v(moonDiffuse)); -    shader->uniform1f(LLShaderMgr::REFLECTION_PROBE_AMBIANCE, getTotalReflectionProbeAmbiance()); +    static LLCachedControl<F32> cloud_shadow_scale(gSavedSettings, "RenderCloudShadowAmbianceFactor", 0.125f); +    shader->uniform1f(LLShaderMgr::REFLECTION_PROBE_AMBIANCE, getTotalReflectionProbeAmbiance(cloud_shadow_scale));      shader->uniform1i(LLShaderMgr::SUN_UP_FACTOR, getIsSunUp() ? 1 : 0);      shader->uniform1f(LLShaderMgr::SUN_MOON_GLOW_FACTOR, getSunMoonGlowFactor()); | 
