SL-18780 Turn down contribution of cloud shadow to reflection probe ambiance and make the value a debug setting.
parent
8926242d09
commit
055883beb5
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue