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
}