Class CopyDepthPass
Copy the given depth buffer into the given destination depth buffer.
You can use this pass to copy a depth buffer to a destination, so you can use it later in rendering. If the source texture has MSAA enabled, the pass uses a custom MSAA resolve. If the source texture does not have MSAA enabled, the pass uses a Blit or a Copy Texture operation, depending on what the current platform supports.
Inherited Members
Namespace: UnityEngine.Rendering.Universal.Internal
Assembly: Unity.RenderPipelines.Universal.Runtime.dll
Syntax
public class CopyDepthPass : ScriptableRenderPass
Constructors
CopyDepthPass(RenderPassEvent, Material, bool, bool, bool)
Creates a new CopyDepthPass
instance.
Declaration
public CopyDepthPass(RenderPassEvent evt, Material copyDepthMaterial, bool shouldClear = false, bool copyToDepth = false, bool copyResolvedDepth = false)
Parameters
Type | Name | Description |
---|---|---|
RenderPassEvent | evt | The |
Material | copyDepthMaterial | The |
bool | shouldClear | Controls whether it should do a clear before copying the depth. |
bool | copyToDepth | Controls whether it should do a copy to a depth format target. |
bool | copyResolvedDepth | Set to true if the source depth is MSAA resolved. |
See Also
Methods
Execute(ScriptableRenderContext, ref RenderingData)
Execute the pass. This is where custom rendering occurs. Specific details are left to the implementation
Declaration
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
Parameters
Type | Name | Description |
---|---|---|
ScriptableRenderContext | context | Use this render context to issue any draw commands during execution |
RenderingData | renderingData | Current rendering state information |
Overrides
OnCameraCleanup(CommandBuffer)
Called upon finish rendering a camera. You can use this callback to release any resources created by this render pass that need to be cleanup once camera has finished rendering. This method be called for all cameras in a camera stack.
Declaration
public override void OnCameraCleanup(CommandBuffer cmd)
Parameters
Type | Name | Description |
---|---|---|
CommandBuffer | cmd | Use this CommandBuffer to cleanup any generated data |
Overrides
OnCameraSetup(CommandBuffer, ref RenderingData)
This method is called by the renderer before rendering a camera
Override this method if you need to to configure render targets and their clear state, and to create temporary render target textures.
If a render pass doesn't override this method, this render pass renders to the active Camera's render target.
You should never call CommandBuffer.SetRenderTarget. Instead call ConfigureTarget
and ConfigureClear
.
Declaration
public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData)
Parameters
Type | Name | Description |
---|---|---|
CommandBuffer | cmd | CommandBuffer to enqueue rendering commands. This will be executed by the pipeline. |
RenderingData | renderingData | Current rendering state information |
Overrides
See Also
Render(RenderGraph, TextureHandle, TextureHandle, ref RenderingData, bool, string)
Sets up the Copy Depth pass for RenderGraph execution
Declaration
public void Render(RenderGraph renderGraph, TextureHandle destination, TextureHandle source, ref RenderingData renderingData, bool bindAsCameraDepth = false, string passName = "Copy Depth")
Parameters
Type | Name | Description |
---|---|---|
RenderGraph | renderGraph | |
TextureHandle | destination | |
TextureHandle | source | |
RenderingData | renderingData | |
bool | bindAsCameraDepth | If this is true, the destination texture is bound as _CameraDepthTexture after the copy pass |
string | passName |
Setup(RTHandle, RTHandle)
Configure the pass with the source and destination to execute on.
Declaration
public void Setup(RTHandle source, RTHandle destination)
Parameters
Type | Name | Description |
---|---|---|
RTHandle | source | Source Render Target |
RTHandle | destination | Destination Render Target |