I recently tried adding a custom SurfaceData property / gbuffer to URP and it was a lot of work. I suspect it wasn't on the Unity team's radar as something users are likely to want to do, which is understandable because I think it's an advanced topic that most projects won't need.
However, I've found that the workflow of adding a SurfaceData property / gbuffer is more cumbersome than it needs to be right now, and it's possible to improve this a lot with a few small changes. (Detailed information is in the linked repository)
My question is two-tiered:
- Is there anything in the works to make it easier to expand SurfaceData / add a gbuffer? It would be amazing to be able to do this without having to modify the URP package.
- Having recently looked into the matter, I can suggest a few specific low-impact changes that would go a long way in improving this workflow. Is there any way I can contribute this? I'd be more than happy to sign an NDA and submit a pull request, for example.