Hey all. VSM has respectable performance across our project, but we see a sizable performance hit whenever the player pans the camera rapidly over the environment. We’re talking a difference of 10ms GPU thread to 22ms GPU thread. It rapidly adjusts and levels out, but it makes camera movement feel much less smooth and fluid.
I believe VSM are generated on screenspace and so are regenerating as the camera is moved, is there some settings I can change somewhere to account for this? I know lots of rendering settings have defaults set for close-perspective games (3P, FP), and ours is a top-down perspective.
I have had the same issue. The thing that I found that helped was changing the local lights shadow resolution bias in the DefaulScalability.ini. The lowest setting has very low res shadows but barely any cost to them. The epic quality mode has very sharp shadows but it spikes to about 10ms extra when moving the camera, so it’s a balancing act.
I also found that if you use nanite tesselated materials, the shadow cost rises a lot because of this. So it’s a better practise to displace you meshes in a 3d program if you can, and not do it in engine at runtime.
These are the values I used for the different scalabilty modes.