# Custom rendering and post-processing in URP

> Techniques for customizing and extending the rendering process in URP.

Customize and extend the rendering process in the Universal Render Pipeline (URP). Create a custom render pass in a C# script and inject it into the URP frame rendering loop.

| Page                                                                                                                                                                    | Description                                                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Introduction to Scriptable Render Passes](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/intro-to-scriptable-render-passes.md)       | Learn about using Scriptable Render Passes to alter how Unity renders a scene or the objects within a scene.                                                                    |
| [Adding pre-built effects with Renderer Features in URP](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/urp-renderer-feature.md)      | Resources for adding pre-built render passes to URP, and configuring their behaviour.                                                                                           |
| [Custom render pass workflow in URP](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/custom-rendering-pass-workflow-in-urp.md)         | Add and inject a custom render pass.                                                                                                                                            |
| [Blit](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/blit-overview.md)                                                               | Understand the different ways to perform a blit operation in URP and best practices to follow when writing custom render passes.                                                |
| [Render graph system](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/render-graph.md)                                                 | Resources and approaches for using the `RenderGraph` APIs to create a Scriptable Render Pass.                                                                                   |
| [Adding a Scriptable Render Pass to the frame rendering loop](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/inject-a-render-pass.md) | Resources and techniques for injecting a custom render pass via a Scriptable Renderer Feature, or the `RenderPipelineManager` API.                                              |
| [Modify URP source code](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/modify-urp-source-code.md)                                    | Modify URP source code to implement advanced customizations.                                                                                                                    |
| [Compatibility Mode](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/compatibility-mode.md)                                            | Write a Scriptable Render Pass if you enable **Compatibility Mode (Render Graph Disabled)** in URP graphics settings. Unity no longer develops or improves this rendering path. |

## Additional resources

* [Rendering](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/introduction/urp-concepts/rendering-in-universalrp.md)
* [Render pipeline concepts](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/introduction/urp-concepts.md)
* [Pre-built effects (Renderer Features)](/engine/6000.0/manual/render-pipelines/universal-render-pipeline/customizing-urp/urp-renderer-feature/feature.md)
* [How to create a custom post-processing effect](/engine/6000.0/manual/post-processing-and-full-screen-effects/urp/custom-post-processing/custom-effect-low-code.md)
* [Execute rendering commands in a custom render pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@17.0/manual/srp-using-scriptable-render-context.html)
