12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using System;
- namespace UnityEngine.PostProcessing
- {
- [Serializable]
- public class EyeAdaptationModel : PostProcessingModel
- {
- public enum EyeAdaptationType
- {
- Progressive,
- Fixed
- }
- [Serializable]
- public struct Settings
- {
- [Range(1f, 99f), Tooltip("Filters the dark part of the histogram when computing the average luminance to avoid very dark pixels from contributing to the auto exposure. Unit is in percent.")]
- public float lowPercent;
- [Range(1f, 99f), Tooltip("Filters the bright part of the histogram when computing the average luminance to avoid very dark pixels from contributing to the auto exposure. Unit is in percent.")]
- public float highPercent;
- [Tooltip("Minimum average luminance to consider for auto exposure (in EV).")]
- public float minLuminance;
- [Tooltip("Maximum average luminance to consider for auto exposure (in EV).")]
- public float maxLuminance;
- [Min(0f), Tooltip("Exposure bias. Use this to offset the global exposure of the scene.")]
- public float keyValue;
- [Tooltip("Set this to true to let Unity handle the key value automatically based on average luminance.")]
- public bool dynamicKeyValue;
- [Tooltip("Use \"Progressive\" if you want the auto exposure to be animated. Use \"Fixed\" otherwise.")]
- public EyeAdaptationType adaptationType;
- [Min(0f), Tooltip("Adaptation speed from a dark to a light environment.")]
- public float speedUp;
- [Min(0f), Tooltip("Adaptation speed from a light to a dark environment.")]
- public float speedDown;
- [Range(-16, -1), Tooltip("Lower bound for the brightness range of the generated histogram (in EV). The bigger the spread between min & max, the lower the precision will be.")]
- public int logMin;
- [Range(1, 16), Tooltip("Upper bound for the brightness range of the generated histogram (in EV). The bigger the spread between min & max, the lower the precision will be.")]
- public int logMax;
- public static Settings defaultSettings
- {
- get
- {
- return new Settings
- {
- lowPercent = 45f,
- highPercent = 95f,
- minLuminance = -5f,
- maxLuminance = 1f,
- keyValue = 0.25f,
- dynamicKeyValue = true,
- adaptationType = EyeAdaptationType.Progressive,
- speedUp = 2f,
- speedDown = 1f,
- logMin = -8,
- logMax = 4
- };
- }
- }
- }
- [SerializeField]
- Settings m_Settings = Settings.defaultSettings;
- public Settings settings
- {
- get { return m_Settings; }
- set { m_Settings = value; }
- }
- public override void Reset()
- {
- m_Settings = Settings.defaultSettings;
- }
- }
- }
|