Custom render pass workflow in URP
A custom render pass is a way to change how the Universal Render Pipeline (URP) renders a scene or the objects within a scene. A custom render pass contains your own rendering code, which you add to the rendering pipeline at an injection point.
To add a custom render pass, complete the following tasks:
- Create the code for a custom render pass using the Scriptable Render Pass API.
- Inject the custom render pass using the
RenderPipelineManager
API, or by creating a Scriptable Renderer Feature that you add to the URP Renderer.
Create the code for a custom render pass
Use the ScriptableRenderPass
to create the code for a custom render pass.
Refer to Write a Scriptable Render Pass for more information.
Inject the custom render pass using the RenderPipelineManager API
Unity raises a beginCameraRendering event before it renders each active Camera in every frame. You can subscribe a method to this event, to execute your custom render pass before Unity renders the Camera.
Refer to Inject a render pass via scripting for more information.
Create a Scriptable Renderer Feature
Scriptable Renderer Features control when and how the Scriptable Render Passes apply to a particular renderer or camera, and can also manage multiple Scriptable Render Passes at once.
To create a Scriptable Renderer Feature, you do the following:
- Create a Scriptable Renderer Feature using the API.
- Add the Scriptable Renderer Feature to the Universal Renderer asset, so it's included in the rendering pipeline.
- Enqueue your custom render pass in the Scriptable Renderer Feature.
Refer to Inject a pass using a Scriptable Renderer Feature for more information.