Custom Render Pipeline that inherits from URP

I’m trying to create a Custom Render Pipeline (not feature) that is inheriting from UniversalRenderPipeline.

I haven’t read anywhere that the two conflict, but I’ve found that I’m unable to inherit from UniversalRenderPipeline since it is a sealed class.

I also recognize that the CreatePipeline method specifically requires RenderPipeline and so I wouldn’t even be able to create the custom pipeline if I managed to get it to inherit.

So I don’t expect that inheriting is the solution. But I’m left with 2 issues:

  1. I get errors if I try to use a RenderPipelineAsset that isn’t a UniversalRenderPipelineAsset.
  2. If I do make my custom asset inherit from UniversalRenderPipelineAsset I have a type mismatch when assigning the RendererData in the inspector, as seen here:

image

CustomRenderPipelineAsset.CreatePipeline. Type error: UnityEngine.Rendering.Universal.UniversalRenderPipeline is different from CustomRenderPipeline. The property pipelineType must return the same type
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

I know I haven’t been the only person to try and make a custom renderer built on top of the universal renderer, but I can’t find anything about this issue.

  1. Is it possible to make a CustomRenderPipeline that works in URP
  2. Is it possible to make a CustomRenderPipeline that works directly off of a Universal Render Pipeline
  3. Am I able to make a custom RenderPipeline that will make a camera do only a depth pass, and then add that to an existing UniversalRenderPipelineAsset’s RendererDataList so that I can still use the URP Renderer for the Main Camera and my custom renderer for a Secondary Camera?

I’m trying to work through this so I can have a flyover camera creating a depth texture without all of the other rendering, while also having my main camera operating as expected in URP.

Thanks for reading.