using System;
namespace UnityEngine.Rendering.HighDefinition
{
///
/// Recursive Rendering Volume Component.
/// This component setups recursive rendering.
///
[Serializable, VolumeComponentMenu("Ray Tracing/Recursive Rendering (Preview)")]
[HelpURL(Documentation.baseURL + Documentation.version + Documentation.subURL + "Ray-Tracing-Recursive-Rendering" + Documentation.endURL)]
public sealed class RecursiveRendering : VolumeComponent
{
///
/// Enables recursive rendering.
///
[Tooltip("Enable. Enables recursive rendering.")]
public BoolParameter enable = new BoolParameter(false);
///
/// Layer mask used to include the objects for recursive rendering.
///
[Tooltip("Layer Mask. Layer mask used to include the objects for recursive rendering.")]
public LayerMaskParameter layerMask = new LayerMaskParameter(-1);
///
/// Defines the maximal recursion for rays.
///
[Tooltip("Max Depth. Defines the maximal recursion for rays.")]
public ClampedIntParameter maxDepth = new ClampedIntParameter(4, 1, 10);
///
/// This defines the maximal travel distance of rays.
///
public MinFloatParameter rayLength = new MinFloatParameter(10.0f, 0.0f);
///
/// Minmal smoothness for reflection rays. If the surface has a smoothness value below this threshold, a reflection ray will not be case and it will fallback on other techniques.
///
[Tooltip("Minmal Smoothness for Reflection. If the surface has a smoothness value below this threshold, a reflection ray will not be case and it will fallback on other techniques.")]
public ClampedFloatParameter minSmoothness = new ClampedFloatParameter(0.5f, 0.0f, 1.0f);
///
/// Default constructor for the recursive rendering volume component.
///
public RecursiveRendering()
{
displayName = "Recursive Rendering (Preview)";
}
}
}