docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class FilmGrain

    A volume component that holds settings for the Film Grain effect.

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

    You can add VolumeComponent to a VolumeProfile in the Editor to apply a Film Grain 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 FilmGrain m_VolumeComponent;
    
    [Serializable]
    private struct VolumeSettings
    {
        public bool active;
        public FilmGrainLookupParameter type;
        public ClampedFloatParameter intensity;
        public ClampedFloatParameter response;
        public NoInterpTextureParameter texture;
    
        public void SetVolumeComponentSettings(ref FilmGrain volumeComponent)
        {
            volumeComponent.active = active;
            volumeComponent.type = type;
            volumeComponent.intensity = intensity;
            volumeComponent.response = response;
            volumeComponent.texture = texture;
        }
    
        public void GetVolumeComponentSettings(ref FilmGrain volumeComponent)
        {
            active = volumeComponent.active;
            type = volumeComponent.type;
            intensity = volumeComponent.intensity;
            response = volumeComponent.response;
            texture = volumeComponent.texture;
        }
    }
    
    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 FilmGrain volumeComponent)
    {
        if (volumeComponent != null)
            return true;
    
        if (volumeProfile == null)
        {
            Debug.LogError("ModifyVolumeComponent.GetVolumeComponent():\nvolumeProfile has not been assigned.");
            return false;
        }
    
        volumeProfile.TryGet(out FilmGrain component);
        if (component == null)
        {
            Debug.LogError($"ModifyVolumeComponent.GetVolumeComponent():\nMissing component in the \"{volumeProfile.name}\" VolumeProfile ");
            return false;
        }
    
        volumeComponent = component;
        return true;
    }
    

    }

    Fields

    intensity

    Use this to set the strength of the Film Grain effect.

    Declaration
    [Tooltip("Use the slider to set the strength of the Film Grain effect.")]
    public ClampedFloatParameter intensity
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    FilmGrainLookupParameter
    ClampedFloatParameter
    NoInterpTextureParameter

    response

    Controls the noisiness response curve based on scene luminance. Higher values mean less noise in light areas.

    Declaration
    [Tooltip("Controls the noisiness response curve based on scene luminance. Higher values mean less noise in light areas.")]
    public ClampedFloatParameter response
    Field Value
    Type Description
    ClampedFloatParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    FilmGrainLookupParameter
    ClampedFloatParameter
    NoInterpTextureParameter

    texture

    A tileable texture to use for the grain. The neutral value is 0.5 where no grain is applied

    Declaration
    [Tooltip("A tileable texture to use for the grain. The neutral value is 0.5 where no grain is applied.")]
    public NoInterpTextureParameter texture
    Field Value
    Type Description
    NoInterpTextureParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    FilmGrainLookupParameter
    ClampedFloatParameter
    NoInterpTextureParameter

    type

    The type of grain to use. You can select a preset or provide your own texture by selecting Custom.

    Declaration
    [Tooltip("The type of grain to use. You can select a preset or provide your own texture by selecting Custom.")]
    public FilmGrainLookupParameter type
    Field Value
    Type Description
    FilmGrainLookupParameter
    See Also
    VolumeProfile
    VolumeComponent
    IPostProcessComponent
    VolumeParameter<T>
    FilmGrainLookupParameter
    ClampedFloatParameter
    NoInterpTextureParameter

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

    Implements

    IApplyRevertPropertyContextMenuItemProvider
    IPostProcessComponent

    See Also

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