Class Tonemapping
A volume component that holds settings for the tonemapping effect.
Inherited Members
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 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 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 |
---|---|
HDRACESPreset |
See Also
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 |
---|---|
Bool |
See Also
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 |
---|---|
Bool |
See Also
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 |
---|---|
Clamped |
See Also
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 |
---|---|
Clamped |
See Also
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 |
---|---|
Clamped |
See Also
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 |
---|---|
Tonemapping |
See Also
neutralHDRRangeReductionMode
Specifies the range reduction mode used when HDR output is enabled and Neutral tonemapping is enabled.
Declaration
[Tooltip("Specifies the range reduction mode used when HDR output is enabled and Neutral tonemapping is enabled.")]
public NeutralRangeReductionModeParameter neutralHDRRangeReductionMode
Field Value
Type | Description |
---|---|
Neutral |
See Also
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 |
---|---|
Clamped |
See Also
Methods
IsActive()
Tells if the post process needs to be rendered or not.
Declaration
public bool IsActive()
Returns
Type | Description |
---|---|
bool |
|