docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class ColorCurves

    A volume component that holds settings for the Color Curves effect.

    Inheritance
    object
    Object
    ScriptableObject
    VolumeComponent
    ColorCurves
    Implements
    IApplyRevertPropertyContextMenuItemProvider
    IPostProcessComponent
    Inherited Members
    VolumeComponent.active
    VolumeComponent.Override(VolumeComponent, float)
    VolumeComponent.SetAllOverridesTo(bool)
    VolumeComponent.GetHashCode()
    VolumeComponent.AnyPropertiesIsOverridden()
    VolumeComponent.Release()
    VolumeComponent.TryGetRevertMethodForFieldName(SerializedProperty, out Action<SerializedProperty>)
    VolumeComponent.GetSourceTerm()
    VolumeComponent.TryGetApplyMethodForFieldName(SerializedProperty, out Action<SerializedProperty>)
    VolumeComponent.GetSourceName(Component)
    VolumeComponent.displayName
    VolumeComponent.parameters
    ScriptableObject.CreateInstance(string)
    ScriptableObject.CreateInstance(Type)
    ScriptableObject.CreateInstance<T>()
    Object.GetEntityId()
    Object.GetInstanceID()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken)
    Object.InstantiateAsync<T>(T, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters, CancellationToken)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: UnityEngine.Rendering.Universal
    Assembly: Unity.RenderPipelines.Universal.Runtime.dll
    Syntax
    [Serializable]
    [VolumeComponentMenu("Post-processing/Color Curves")]
    [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
    public sealed class ColorCurves : VolumeComponent, IApplyRevertPropertyContextMenuItemProvider, IPostProcessComponent
    Remarks

    You can add VolumeComponent to a VolumeProfile in the Editor to apply a Color Curves post-processing effect.

    Examples

    This sample code shows how settings can be retrieved and modified in runtime:

    using System;
    using UnityEngine;
    using UnityEngine.Rendering;
    using UnityEngine.Rendering.Universal;
    

    public class ModifyVolumeComponent : MonoBehaviour { [SerializeField] VolumeProfile volumeProfile; [SerializeField] VolumeSettings volumeSettings;

    private bool m_HasRetrievedVolumeComponent;
    private ColorCurves m_VolumeComponent;
    
    [Serializable]
    private struct VolumeSettings
    {
        public bool active;
        public TextureCurveParameter master;
        public TextureCurveParameter red;
        public TextureCurveParameter green;
        public TextureCurveParameter blue;
        public TextureCurveParameter hueVsHue;
        public TextureCurveParameter hueVsSat;
        public TextureCurveParameter satVsSat;
        public TextureCurveParameter lumVsSat;
    
        public void SetVolumeComponentSettings(ref ColorCurves volumeComponent)
        {
            volumeComponent.active = active;
            volumeComponent.master = master;
            volumeComponent.red = red;
            volumeComponent.green = green;
            volumeComponent.blue = blue;
            volumeComponent.hueVsHue = hueVsHue;
            volumeComponent.hueVsSat = hueVsSat;
            volumeComponent.satVsSat = satVsSat;
            volumeComponent.lumVsSat = lumVsSat;
        }
    
        public void GetVolumeComponentSettings(ref ColorCurves volumeComponent)
        {
            active = volumeComponent.active;
            master = volumeComponent.master;
            red = volumeComponent.red;
            green = volumeComponent.green;
            blue = volumeComponent.blue;
            hueVsHue = volumeComponent.hueVsHue;
            hueVsSat = volumeComponent.hueVsSat;
            satVsSat = volumeComponent.satVsSat;
            lumVsSat = volumeComponent.lumVsSat;
        }
    }
    
    private void Start()
    {
        m_HasRetrievedVolumeComponent = GetVolumeComponent(in volumeProfile, ref m_VolumeComponent);
        if (m_HasRetrievedVolumeComponent)
            volumeSettings.GetVolumeComponentSettings(ref m_VolumeComponent);
    }
    
    private void Update()
    {
        if (!m_HasRetrievedVolumeComponent)
            return;
    
        volumeSettings.SetVolumeComponentSettings(ref m_VolumeComponent);
    }
    
    private static bool GetVolumeComponent(in VolumeProfile volumeProfile, ref ColorCurves volumeComponent)
    {
        if (volumeComponent != null)
            return true;
    
        if (volumeProfile == null)
        {
            Debug.LogError("ModifyVolumeComponent.GetVolumeComponent():\nvolumeProfile has not been assigned.");
            return false;
        }
    
        volumeProfile.TryGet(out ColorCurves component);
        if (component == null)
        {
            Debug.LogError($"ModifyVolumeComponent.GetVolumeComponent():\nMissing component in the \"{volumeProfile.name}\" VolumeProfile ");
            return false;
        }
    
        volumeComponent = component;
        return true;
    }
    

    }

    Fields

    blue

    Affects the blue channel intensity across the whole image.

    Declaration
    [Tooltip("Affects the blue channel intensity across the whole image.")]
    public TextureCurveParameter blue
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    green

    Affects the green channel intensity across the whole image.

    Declaration
    [Tooltip("Affects the green channel intensity across the whole image.")]
    public TextureCurveParameter green
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    hueVsHue

    Shifts the input hue (x-axis) according to the output hue (y-axis).

    Declaration
    [Tooltip("Shifts the input hue (x-axis) according to the output hue (y-axis).")]
    public TextureCurveParameter hueVsHue
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    hueVsSat

    Adjusts saturation (y-axis) according to the input hue (x-axis).

    Declaration
    [Tooltip("Adjusts saturation (y-axis) according to the input hue (x-axis).")]
    public TextureCurveParameter hueVsSat
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    lumVsSat

    Adjusts saturation (y-axis) according to the input luminance (x-axis).

    Declaration
    [Tooltip("Adjusts saturation (y-axis) according to the input luminance (x-axis).")]
    public TextureCurveParameter lumVsSat
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    master

    Affects the luminance across the whole image.

    Declaration
    [Tooltip("Affects the luminance across the whole image.")]
    public TextureCurveParameter master
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    red

    Affects the red channel intensity across the whole image.

    Declaration
    [Tooltip("Affects the red channel intensity across the whole image.")]
    public TextureCurveParameter red
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    satVsSat

    Adjusts saturation (y-axis) according to the input saturation (x-axis).

    Declaration
    [Tooltip("Adjusts saturation (y-axis) according to the input saturation (x-axis).")]
    public TextureCurveParameter satVsSat
    Field Value
    Type Description
    TextureCurveParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    Methods

    IsActive()

    Tells if the post process needs to be rendered or not.

    Declaration
    public bool IsActive()
    Returns
    Type Description
    bool

    true if the effect should be rendered, false otherwise.

    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter

    Implements

    IApplyRevertPropertyContextMenuItemProvider
    IPostProcessComponent

    See Also

    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TextureCurveParameter
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)