nice. one consideration i have with vsm is their high usage of vram. and if you move the camera violently in a 3d game the cache could be invalidated and then you have some stutters. not sure if it applies to your game, but wanted to raise it.
you can enable the vsm cache visualization to take a look.
also there are some consideration to vsm cache invalidation, you can set up this on actors and/or materials, so there is a way to set it up incorrectly that will cause issues. i don’t recall exactly, but i think that animating trees with WPO can trigger vsm invalidation every frame. same for changing the sun position, changing it on tick will invalidate the whole vsm and send your fps to the 10-20 range.
tangential:
9 lights seems a bit too much, if they overlap. seems like a point to optimize. either channels, or which objects cast shadows (e.g. floors). if the floor is too big, it might create problems on the shadow maps. any too big object would i think.
“best” is whatever you choose imnsho.
that corresponds to my knowledge of vsms’ too. which makes me think, if you have nanite enabled, then enabling nanite on a mesh won’t really change the perf much.
so perf wise, i wouldn’t make a ton of difference with nanite vs low poly. maybe the vsm will be faster, in that case i personally would use nanite meshes.
but a good test for that is actually setting all meshes to nanite and using insights to record the difference. also it’s recommended to measure in a packaged shipping build and not editor.
unfortunate because i think that test would be interesting.
most people say that is usually better to have a low poly (with good lods) than nanite for perf. but i haven’t noticed a perf drop just by using nanite. maybe the system overhead, but you already have to do that for vsm. you personally maybe won’t get the most benefit from nanite (high mesh details). and you’re restricted in terms of translucency and foliage.
that seems like a good solution to me. i have an interaction system, and when i do chapter transitions i disable the interactor in the pawn. which is similar to disabling the mouse.
this might interest you Virtual Shadow and Local Lights Performance - #6 by ZacD