I developed this technique 2 or 3 years ago to solve one of the main issues with shadow mapping: transparency. The only other solution I had heard of at the time was Deep Shadow Maps, which didn’t seem like something that could be done in real time.
It’s a really, really simple idea. First, render the shadow map, drawing semi-transparent objects with screen door transparency. Apply some softening to the shadows, and voila. Of course, there are two major drawbacks.
- It’s still noisy, unless you use a massive filter.
- The only softening technique that works is PCF. VSM (and possible ESM) doesn’t work because the method naturally creates big depth discontinuities, and the conventional fix for light bleeding eliminates the transparent effect.