You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.2 KiB
88 lines
3.2 KiB
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; |
|
} |
|
} |
|
}
|
|
|