Skip to content

Commit 5e35785

Browse files
#3219 Revert default exposure thresholds to DeltaFPS values (#3228)
1 parent 37f92c1 commit 5e35785

File tree

2 files changed

+38
-8
lines changed

2 files changed

+38
-8
lines changed

indra/newview/app_settings/settings.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9298,6 +9298,17 @@
92989298
<key>Value</key>
92999299
<real>4.0</real>
93009300
</map>
9301+
<key>RenderUseExposureSkySettings</key>
9302+
<map>
9303+
<key>Comment</key>
9304+
<string>Use exposure sky settings instead of deriving from HDR scale.</string>
9305+
<key>Persist</key>
9306+
<integer>0</integer>
9307+
<key>Type</key>
9308+
<string>Boolean</string>
9309+
<key>Value</key>
9310+
<integer>0</integer>
9311+
</map>
93019312
<key>RenderDynamicExposureCoefficient</key>
93029313
<map>
93039314
<key>Comment</key>

indra/newview/pipeline.cpp

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7077,18 +7077,37 @@ void LLPipeline::generateExposure(LLRenderTarget* src, LLRenderTarget* dst, bool
70777077
LLSettingsSky::ptr_t sky = LLEnvironment::instance().getCurrentSky();
70787078

70797079
F32 probe_ambiance = LLEnvironment::instance().getCurrentSky()->getReflectionProbeAmbiance(should_auto_adjust);
7080-
F32 exp_min = sky->getHDRMin();
7081-
F32 exp_max = sky->getHDRMax();
70827080

7083-
if (dynamic_exposure_enabled)
7081+
F32 exp_min = 1.f;
7082+
F32 exp_max = 1.f;
7083+
7084+
static LLCachedControl<bool> use_exposure_sky_settings(gSavedSettings, "RenderUseExposureSkySettings", false);
7085+
7086+
if (use_exposure_sky_settings)
70847087
{
7085-
exp_min = sky->getHDROffset() - exp_min;
7086-
exp_max = sky->getHDROffset() + exp_max;
7088+
if (dynamic_exposure_enabled)
7089+
{
7090+
exp_min = sky->getHDROffset() - sky->getHDRMin();
7091+
exp_max = sky->getHDROffset() + sky->getHDRMax();
7092+
}
7093+
else
7094+
{
7095+
exp_min = sky->getHDROffset();
7096+
exp_max = sky->getHDROffset();
7097+
}
70877098
}
7088-
else
7099+
else if (dynamic_exposure_enabled)
70897100
{
7090-
exp_min = sky->getHDROffset();
7091-
exp_max = sky->getHDROffset();
7101+
if (probe_ambiance > 0.f)
7102+
{
7103+
F32 hdr_scale = sqrtf(LLEnvironment::instance().getCurrentSky()->getGamma()) * 2.f;
7104+
7105+
if (hdr_scale > 1.f)
7106+
{
7107+
exp_min = 1.f / hdr_scale;
7108+
exp_max = hdr_scale;
7109+
}
7110+
}
70927111
}
70937112

70947113
shader->uniform1f(dt, gFrameIntervalSeconds);

0 commit comments

Comments
 (0)