Class ColorCurves
A volume component that holds settings for the Color Curves effect.
Inherited Members
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 Unity
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 |
---|---|
Texture |
See Also
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 |
---|---|
Texture |
See Also
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 |
---|---|
Texture |
See Also
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 |
---|---|
Texture |
See Also
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 |
---|---|
Texture |
See Also
master
Affects the luminance across the whole image.
Declaration
[Tooltip("Affects the luminance across the whole image.")]
public TextureCurveParameter master
Field Value
Type | Description |
---|---|
Texture |
See Also
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 |
---|---|
Texture |
See Also
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 |
---|---|
Texture |
See Also
Methods
IsActive()
Tells if the post process needs to be rendered or not.
Declaration
public bool IsActive()
Returns
Type | Description |
---|---|
bool |
|