using System; namespace UnityEngine.Rendering.HighDefinition { /// /// A volume component that holds settings for High Quality Line Rendering. /// [SupportedOnRenderPipeline(typeof(HDRenderPipelineAsset))] [Serializable, VolumeComponentMenu("Rendering/High Quality Lines")] [HDRPHelpURL("Override-High-Quality-Lines")] [DisplayInfo(name = "High Quality Line Rendering")] public class HighQualityLineRenderingVolumeComponent : VolumeComponent { /// /// A that holds a Line Rendering Composition Mode value. /// [Serializable] public sealed class LinesCompositionModeParameter : VolumeParameter { /// /// Creates a new LinesSortingQualityParameter instance. /// /// The initial value to store in the parameter. /// The initial override state for the parameter. public LinesCompositionModeParameter(LineRendering.CompositionMode value, bool overrideState = false) : base(value, overrideState) { } } /// /// A that holds a Line Rendering Sorting Quality value. /// [Serializable] public sealed class LinesSortingQualityParameter : VolumeParameter { /// /// Creates a new LinesSortingQualityParameter instance. /// /// The initial value to store in the parameter. /// The initial override state for the parameter. public LinesSortingQualityParameter(LineRendering.SortingQuality value, bool overrideState = false) : base(value, overrideState) { } } /// /// /// public BoolParameter enable = new BoolParameter(false); /// /// Determines when in the render pipeline that lines will be composed into the main frame. /// [Tooltip("Determines when in the render pipeline that lines will be composed into the main frame.")] public LinesCompositionModeParameter compositionMode = new LinesCompositionModeParameter(LineRendering.CompositionMode.BeforeColorPyramid); /// /// Sets the number of clusters along the z-axis for high quality line rendering, improves transparent sorting. /// [Tooltip("Sets the number of clusters along the z-axis for high quality line rendering, improves transparent sorting.")] public ClampedIntParameter clusterCount = new ClampedIntParameter(24, 1, 128); /// /// Sets the number of segments that are sorted within a cluster. /// [Tooltip("Sets the number of segments that are sorted within a cluster.")] public LinesSortingQualityParameter sortingQuality = new LinesSortingQualityParameter(LineRendering.SortingQuality.Low); /// /// Threshold for determining what qualifies as an opaque tile for high quality line rendering. /// [Tooltip("Threshold for determining what qualifies as an opaque tile for high quality line rendering, lower values improve performance, but lose quality.")] public ClampedFloatParameter tileOpacityThreshold = new ClampedFloatParameter(1.0f, 0.0f, 1.0f); /// /// Depth and motion vectors are written only if the alpha value is above this threshold. /// [Tooltip("Threshold for determining when to write depth to output.")] public ClampedFloatParameter writeDepthAlphaThreshold = new ClampedFloatParameter(0.0f, 0.0f, 1.0f); } }