docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class CustomPass

    Class that holds data and logic for the pass to be executed

    Inheritance
    object
    CustomPass
    DrawRenderersCustomPass
    FullScreenCustomPass
    Implements
    IVersionable<CustomPass.Version>
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: UnityEngine.Rendering.HighDefinition
    Assembly: Unity.RenderPipelines.HighDefinition.Runtime.dll
    Syntax
    [Serializable]
    public abstract class CustomPass : IVersionable<CustomPass.Version>

    Fields

    clearFlags

    What clear to apply when the color and depth buffer are bound

    Declaration
    public ClearFlag clearFlags
    Field Value
    Type Description
    ClearFlag

    enabled

    Is the custom pass enabled or not

    Declaration
    public bool enabled
    Field Value
    Type Description
    bool

    targetColorBuffer

    Target color buffer (Camera or Custom)

    Declaration
    public CustomPass.TargetBuffer targetColorBuffer
    Field Value
    Type Description
    CustomPass.TargetBuffer

    targetDepthBuffer

    Target depth buffer (camera or custom)

    Declaration
    public CustomPass.TargetBuffer targetDepthBuffer
    Field Value
    Type Description
    CustomPass.TargetBuffer

    Properties

    executeInSceneView

    True if you want your custom pass to be executed in the scene view. False for game cameras only.

    Declaration
    protected virtual bool executeInSceneView { get; }
    Property Value
    Type Description
    bool

    fadeValue

    Mirror of the value in the CustomPassVolume where this custom pass is listed

    Declaration
    protected float fadeValue { get; }
    Property Value
    Type Description
    float

    The blend value that should be applied to the custom pass effect

    injectionPoint

    Get the injection point in HDRP where this pass will be executed

    Declaration
    protected CustomPassInjectionPoint injectionPoint { get; }
    Property Value
    Type Description
    CustomPassInjectionPoint

    name

    Name of the custom pass

    Declaration
    public string name { get; set; }
    Property Value
    Type Description
    string

    Methods

    AggregateCullingParameters(ref ScriptableCullingParameters, HDCamera)

    Use this method if you want to draw objects that are not visible in the camera. For example if you disable a layer in the camera and add it in the culling parameters, then the culling result will contains your layer.

    Declaration
    protected virtual void AggregateCullingParameters(ref ScriptableCullingParameters cullingParameters, HDCamera hdCamera)
    Parameters
    Type Name Description
    ScriptableCullingParameters cullingParameters

    Aggregate the parameters in this property (use |= for masks fields, etc.)

    HDCamera hdCamera

    The camera where the culling is being done

    Cleanup()

    Called when HDRP is destroyed. Allow you to free custom buffers.

    Declaration
    protected virtual void Cleanup()

    CreateDrawRenderersPass(RenderQueueType, LayerMask, Material, string, SortingCriteria, ClearFlag, TargetBuffer, TargetBuffer)

    Create a Custom Pass to render objects

    Declaration
    public static DrawRenderersCustomPass CreateDrawRenderersPass(CustomPass.RenderQueueType queue, LayerMask mask, Material overrideMaterial, string overrideMaterialPassName = "Forward", SortingCriteria sorting = SortingCriteria.SortingLayer | SortingCriteria.RenderQueue | SortingCriteria.OptimizeStateChanges | SortingCriteria.CanvasOrder, ClearFlag clearFlags = ClearFlag.None, CustomPass.TargetBuffer targetColorBuffer = TargetBuffer.Camera, CustomPass.TargetBuffer targetDepthBuffer = TargetBuffer.Camera)
    Parameters
    Type Name Description
    CustomPass.RenderQueueType queue

    The render queue filter to select which object will be rendered

    LayerMask mask

    The layer mask to select which layer(s) will be rendered

    Material overrideMaterial

    The replacement material to use when renering objects

    string overrideMaterialPassName

    The pass name to use in the override material

    SortingCriteria sorting

    Sorting options when rendering objects

    ClearFlag clearFlags

    Clear options when the target buffers are bound. Before executing the pass

    CustomPass.TargetBuffer targetColorBuffer

    Target Color buffer

    CustomPass.TargetBuffer targetDepthBuffer

    Target Depth buffer. Note: It's also the buffer which will do the Depth Test

    Returns
    Type Description
    DrawRenderersCustomPass

    CreateFullScreenPass(Material, TargetBuffer, TargetBuffer)

    Create a custom pass to execute a fullscreen pass

    Declaration
    public static FullScreenCustomPass CreateFullScreenPass(Material fullScreenMaterial, CustomPass.TargetBuffer targetColorBuffer = TargetBuffer.Camera, CustomPass.TargetBuffer targetDepthBuffer = TargetBuffer.Camera)
    Parameters
    Type Name Description
    Material fullScreenMaterial

    The material to use for your fullscreen pass. It must have a shader based on the Custom Pass Fullscreen shader or equivalent

    CustomPass.TargetBuffer targetColorBuffer
    CustomPass.TargetBuffer targetDepthBuffer
    Returns
    Type Description
    FullScreenCustomPass

    Execute(CustomPassContext)

    Called when your pass needs to be executed by a camera

    Declaration
    protected virtual void Execute(CustomPassContext ctx)
    Parameters
    Type Name Description
    CustomPassContext ctx

    The context of the custom pass. Contains command buffer, render context, buffer, etc.

    Execute(ScriptableRenderContext, CommandBuffer, HDCamera, CullingResults)

    Called when your pass needs to be executed by a camera

    Declaration
    [Obsolete("This Execute signature is obsolete and will be removed in the future. Please use Execute(CustomPassContext) instead")]
    protected virtual void Execute(ScriptableRenderContext renderContext, CommandBuffer cmd, HDCamera hdCamera, CullingResults cullingResult)
    Parameters
    Type Name Description
    ScriptableRenderContext renderContext
    CommandBuffer cmd
    HDCamera hdCamera
    CullingResults cullingResult

    ~CustomPass()

    Cleans up the custom pass when Unity destroys it unexpectedly. Currently, this happens every time you edit the UI because of a bug with the SerializeReference attribute.

    Declaration
    protected ~CustomPass()

    GetCameraBuffers(out RTHandle, out RTHandle)

    Get the current camera buffers (can be MSAA)

    Declaration
    [Obsolete("GetCameraBuffers is obsolete and will be removed in the future. All camera buffers are now avaliable directly in the CustomPassContext in parameter of the Execute function")]
    protected void GetCameraBuffers(out RTHandle colorBuffer, out RTHandle depthBuffer)
    Parameters
    Type Name Description
    RTHandle colorBuffer

    outputs the camera color buffer

    RTHandle depthBuffer

    outputs the camera depth buffer

    GetCustomBuffers(out RTHandle, out RTHandle)

    Get the current custom buffers

    Declaration
    [Obsolete("GetCustomBuffers is obsolete and will be removed in the future. All custom buffers are now avaliable directly in the CustomPassContext in parameter of the Execute function")]
    protected void GetCustomBuffers(out RTHandle colorBuffer, out RTHandle depthBuffer)
    Parameters
    Type Name Description
    RTHandle colorBuffer

    outputs the custom color buffer

    RTHandle depthBuffer

    outputs the custom depth buffer

    GetNormalBuffer()

    Get the current normal buffer (can be MSAA)

    Declaration
    [Obsolete("GetNormalBuffer is obsolete and will be removed in the future. Normal buffer is now avaliable directly in the CustomPassContext in parameter of the Execute function")]
    protected RTHandle GetNormalBuffer()
    Returns
    Type Description
    RTHandle

    GetRenderQueueRange(RenderQueueType)

    Returns the render queue range associated with the custom render queue type

    Declaration
    protected RenderQueueRange GetRenderQueueRange(CustomPass.RenderQueueType type)
    Parameters
    Type Name Description
    CustomPass.RenderQueueType type

    The custom pass render queue type.

    Returns
    Type Description
    RenderQueueRange

    Returns a render queue range compatible with a ScriptableRenderContext.DrawRenderers.

    RegisterMaterialForInspector()

    List all the materials that need to be displayed at the bottom of the component. All the materials gathered by this method will be used to create a Material Editor and then can be edited directly on the custom pass.

    Declaration
    public virtual IEnumerable<Material> RegisterMaterialForInspector()
    Returns
    Type Description
    IEnumerable<Material>

    An enumerable of materials to show in the inspector. These materials can be null, the list is cleaned afterwards

    ResolveMSAAColorBuffer(CommandBuffer, HDCamera)

    Resolve the camera color buffer only if the MSAA is enabled and the pass is executed in before transparent.

    Declaration
    protected void ResolveMSAAColorBuffer(CommandBuffer cmd, HDCamera hdCamera)
    Parameters
    Type Name Description
    CommandBuffer cmd
    HDCamera hdCamera

    ResolveMSAAColorBuffer(CustomPassContext)

    Resolve the camera color buffer only if the MSAA is enabled and the pass is executed in before transparent.

    Declaration
    protected void ResolveMSAAColorBuffer(CustomPassContext ctx)
    Parameters
    Type Name Description
    CustomPassContext ctx

    Custom Pass Context from the Execute() method

    SetCameraRenderTarget(CommandBuffer, bool, ClearFlag)

    Bind the camera color buffer as the current render target

    Declaration
    [Obsolete("Use directly CoreUtils.SetRenderTarget with the render target of your choice.")]
    protected void SetCameraRenderTarget(CommandBuffer cmd, bool bindDepth = true, ClearFlag clearFlags = ClearFlag.None)
    Parameters
    Type Name Description
    CommandBuffer cmd
    bool bindDepth

    if true we bind the camera depth buffer in addition to the color

    ClearFlag clearFlags

    SetCustomRenderTarget(CommandBuffer, bool, ClearFlag)

    Bind the custom color buffer as the current render target

    Declaration
    [Obsolete("Use directly CoreUtils.SetRenderTarget with the render target of your choice.")]
    protected void SetCustomRenderTarget(CommandBuffer cmd, bool bindDepth = true, ClearFlag clearFlags = ClearFlag.None)
    Parameters
    Type Name Description
    CommandBuffer cmd
    bool bindDepth

    if true we bind the custom depth buffer in addition to the color

    ClearFlag clearFlags

    SetRenderTargetAuto(CommandBuffer)

    Bind the render targets according to the parameters of the UI (targetColorBuffer, targetDepthBuffer and clearFlags)

    Declaration
    protected void SetRenderTargetAuto(CommandBuffer cmd)
    Parameters
    Type Name Description
    CommandBuffer cmd

    Setup(ScriptableRenderContext, CommandBuffer)

    Called before the first execution of the pass occurs. Allow you to allocate custom buffers.

    Declaration
    protected virtual void Setup(ScriptableRenderContext renderContext, CommandBuffer cmd)
    Parameters
    Type Name Description
    ScriptableRenderContext renderContext

    The render context

    CommandBuffer cmd

    Current command buffer of the frame

    Implements

    IVersionable<TVersion>
    In This Article
    Back to top
    Copyright © 2024 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)