LOD for Shadow Geo

My boss was mentioning this at work the other day. We can set a LOD for collision, but not one for shadow geometry. Being able to set a LOD for shadow would be pretty helpful for performance.

Why would it? The performance is dependent from the attenuation radius of the light, not the geo affected by it.

The performance of real time shadows is very much dependent on the scene complexity. For each dynamic shadow casting light you have to render a depth map of the scene from the light’s point of view, meaning you have to transform all the vertices of all meshes visible to that light. For example Crysis games have had the option for proxy shadow meshes that are used to render the shadow maps instead of the normal mesh.

3 Likes

While it would indeed slightly increase shadow depth rendering performance, it will also bring severe self-shadowing artifacts. Nowdays the method is quite questionable in terms of performance gain, but will indeed be worth sometimes, so having the feature would not hurt at all, but do not get the hopes too high about performance gains. They are quite low. Best used, if a group of small meshes is replaced with one shadow proxy in distant shadow cascades.

Thing is, that this feature needs to be implemented in parallel with changes, discussed in shadow artifacts thread. You would need to overbias a ton to overcome self shadowing artifacts, caused by mismatch of the view object LOD and shadow depth LOD, and with current biasing system you can’t do that, without ruining close-up shadows.

For last game I implement system where there was additional lod bias for out of sight shadow casters. This avoid sef shadow problems but introduces some popping when camera rotation makes object visible.