134 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| 
 | |
| namespace UnityEngine.PostProcessing
 | |
| {
 | |
|     [Serializable]
 | |
|     public class BuiltinDebugViewsModel : PostProcessingModel
 | |
|     {
 | |
|         [Serializable]
 | |
|         public struct DepthSettings
 | |
|         {
 | |
|             [Range(0f, 1f), Tooltip("Scales the camera far plane before displaying the depth map.")]
 | |
|             public float scale;
 | |
| 
 | |
|             public static DepthSettings defaultSettings
 | |
|             {
 | |
|                 get
 | |
|                 {
 | |
|                     return new DepthSettings
 | |
|                     {
 | |
|                         scale = 1f
 | |
|                     };
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         [Serializable]
 | |
|         public struct MotionVectorsSettings
 | |
|         {
 | |
|             [Range(0f, 1f), Tooltip("Opacity of the source render.")]
 | |
|             public float sourceOpacity;
 | |
| 
 | |
|             [Range(0f, 1f), Tooltip("Opacity of the per-pixel motion vector colors.")]
 | |
|             public float motionImageOpacity;
 | |
| 
 | |
|             [Min(0f), Tooltip("Because motion vectors are mainly very small vectors, you can use this setting to make them more visible.")]
 | |
|             public float motionImageAmplitude;
 | |
| 
 | |
|             [Range(0f, 1f), Tooltip("Opacity for the motion vector arrows.")]
 | |
|             public float motionVectorsOpacity;
 | |
| 
 | |
|             [Range(8, 64), Tooltip("The arrow density on screen.")]
 | |
|             public int motionVectorsResolution;
 | |
| 
 | |
|             [Min(0f), Tooltip("Tweaks the arrows length.")]
 | |
|             public float motionVectorsAmplitude;
 | |
| 
 | |
|             public static MotionVectorsSettings defaultSettings
 | |
|             {
 | |
|                 get
 | |
|                 {
 | |
|                     return new MotionVectorsSettings
 | |
|                     {
 | |
|                         sourceOpacity = 1f,
 | |
| 
 | |
|                         motionImageOpacity = 0.9f,
 | |
|                         motionImageAmplitude = 16f,
 | |
| 
 | |
|                         motionVectorsOpacity = 1f,
 | |
|                         motionVectorsResolution = 24,
 | |
|                         motionVectorsAmplitude = 64f
 | |
|                     };
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public enum Mode
 | |
|         {
 | |
|             None,
 | |
| 
 | |
|             Depth,
 | |
|             Normals,
 | |
|             MotionVectors,
 | |
| 
 | |
|             AmbientOcclusion,
 | |
|             EyeAdaptation,
 | |
|             FocusPlane,
 | |
|             PreGradingLog,
 | |
|             LogLut,
 | |
|             UserLut
 | |
|         }
 | |
| 
 | |
|         [Serializable]
 | |
|         public struct Settings
 | |
|         {
 | |
|             public Mode mode;
 | |
|             public DepthSettings depth;
 | |
|             public MotionVectorsSettings motionVectors;
 | |
| 
 | |
|             public static Settings defaultSettings
 | |
|             {
 | |
|                 get
 | |
|                 {
 | |
|                     return new Settings
 | |
|                     {
 | |
|                         mode = Mode.None,
 | |
|                         depth = DepthSettings.defaultSettings,
 | |
|                         motionVectors = MotionVectorsSettings.defaultSettings
 | |
|                     };
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         [SerializeField]
 | |
|         Settings m_Settings = Settings.defaultSettings;
 | |
|         public Settings settings
 | |
|         {
 | |
|             get { return m_Settings; }
 | |
|             set { m_Settings = value; }
 | |
|         }
 | |
| 
 | |
|         public bool willInterrupt
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return !IsModeActive(Mode.None)
 | |
|                        && !IsModeActive(Mode.EyeAdaptation)
 | |
|                        && !IsModeActive(Mode.PreGradingLog)
 | |
|                        && !IsModeActive(Mode.LogLut)
 | |
|                        && !IsModeActive(Mode.UserLut);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public override void Reset()
 | |
|         {
 | |
|             settings = Settings.defaultSettings;
 | |
|         }
 | |
| 
 | |
|         public bool IsModeActive(Mode mode)
 | |
|         {
 | |
|             return m_Settings.mode == mode;
 | |
|         }
 | |
|     }
 | |
| }
 |