docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class Tonemapping

    A volume component that holds settings for the tonemapping effect.

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

    You can add VolumeComponent to a VolumeProfile in the Editor to apply a tonemapping 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 Tonemapping m_VolumeComponent;
    
    [Serializable]
    private struct VolumeSettings
    {
        public bool active;
        public TonemappingModeParameter mode;
        public NeutralRangeReductionModeParameter neutralHDRRangeReductionMode;
        public HDRACESPresetParameter acesPreset;
        public ClampedFloatParameter hueShiftAmount;
        public BoolParameter detectPaperWhite;
        public ClampedFloatParameter paperWhite;
        public BoolParameter detectBrightnessLimits;
        public ClampedFloatParameter minNits;
        public ClampedFloatParameter maxNits;
    
    
        public void SetVolumeComponentSettings(ref Tonemapping volumeComponent)
        {
            volumeComponent.active = active;
            volumeComponent.mode = mode;
            volumeComponent.neutralHDRRangeReductionMode = neutralHDRRangeReductionMode;
            volumeComponent.acesPreset = acesPreset;
            volumeComponent.hueShiftAmount = hueShiftAmount;
            volumeComponent.detectPaperWhite = detectPaperWhite;
            volumeComponent.paperWhite = paperWhite;
            volumeComponent.detectBrightnessLimits = detectBrightnessLimits;
            volumeComponent.minNits = minNits;
            volumeComponent.maxNits = maxNits;
        }
    
        public void GetVolumeComponentSettings(ref Tonemapping volumeComponent)
        {
            active = volumeComponent.active;
            mode = volumeComponent.mode;
            neutralHDRRangeReductionMode = volumeComponent.neutralHDRRangeReductionMode;
            acesPreset = volumeComponent.acesPreset;
            hueShiftAmount = volumeComponent.hueShiftAmount;
            detectPaperWhite = volumeComponent.detectPaperWhite;
            paperWhite = volumeComponent.paperWhite;
            detectBrightnessLimits = volumeComponent.detectBrightnessLimits;
            minNits = volumeComponent.minNits;
            maxNits = volumeComponent.maxNits;
        }
    }
    
    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 Tonemapping volumeComponent)
    {
        if (volumeComponent != null)
            return true;
    
        if (volumeProfile == null)
        {
            Debug.LogError("ModifyVolumeComponent.GetVolumeComponent():\nvolumeProfile has not been assigned.");
            return false;
        }
    
        volumeProfile.TryGet(out Tonemapping component);
        if (component == null)
        {
            Debug.LogError($"ModifyVolumeComponent.GetVolumeComponent():\nMissing component in the \"{volumeProfile.name}\" VolumeProfile ");
            return false;
        }
    
        volumeComponent = component;
        return true;
    }
    

    }

    Fields

    acesPreset

    Specifies the preset for HDR displays.

    Declaration
    [Tooltip("Use the ACES preset for HDR displays.")]
    public HDRACESPresetParameter acesPreset
    Field Value
    Type Description
    HDRACESPresetParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    detectBrightnessLimits

    Enable to use the minimum and maximum brightness values detected from the output device. For best accuracy, considering calibrating these values manually.

    Declaration
    [Tooltip("Enable to use the minimum and maximum brightness values detected from the output device. For best accuracy, considering calibrating these values manually.")]
    public BoolParameter detectBrightnessLimits
    Field Value
    Type Description
    BoolParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    detectPaperWhite

    Enable to use values detected from the output device as paper white. When enabled, output images might differ between SDR and HDR. For best accuracy, set this value manually.

    Declaration
    [Tooltip("Enable to use values detected from the output device as paper white. When enabled, output images might differ between SDR and HDR. For best accuracy, set this value manually.")]
    public BoolParameter detectPaperWhite
    Field Value
    Type Description
    BoolParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    hueShiftAmount

    Specify how much hue to preserve. Values closer to 0 are likely to preserve hue. As values get closer to 1, Unity doesn't correct hue shifts.

    Declaration
    [Tooltip("Specify how much hue to preserve. Values closer to 0 are likely to preserve hue. As values get closer to 1, Unity doesn't correct hue shifts.")]
    public ClampedFloatParameter hueShiftAmount
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    maxNits

    The maximum brightness of the screen (in nits). This value is defined by the preset when using ACES Tonemap.

    Declaration
    [Tooltip("The maximum brightness of the screen (in nits). This value is defined by the preset when using ACES Tonemap.")]
    public ClampedFloatParameter maxNits
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    minNits

    The minimum brightness of the screen (in nits). This value is assumed to be 0.005f with ACES Tonemap.

    Declaration
    [Tooltip("The minimum brightness of the screen (in nits). This value is assumed to be 0.005f with ACES Tonemap.")]
    public ClampedFloatParameter minNits
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    mode

    Use this to select a tonemapping algorithm to use for color grading.

    Declaration
    [Tooltip("Select a tonemapping algorithm to use for the color grading process.")]
    public TonemappingModeParameter mode
    Field Value
    Type Description
    TonemappingModeParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    neutralHDRRangeReductionMode

    Specifies the range reduction mode used when HDR output is enabled and Neutral tonemapping is enabled.

    Declaration
    [AdditionalProperty]
    [Tooltip("Specifies the range reduction mode used when HDR output is enabled and Neutral tonemapping is enabled.")]
    public NeutralRangeReductionModeParameter neutralHDRRangeReductionMode
    Field Value
    Type Description
    NeutralRangeReductionModeParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    paperWhite

    The reference brightness of a paper white surface. This property determines the maximum brightness of UI. The brightness of the scene is scaled relative to this value. The value is in nits.

    Declaration
    [Tooltip("The reference brightness of a paper white surface. This property determines the maximum brightness of UI. The brightness of the scene is scaled relative to this value. The value is in nits.")]
    public ClampedFloatParameter paperWhite
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    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>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter

    Implements

    IApplyRevertPropertyContextMenuItemProvider
    IPostProcessComponent

    See Also

    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    TonemappingModeParameter
    NeutralRangeReductionModeParameter
    HDRACESPresetParameter
    ClampedFloatParameter
    BoolParameter
    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)