| | |
| | | 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--; |
| | | } |
| | | } |
| | | } |
| | | 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--;
|
| | | }
|
| | | }
|
| | | }
|