1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using UnityEngine;
- using UnityEngine.PostProcessing;
- namespace UnityEditor.PostProcessing
- {
- using Settings = EyeAdaptationModel.Settings;
- [PostProcessingModelEditor(typeof(EyeAdaptationModel))]
- public class EyeAdaptationModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_LowPercent;
- SerializedProperty m_HighPercent;
- SerializedProperty m_MinLuminance;
- SerializedProperty m_MaxLuminance;
- SerializedProperty m_KeyValue;
- SerializedProperty m_DynamicKeyValue;
- SerializedProperty m_AdaptationType;
- SerializedProperty m_SpeedUp;
- SerializedProperty m_SpeedDown;
- SerializedProperty m_LogMin;
- SerializedProperty m_LogMax;
- public override void OnEnable()
- {
- m_LowPercent = FindSetting((Settings x) => x.lowPercent);
- m_HighPercent = FindSetting((Settings x) => x.highPercent);
- m_MinLuminance = FindSetting((Settings x) => x.minLuminance);
- m_MaxLuminance = FindSetting((Settings x) => x.maxLuminance);
- m_KeyValue = FindSetting((Settings x) => x.keyValue);
- m_DynamicKeyValue = FindSetting((Settings x) => x.dynamicKeyValue);
- m_AdaptationType = FindSetting((Settings x) => x.adaptationType);
- m_SpeedUp = FindSetting((Settings x) => x.speedUp);
- m_SpeedDown = FindSetting((Settings x) => x.speedDown);
- m_LogMin = FindSetting((Settings x) => x.logMin);
- m_LogMax = FindSetting((Settings x) => x.logMax);
- }
- public override void OnInspectorGUI()
- {
- if (!GraphicsUtils.supportsDX11)
- EditorGUILayout.HelpBox("This effect requires support for compute shaders. Enabling it won't do anything on unsupported platforms.", MessageType.Warning);
- EditorGUILayout.LabelField("Luminosity range", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_LogMin, EditorGUIHelper.GetContent("Minimum (EV)"));
- EditorGUILayout.PropertyField(m_LogMax, EditorGUIHelper.GetContent("Maximum (EV)"));
- EditorGUI.indentLevel--;
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Auto exposure", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- float low = m_LowPercent.floatValue;
- float high = m_HighPercent.floatValue;
- EditorGUILayout.MinMaxSlider(EditorGUIHelper.GetContent("Histogram filtering|These values are the lower and upper percentages of the histogram that will be used to find a stable average luminance. Values outside of this range will be discarded and won't contribute to the average luminance."), ref low, ref high, 1f, 99f);
- m_LowPercent.floatValue = low;
- m_HighPercent.floatValue = high;
- EditorGUILayout.PropertyField(m_MinLuminance, EditorGUIHelper.GetContent("Minimum (EV)"));
- EditorGUILayout.PropertyField(m_MaxLuminance, EditorGUIHelper.GetContent("Maximum (EV)"));
- EditorGUILayout.PropertyField(m_DynamicKeyValue);
- if (!m_DynamicKeyValue.boolValue)
- EditorGUILayout.PropertyField(m_KeyValue);
- EditorGUI.indentLevel--;
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Adaptation", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_AdaptationType, EditorGUIHelper.GetContent("Type"));
- if (m_AdaptationType.intValue == (int)EyeAdaptationModel.EyeAdaptationType.Progressive)
- {
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_SpeedUp);
- EditorGUILayout.PropertyField(m_SpeedDown);
- EditorGUI.indentLevel--;
- }
- EditorGUI.indentLevel--;
- }
- }
- }
|