I'm struggling for quite long time for choosing foliage placement system.My initial pipeline is HDRP (I'm HDRP main) and I fiddled with various ideas:
Please note that I'm using LOD0 + Impostor
• Default Unity System - no frustum culling, quite heavy to render objects
• Gameobjects - extremely heavy option, performance wise very close to default Unity placement.
• GPU Instancing/Static Batches - it wins about 5-10 fps, nice and free optimization, but my forest doesn't consist of 3 same models, rather tropical one with different type of palms, plant etc.
• 3rd party assets, GPUIntancer/VSP - I found those quite obsolete honestly, it still halves my initial FPS from 140 to 50-45
• Occlusion culling - Bake already takes quite a lot MS from CPU, so forest areas not really efficient.
At this point I'm really confused, I have few more ideas in my head, the latter one is ECS.
• 3rd party assets for Occlusion Culling - Not sure how it reduces CPU time, and not quite ready to spend $100 on unknown results
• Bake several trees into one mesh with mesh baker - In theory it should help, less meshes, all textures in atlases, but it breaks the idea with impostors and flexibility
• And finally ECS - Everyone saying it's a magic wand, but info so subtle with just several specific channels around it. Perhaps I used it wrong, create subscene place all gameobjects here and voilà it should work, but honestly I don't see any significant gains.
Perhaps some of you experienced same situation? I also work on different big project (not my own), and I can say VSP and Microverse also tends to just kill all FPS from 120 to 40-50 (60 in build)