using System; namespace UnityEngine.Rendering.Universal { #region Material Settings /// /// Debug material modes. /// [GenerateHLSL] public enum DebugMaterialMode { /// No material debug. None, /// Display material albedo. Albedo, /// Display material specular. Specular, /// Display material alpha. Alpha, /// Display material smoothness. Smoothness, /// Display material ambient occlusion. AmbientOcclusion, /// Display material emission. Emission, /// Display material normal (world space). NormalWorldSpace, /// Display material normal (tangent space). NormalTangentSpace, /// Display evaluated lighting complexity. LightingComplexity, /// Display material metallic. Metallic, /// Display material sprite mask. SpriteMask, /// Display rendering layer masks. RenderingLayerMasks, } /// /// Debug mode for displaying vertex attributes interpolated from vertex to pixel shader. /// [GenerateHLSL] public enum DebugVertexAttributeMode { /// No vertex attribute debug. None, /// Display texture coordinate 0. Texcoord0, /// Display texture coordinate 1. Texcoord1, /// Display texture coordinate 2. Texcoord2, /// Display texture coordinate 3. Texcoord3, /// Display vertex color. Color, /// Display tangent. Tangent, /// Display normal. Normal, } /// /// Debug mode for validating out-of-range values of different material channels. /// [GenerateHLSL] public enum DebugMaterialValidationMode { /// No material debug validation override. None, /// Validate albedo values according to validation settings. Albedo, /// Validate metallic values according to validation settings. Metallic } #endregion #region Rendering Settings /// /// Debug mode for displaying intermediate render targets. /// [GenerateHLSL] public enum DebugFullScreenMode { /// No intermediate render target displayed. None, /// Display depth buffer contents. Depth, // NOTE: we could also add (dir, mag) format. /// Display depth buffer contents. [InspectorName("Motion Vector (100x, normalized)")] MotionVector, /// Display the shadow map from additional lights. AdditionalLightsShadowMap, /// Display the main shadow map. MainLightShadowMap, /// Display the light cookie atlas for additional lights. AdditionalLightsCookieAtlas, /// /// Display the reflection probe atlas used for the Forward+ rendering path. /// ReflectionProbeAtlas, /// /// Displays the active STP debug view. /// STP, } /// /// Debug mode that overrides how the renderer behaves. /// [GenerateHLSL] public enum DebugSceneOverrideMode { /// No debug override. None, /// Visualize overdraw by drawing geometry using a semitransparent material. Areas that look opaque contain more overdraw. Overdraw, /// Render using wireframe only. Wireframe, /// Render using a constant fill color and wireframe. SolidWireframe, /// Render shaded geometry in addition to wireframe. ShadedWireframe, } /// /// Debug mode of the overdraw /// public enum DebugOverdrawMode { /// No overdraw debug mode. None, /// Debug overdraw of opaque only. Opaque, /// Debug overdraw of transparent only. Transparent, /// Debug overdraw of everything only. All } /// /// Debug mode for texture mipmap streaming. /// // Keep in sync with DebugMipMapMode in HDRP's Runtime/Debug/MipMapDebug.cs [GenerateHLSL] public enum DebugMipInfoMode { /// No mipmap debug. None, /// Display savings and shortage due to streaming. MipStreamingPerformance, /// Display the streaming status of materials and textures. MipStreamingStatus, /// Highlight recently streamed data. MipStreamingActivity, /// Display streaming priorities as set up when importing. MipStreamingPriority, /// Display the amount of uploaded mip levels. MipCount, /// Visualize the pixel density for the highest-resolution uploaded mip level from the camera's point-of-view. MipRatio, } /// /// Aggregation mode for texture mipmap streaming debugging information. /// // Keep in sync with DebugMipMapStatusMode in HDRP's Runtime/Debug/MipMapDebug.cs [GenerateHLSL] public enum DebugMipMapStatusMode { /// Show debug information aggregated per material. Material, /// Show debug information for the selected texture slot. Texture, } /// /// Terrain layer for texture mipmap streaming debugging. /// [GenerateHLSL] public enum DebugMipMapModeTerrainTexture { /// Control texture debug. Control, /// Layer 0 diffuse texture debug. [InspectorName("Layer 0 - Diffuse")] Layer0, /// Layer 1 diffuse texture debug. [InspectorName("Layer 1 - Diffuse")] Layer1, /// Layer 2 diffuse texture debug. [InspectorName("Layer 2 - Diffuse")] Layer2, /// Layer 3 diffuse texture debug. [InspectorName("Layer 3 - Diffuse")] Layer3, } /// /// Mode that controls if post-processing is allowed. /// /// /// When "Auto" is used, post-processing can be either on or off, depending on other active debug modes. /// [GenerateHLSL] public enum DebugPostProcessingMode { /// Post-processing disabled. Disabled, /// Post-processing is either on or off, depending on other debug modes. Auto, /// Post-processing enabled. Enabled }; /// /// Debug modes for validating illegal output values. /// [GenerateHLSL] public enum DebugValidationMode { /// No validation. None, /// Highlight all pixels containing NaN (not a number), infinite or negative values. [InspectorName("Highlight NaN, Inf and Negative Values")] HighlightNanInfNegative, /// Highlight all pixels with values outside the specified range. [InspectorName("Highlight Values Outside Range")] HighlightOutsideOfRange } /// /// The channels used by DebugValidationMode.HighlightOutsideOfRange. /// /// /// When "RGB" is used, the pixel's RGB value is first converted to a luminance value. /// Individual channels (R, G, B, and A) are tested individually against the range. /// [GenerateHLSL] public enum PixelValidationChannels { /// Use luminance calculated from RGB channels as the value to validate. RGB, /// Validate the red channel value. R, /// Validate the green channel value. G, /// Validate the blue channel value. B, /// Validate the alpha channel value. A } #endregion #region Lighting settings /// /// Debug modes for lighting. /// [GenerateHLSL] public enum DebugLightingMode { /// No lighting debug mode. None, /// Display shadow cascades using different colors. ShadowCascades, /// Display lighting result without applying normal maps. LightingWithoutNormalMaps, /// Display lighting result (including normal maps). LightingWithNormalMaps, /// Display only reflections. Reflections, /// Display only reflections with smoothness. ReflectionsWithSmoothness, /// Display the indirect irradiance GlobalIllumination, } /// /// HDR debug mode. /// [GenerateHLSL] public enum HDRDebugMode { /// No HDR debugging. None, /// Gamut view: show the gamuts and what part of the gamut the image shows. GamutView, /// Gamut clip: show what part of the Scene is covered by the Rec709 gamut and which parts are in the Rec2020 gamut. GamutClip, /// If the luminance value exceeds the paper white value, show the exceeding value in colors between yellow and red. Shows luminance values otherwise. ValuesAbovePaperWhite } /// /// Debug mode that allows selective disabling of individual lighting components. /// [GenerateHLSL, Flags] public enum DebugLightingFeatureFlags { /// The debug mode is not active. None, /// Display contribution from global illumination. GlobalIllumination = 0x1, /// Display contribution from the main light. MainLight = 0x2, /// Display contribution from additional lights. AdditionalLights = 0x4, /// Display contribution from vertex lighting. VertexLighting = 0x8, /// Display contribution from emissive objects. Emission = 0x10, /// Display contribution from ambient occlusion. AmbientOcclusion = 0x20, } #endregion }