Class DepthOfField
A volume component that holds settings for the Depth Of Field effect.
Inherited Members
Namespace: UnityEngine .Rendering.Universal
Assembly: Unity.RenderPipelines.Universal.Runtime.dll
Syntax
[Serializable]
[VolumeComponentMenu("Post-processing/Depth Of Field")]
[SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
public sealed class DepthOfField : 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 DepthOfField m_VolumeComponent;
[Serializable]
private struct VolumeSettings
{
public bool active;
public DepthOfFieldModeParameter mode;
public MinFloatParameter gaussianStart;
public MinFloatParameter gaussianEnd;
public ClampedFloatParameter gaussianMaxRadius;
public BoolParameter highQualitySampling;
public MinFloatParameter focusDistance;
public ClampedFloatParameter aperture;
public ClampedFloatParameter focalLength;
public ClampedIntParameter bladeCount;
public ClampedFloatParameter bladeCurvature;
public ClampedFloatParameter bladeRotation;
public void SetVolumeComponentSettings(ref DepthOfField volumeComponent)
{
volumeComponent.active = active;
volumeComponent.mode = mode;
volumeComponent.gaussianStart = gaussianStart;
volumeComponent.gaussianEnd = gaussianEnd;
volumeComponent.gaussianMaxRadius = gaussianMaxRadius;
volumeComponent.highQualitySampling = highQualitySampling;
volumeComponent.focusDistance = focusDistance;
volumeComponent.aperture = aperture;
volumeComponent.focalLength = focalLength;
volumeComponent.bladeCount = bladeCount;
volumeComponent.bladeCurvature = bladeCurvature;
volumeComponent.bladeRotation = bladeRotation;
}
public void GetVolumeComponentSettings(ref DepthOfField volumeComponent)
{
active = volumeComponent.active;
mode = volumeComponent.mode;
gaussianStart = volumeComponent.gaussianStart;
gaussianEnd = volumeComponent.gaussianEnd;
gaussianMaxRadius = volumeComponent.gaussianMaxRadius;
highQualitySampling = volumeComponent.highQualitySampling;
focusDistance = volumeComponent.focusDistance;
aperture = volumeComponent.aperture;
focalLength = volumeComponent.focalLength;
bladeCount = volumeComponent.bladeCount;
bladeCurvature = volumeComponent.bladeCurvature;
bladeRotation = volumeComponent.bladeRotation;
}
}
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 DepthOfField volumeComponent)
{
if (volumeComponent != null)
return true;
if (volumeProfile == null)
{
Debug.LogError("ModifyVolumeComponent.GetVolumeComponent():\nvolumeProfile has not been assigned.");
return false;
}
volumeProfile.TryGet(out DepthOfField component);
if (component == null)
{
Debug.LogError($"ModifyVolumeComponent.GetVolumeComponent():\nMissing component in the \"{volumeProfile.name}\" VolumeProfile ");
return false;
}
volumeComponent = component;
return true;
}
}
Fields
aperture
The ratio of aperture (known as f-stop or f-number). The smaller the value is, the shallower the depth of field is.
Declaration
[Tooltip("The ratio of aperture (known as f-stop or f-number). The smaller the value is, the shallower the depth of field is.")]
public ClampedFloatParameter aperture
Field Value
Type | Description |
---|---|
Clamped |
See Also
bladeCount
The number of aperture blades.
Declaration
[Tooltip("The number of aperture blades.")]
public ClampedIntParameter bladeCount
Field Value
Type | Description |
---|---|
Clamped |
See Also
bladeCurvature
The curvature of aperture blades. The smaller the value is, the more visible aperture blades are. A value of 1 will make the bokeh perfectly circular.
Declaration
[Tooltip("The curvature of aperture blades. The smaller the value is, the more visible aperture blades are. A value of 1 will make the bokeh perfectly circular.")]
public ClampedFloatParameter bladeCurvature
Field Value
Type | Description |
---|---|
Clamped |
See Also
bladeRotation
The rotation of aperture blades in degrees.
Declaration
[Tooltip("The rotation of aperture blades in degrees.")]
public ClampedFloatParameter bladeRotation
Field Value
Type | Description |
---|---|
Clamped |
See Also
focalLength
The distance between the lens and the film. The larger the value is, the shallower the depth of field is.
Declaration
[Tooltip("The distance between the lens and the film. The larger the value is, the shallower the depth of field is.")]
public ClampedFloatParameter focalLength
Field Value
Type | Description |
---|---|
Clamped |
See Also
focusDistance
The distance to the point of focus.
Declaration
[Tooltip("The distance to the point of focus.")]
public MinFloatParameter focusDistance
Field Value
Type | Description |
---|---|
Min |
See Also
gaussianEnd
The distance at which the blurring will reach its maximum radius.
Declaration
[Tooltip("The distance at which the blurring will reach its maximum radius.")]
public MinFloatParameter gaussianEnd
Field Value
Type | Description |
---|---|
Min |
See Also
gaussianMaxRadius
The maximum radius of the gaussian blur. Values above 1 may show under-sampling artifacts.
Declaration
[Tooltip("The maximum radius of the gaussian blur. Values above 1 may show under-sampling artifacts.")]
public ClampedFloatParameter gaussianMaxRadius
Field Value
Type | Description |
---|---|
Clamped |
See Also
gaussianStart
The distance at which the blurring will start.
Declaration
[Tooltip("The distance at which the blurring will start.")]
public MinFloatParameter gaussianStart
Field Value
Type | Description |
---|---|
Min |
See Also
highQualitySampling
Use higher quality sampling to reduce flickering and improve the overall blur smoothness.
Declaration
[Tooltip("Use higher quality sampling to reduce flickering and improve the overall blur smoothness.")]
public BoolParameter highQualitySampling
Field Value
Type | Description |
---|---|
Bool |
See Also
mode
Use this to select Focusing modes for the depth of field effect.
Declaration
[Tooltip("Use \"Gaussian\" for a faster but non physical depth of field; \"Bokeh\" for a more realistic but slower depth of field.")]
public DepthOfFieldModeParameter mode
Field Value
Type | Description |
---|---|
Depth |
See Also
Methods
IsActive()
Tells if the post process needs to be rendered or not.
Declaration
public bool IsActive()
Returns
Type | Description |
---|---|
bool |
|