docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class ChannelMixer

    A volume component that holds settings for the Channel Mixer effect.

    Inheritance
    object
    Object
    ScriptableObject
    VolumeComponent
    ChannelMixer
    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/Channel Mixer")]
    [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
    public sealed class ChannelMixer : VolumeComponent, IApplyRevertPropertyContextMenuItemProvider, IPostProcessComponent
    Remarks

    You can add VolumeComponent to a VolumeProfile in the Editor to apply a Channel Mixer 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 ChannelMixer m_VolumeComponent;
    
    [Serializable]
    private struct VolumeSettings
    {
        public bool active;
        public ClampedFloatParameter redOutRedIn;
        public ClampedFloatParameter redOutGreenIn;
        public ClampedFloatParameter redOutBlueIn;
        public ClampedFloatParameter greenOutRedIn;
        public ClampedFloatParameter greenOutGreenIn;
        public ClampedFloatParameter greenOutBlueIn;
        public ClampedFloatParameter blueOutRedIn;
        public ClampedFloatParameter blueOutGreenIn;
        public ClampedFloatParameter blueOutBlueIn;
    
        public void SetVolumeComponentSettings(ref ChannelMixer volumeComponent)
        {
            volumeComponent.active = active;
            volumeComponent.redOutRedIn = redOutRedIn;
            volumeComponent.redOutGreenIn = redOutGreenIn;
            volumeComponent.redOutBlueIn = redOutBlueIn;
            volumeComponent.greenOutRedIn = greenOutRedIn;
            volumeComponent.greenOutGreenIn = greenOutGreenIn;
            volumeComponent.greenOutBlueIn = greenOutBlueIn;
            volumeComponent.blueOutRedIn = blueOutRedIn;
            volumeComponent.blueOutGreenIn = blueOutGreenIn;
            volumeComponent.blueOutBlueIn = blueOutBlueIn;
        }
    
        public void GetVolumeComponentSettings(ref ChannelMixer volumeComponent)
        {
            active = volumeComponent.active;
            redOutRedIn = volumeComponent.redOutRedIn;
            redOutGreenIn = volumeComponent.redOutGreenIn;
            redOutBlueIn = volumeComponent.redOutBlueIn;
            greenOutRedIn = volumeComponent.greenOutRedIn;
            greenOutGreenIn = volumeComponent.greenOutGreenIn;
            greenOutBlueIn = volumeComponent.greenOutBlueIn;
            blueOutRedIn = volumeComponent.blueOutRedIn;
            blueOutGreenIn = volumeComponent.blueOutGreenIn;
            blueOutBlueIn = volumeComponent.blueOutBlueIn;
        }
    }
    
    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 ChannelMixer volumeComponent)
    {
        if (volumeComponent != null)
            return true;
    
        if (volumeProfile == null)
        {
            Debug.LogError("ModifyVolumeComponent.GetVolumeComponent():\nvolumeProfile has not been assigned.");
            return false;
        }
    
        volumeProfile.TryGet(out ChannelMixer component);
        if (component == null)
        {
            Debug.LogError($"ModifyVolumeComponent.GetVolumeComponent():\nMissing component in the \"{volumeProfile.name}\" VolumeProfile ");
            return false;
        }
    
        volumeComponent = component;
        return true;
    }
    

    }

    Fields

    blueOutBlueIn

    Modify influence of the blue channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the blue channel in the overall mix.")]
    public ClampedFloatParameter blueOutBlueIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    blueOutGreenIn

    Modify influence of the green channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the green channel in the overall mix.")]
    public ClampedFloatParameter blueOutGreenIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    blueOutRedIn

    Modify influence of the red channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the red channel in the overall mix.")]
    public ClampedFloatParameter blueOutRedIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    greenOutBlueIn

    Modify influence of the blue channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the blue channel in the overall mix.")]
    public ClampedFloatParameter greenOutBlueIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    greenOutGreenIn

    Modify influence of the green channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the green channel in the overall mix.")]
    public ClampedFloatParameter greenOutGreenIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    greenOutRedIn

    Modify influence of the red channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the red channel in the overall mix.")]
    public ClampedFloatParameter greenOutRedIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    redOutBlueIn

    Modify influence of the blue channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the blue channel in the overall mix.")]
    public ClampedFloatParameter redOutBlueIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    redOutGreenIn

    Modify influence of the green channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the green channel in the overall mix.")]
    public ClampedFloatParameter redOutGreenIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    redOutRedIn

    Modify influence of the red channel in the overall mix.

    Declaration
    [Tooltip("Modify influence of the red channel in the overall mix.")]
    public ClampedFloatParameter redOutRedIn
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter

    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>
    ClampedFloatParameter

    Implements

    IApplyRevertPropertyContextMenuItemProvider
    IPostProcessComponent

    See Also

    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    ClampedFloatParameter
    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)