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