Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Commit b14b71e

Browse files
committed
Clamp min/max adaptation values in AutoExposure
1 parent b33291d commit b14b71e

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

PostProcessing/Editor/Effects/AutoExposureEditor.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,15 @@ public override void OnInspectorGUI()
3737
EditorUtilities.DrawHeaderLabel("Exposure");
3838

3939
PropertyField(m_Filtering);
40-
4140
PropertyField(m_MinLuminance);
4241
PropertyField(m_MaxLuminance);
42+
43+
// Clamp min/max adaptation values
44+
float minLum = m_MinLuminance.value.floatValue;
45+
float maxLum = m_MaxLuminance.value.floatValue;
46+
m_MinLuminance.value.floatValue = Mathf.Min(minLum, maxLum);
47+
m_MaxLuminance.value.floatValue = Mathf.Max(minLum, maxLum);
48+
4349
PropertyField(m_KeyValue);
4450

4551
EditorGUILayout.Space();

PostProcessing/Runtime/Effects/AutoExposure.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ public override void Render(PostProcessRenderContext context)
8080
highPercent = Mathf.Clamp(highPercent, 1f + kMinDelta, 99f);
8181
lowPercent = Mathf.Clamp(lowPercent, 1f, highPercent - kMinDelta);
8282

83+
// Clamp min/max adaptation values as well
84+
float minLum = settings.minLuminance.value;
85+
float maxLum = settings.maxLuminance.value;
86+
settings.minLuminance.value = Mathf.Min(minLum, maxLum);
87+
settings.maxLuminance.value = Mathf.Max(minLum, maxLum);
88+
8389
// Compute auto exposure
8490
sheet.properties.SetBuffer(ShaderIDs.HistogramBuffer, context.logHistogram.data);
8591
sheet.properties.SetVector(ShaderIDs.Params, new Vector4(lowPercent * 0.01f, highPercent * 0.01f, RuntimeUtilities.Exp2(settings.minLuminance.value), RuntimeUtilities.Exp2(settings.maxLuminance.value)));

0 commit comments

Comments
 (0)