I was actually trying to avoid this topic as long as possible, but with my current updates on lighting system - I had to bump into it, and of course write about it.
So, when designing my lighting system I kept in mind few things I want to achieve with it - multiple light sources, that is a must have (especially when you're using deferred shading), all of those need to be used throughout the stages (global illumination, reflections, etc.), and I require all lighting to be dynamic and capable of casting shadows. Other than that multiple supported light types - point, spot, directional and area light sources, all supporting casting shadows.
While the lighting system is still not complete, shadows pretty much are. Or to be precise shadow filtering, a user needs to be able to select what shadow filtering method is light going to use (depending on the light importance, range and strength). So let's take a look at few examples of shadow filters available:
Standard shadow mapping & PCF shadow mapping
Bilinear shadow mapping & PCF + Bilinear shadow mapping
Are standard common filters well known and used. The advantage of these is that they are fast - and therefore possible to use for all lights. Yet they don't somehow seem realistic - especially for area lights, this is where more advanced filters are required.
Percentage closer soft shadows & Mip-map penumbrae shadow maps
Are advanced filters for area-based shadow maps, and allow for variable penumbra size. Note that the images might have a bit low bias, resulting in small artifacts (I didn't really fine tune anything for taking the images). These shadow filters should allow for most scenarios I can imagine (but technically if any other is required it can be added).