# RenderPipeline

> Provides a way to implement rendering logic for a Scriptable Render Pipeline.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.Rendering](/engine/6000.7/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public abstract class RenderPipeline
```

## Remarks

Inherit from this class to override the [RenderPipeline.Render](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/render.md) method as part of implementing a Scriptable Render Pipeline (SRP):

```csharp
using UnityEngine;
using UnityEngine.Rendering;
using System.Collections.Generic;

public class CustomRenderPipeline : RenderPipeline
{
    protected override void Render(ScriptableRenderContext context, List<Camera> cameras)
    {
        // Implement this method to customize your SRP.
        // For a more complete example, refer to RenderPipeline.Render.
    }
}
```

For more detailed information, refer to [Creating a custom render pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/manual/srp-custom.html) and  Unity Manual: Scriptable Render Pipeline.

## Properties

| Property                                                                                     | Description                                                                                                                              |
| -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| [disposed](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/disposed.md) | Returns true when the [RenderPipeline](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline.md) is invalid or destroyed. |

## Methods

| Method                                                                                                                       | Description                                                                                                                                                                                                                                      |
| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Dispose](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/dispose.md)                                   | Disposes the [RenderPipeline](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline.md), which destroys all internal states.                                                                                                      |
| [IsPreviewSupported](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/ispreviewsupported.md)             | Allow to specify if a camera can be previewed or not.                                                                                                                                                                                            |
| [IsRenderRequestSupported](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/isrenderrequestsupported.md) | Implement this method in a custom Scriptable Render Pipeline (SRP) to specify if a particular combination of camera and render request is supported.                                                                                             |
| [ProcessRenderRequests](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/processrenderrequests.md)       | Implement this method in a custom Scriptable Render Pipeline (SRP) to execute render requests submitted using [RenderPipeline.SubmitRenderRequest](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/submitrenderrequest.md). |
| [Render](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/render.md)                                     | Entry point method that defines custom rendering for this RenderPipeline.                                                                                                                                                                        |

## Static Methods

| Method                                                                                                                 | Description                                                                                                                                                                                                                                                                                                                  |
| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BeginCameraRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/begincamerarendering.md)   | Calls the [RenderPipelineManager.beginCameraRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipelinemanager/begincamerarendering.md) delegate.                                                                                                                                                        |
| [BeginContextRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/begincontextrendering.md) | Calls the [RenderPipelineManager.beginContextRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipelinemanager/begincontextrendering.md) and [RenderPipelineManager.beginFrameRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipelinemanager/beginframerendering.md) delegates. |
| [EndCameraRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/endcamerarendering.md)       | Calls the [RenderPipelineManager.endCameraRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipelinemanager/endcamerarendering.md) delegate.                                                                                                                                                            |
| [EndContextRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/endcontextrendering.md)     | Calls the [RenderPipelineManager.endContextRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipelinemanager/endcontextrendering.md) and [RenderPipelineManager.endFrameRendering](/engine/6000.7/script-reference/unityengine/rendering/renderpipelinemanager/endframerendering.md) delegates.         |
| [SubmitRenderRequest](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/submitrenderrequest.md)     | Submits a render request to a camera using the render pipeline, outside of the Unity render loop.                                                                                                                                                                                                                            |
| [SupportsRenderRequest](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/supportsrenderrequest.md) | Checks if the render pipeline supports the `RequestData` type with the camera.                                                                                                                                                                                                                                               |

## Classes

| Class                                                                                                                     | Description                                                                                                                                                  |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [RenderPipeline.StandardRequest](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/standardrequest.md) | Standard request type for [RenderPipeline.SubmitRenderRequest](/engine/6000.7/script-reference/unityengine/rendering/renderpipeline/submitrenderrequest.md). |
