I’ve spent a few hours changing the lighting model of built-in lighting model, it was hum… interesting.
So I have one request for the URP deferred, to lower the level of hum… interestingness:
make the changing of lighting model EASY
what this means practically:
wrap lambert should be no more than 4 nodes away: ndotl (yep should be a node so we don’t have to redo it 20 million times, since it’s used all the time), 0.5, mult and add
also, make multi pass composite possible so we can have inverse hull outlines.
How about the performance? I tried the deferred rendering in URP 9.0 with Unity 2020.2, seems every point light cause 3 extra non-batched draw call(Stencil Volume Pass + Lit Pass + Simple Lit Pass), not a big deal for PC, I did not see any framerate drops inside editor, but it’s a little bit scary…so I switch back to forward renderer…
So they are implementing deferred as it was 10 years ago, using stencil-based geometry draw calls instead of tiled/froxel compute-based shading. Why? Any GPU that doesn’t support compute shaders in 2020 is also very likely not capable of running 10+ referred rendered lights at an acceptable performance.
That’s reassuring. DeferredLights.cs is all about tiled lighting. Also nice to see many #if UNITY_SWITCH around the code, it means the team is actually testing their stuff on device or something. Oh, and seems they are trying to use burst inside SRPs now, so there is hope. For projects starting next year, but still.
Z:\__TESTS\Graphics\com.unity.render-pipelines.universal\Editor\ShaderGUI\ParticleGUI.cs(319,106): error CS1061: 'ParticleSystemRenderer' does not contain a definition for 'supportsMeshInstancing' and no accessible extension method 'supportsMeshInstancing' accepting a first argument of type 'ParticleSystemRenderer' could be found (are you missing a using directive or an assembly reference?)
That was the original idea with LWRP and HDRP. But when Unity realized expecting their user base to write their own render pipelines was infeasible, LWRP became URP and its goals changed: it now has to do everything built-in did, plus do it faster, better and scaling all the way from low end mobile to next-gen consoles (this will take a while).
HDRP’s role in this scenario is uncertain, since the only features it will have over URP when it’s all said and done are volumetric lighting and ray tracing.
There is no URP 14, they are both URP 10. I verified that those versions work together before replying to you, so it sounds like something is wrong in your setup. It looks like you have different versions of Core RP Library, Shader Graph, and Universal RP, which won’t work. When using local packages, all the dependencies of the local package must also be manually set up as local packages. So in this case, you have to also setup com.unity.render-pipelines.core and com.unity.shadergraph as local packages from the same repository.