85 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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;
 | |
| 
 | |
|             [Min(0f), Tooltip("Minimum average luminance to consider for auto exposure.")]
 | |
|             public float minLuminance;
 | |
| 
 | |
|             [Min(0f), Tooltip("Maximum average luminance to consider for auto exposure.")]
 | |
|             public float maxLuminance;
 | |
| 
 | |
|             [Min(0f), Tooltip("Exposure bias. Use this to control the global exposure of the scene.")]
 | |
|             public float exposureCompensation;
 | |
| 
 | |
|             [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 (Log2).")]
 | |
|             public int logMin;
 | |
| 
 | |
|             [Range(1, 16), Tooltip("Upper bound for the brightness range of the generated histogram (Log2).")]
 | |
|             public int logMax;
 | |
| 
 | |
|             public static Settings defaultSettings
 | |
|             {
 | |
|                 get
 | |
|                 {
 | |
|                     return new Settings
 | |
|                     {
 | |
|                         lowPercent = 65f,
 | |
|                         highPercent = 95f,
 | |
| 
 | |
|                         minLuminance = 0.03f,
 | |
|                         maxLuminance = 2f,
 | |
|                         exposureCompensation = 0.5f,
 | |
| 
 | |
|                         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;
 | |
|         }
 | |
|     }
 | |
| }
 |