You know what HDRP is?.. EVERY single object you add has to be highly optimized (lowest tris/verts (mesh decimation), texture res/shadow settings, etc.). You have to squeeze out everything you can, as the old dev saying goes “its what you can do without, more than what you can do with”.
Balancing GPU/CPU load is important as Unity is a CPU heavy engine. So i tend to balance more towards GPU instancing with projects. HDRP (for me) loads/imports faster, with faster code compilation times, and is HD quality GFX.
Example: i added this dead tree model without optimizing and my perf (fps/ms) dropped drasticlly with only 2 in-scene. This is HDRP, you have to “shave off” as much as you can, just one mistake can cost you:
well, yeah, you are right. HDRP has expensive lighting algorithms and a mesh that is too high poly leads to a shadow caster that is too high poly, because of more complicated light calculations overdraw and sub pixel triangles can also “hurt” the performance more etc. In URP you don’t feel the impact of such things as much.
I also agree that the CPU main thread in most cases is the performance bottleneck, GPU instancing surely makes sense especially for bigger or open world levels. But it also depends, I personally as an indie dev think that I don’t have enough story/meaning/content to fill big levels anyway, so I use smaller ones. And in those a lot of the assets are unique, so instancing does not make sense.
Of course another thing one can do to balance CPU performance is use multithreaded things. I appreciate it so much, that there are some tools that are Job-System based, like Magica Cloth 2 for example, and it feels like one can add such things for free in terms of performance. (I didn’t actually profile anything yet, but it does not have a huge impact at least, I know that.)
Ive used Magica Cloth 2 before (on another studios project) and your correct, i didnt see really any performance hit at all. Your lucky to be dealing with smaller scenes, as large open world projects is a whole different ball game, and chunk streaming of terrain/frustum culling and a few others MUST be done.
Multithreading is really nice, i agree, and should be used where you can. HDRP is great, but one bad script or 1 un-optimized object and you can actually see the impact.