I've been actually experimenting with various shadowing every evening in past week - apart from the ones I've implemented.
So far the PCSS and PCMLSM (it's a PCSS variant where I use mipmaps to get more-smooth shadows using trilinear filtering) looks really good for small lights, but once you increase size it collapses (mainly because penumbra search is going to be wrong). Additionally PCSS suffers from noise, see the following:
![pcss.thumb.png.d358601429c409db90737cc01ac62b2b.png](https://uploads.gamedev.net/monthly_2018_07/pcss.thumb.png.d358601429c409db90737cc01ac62b2b.png)
PCSS - small area light
![pcss_large.thumb.png.5ba5057f41189686a32c5ead26a3f6fc.png](https://uploads.gamedev.net/monthly_2018_07/pcss_large.thumb.png.5ba5057f41189686a32c5ead26a3f6fc.png)
PCSS - large area light
In PCMLSM I got rid of PCSS noise, and it looks really good, for small-size area lights:
![pcmlsm.thumb.png.11dd61a02660fcefeed010e6259a2028.png](https://uploads.gamedev.net/monthly_2018_07/pcmlsm.thumb.png.11dd61a02660fcefeed010e6259a2028.png)
PCMLSM - Small area light
![pcmlsm_large.thumb.png.bb0e9c23f5266bf027ed5ee5728db751.png](https://uploads.gamedev.net/monthly_2018_07/pcmlsm_large.thumb.png.bb0e9c23f5266bf027ed5ee5728db751.png)
PCMLSM - large area light
I intentionally didn't do any attenuation at all. For comparison ISM-like approach with lots of small lights instead:
![samples.thumb.png.2f6c3770ea2142e7275e192530759e9b.png](https://uploads.gamedev.net/monthly_2018_07/samples.thumb.png.2f6c3770ea2142e7275e192530759e9b.png)
This looks by far superior to previous ones, yet the fillrate is huge (notice - you can see the actual shadow maps in the virtual shadow map to the right). This is quite close to the actual result I'd like to see (for large area lights).
Cone traced shadows are interesting but most likely a no-go simply because of the resolution of the voxelized scene - I just quickly played with cone size for the ambient occlusion and cone direction (to point towards the light), and you can clearly see that while it is generating shadows - they're not well-defined and suffer of light leaking (due to F.e. empty interior voxels of the sphere).
Using SDF instead could be good, but they will still suffer with lower resolution. Not to mention problems with animated models. I'd personally like to try it - yet it might be quite challenging.
![vxshadows.thumb.png.03c7898dc84eed88540b57f2aec66f73.png](https://uploads.gamedev.net/monthly_2018_07/vxshadows.thumb.png.03c7898dc84eed88540b57f2aec66f73.png)
Back-projection seem quite promising for such scenarios (yet the only working example which is from NVidia doesn't really work well with such scenario unless you invest large amount of steps in it - which again ends up in slowness) - which might actually render it useless in the end.
I'm now trying to implement the prototype I have into the actual editor so I share some nice screenshots and finish up the article (which is still in-progress), yet I do have some problems with different light types (point vs. spot), and generally the actual projection which seems incorrect to me.