Efficiently calculating accurate soft shadows cast by area light sources remains a difficult problem. Ray tracing based approaches are subject to noise or banding, and most other accurate methods either scale poorly with scene geometry or place restrictions on geometry and/or light source size and shape. Beam tracing is one solution which has historically been considered too slow and complicated for most practical rendering applications. Beam tracing's performance has been hindered by complex geometry intersection tests, and a lack of good acceleration structures with efficient algorithms to traverse them. We introduce fast new algorithms for beam tracing, specifically for beam-triangle intersection and beam--kd-tree traversal. The result is a beam tracer capable of calculating precise primary visibility and point light shadows in real-time. Moreover, beam tracing provides full area elements instead of point samples, which allows us to maintain coherence through to secondary effects and utilize the GPU for high quality antialiasing and shading with minimal extra cost. More importantly, our analysis shows that beam tracing is particularly well suited to soft shadows from area lights, and we generate essentially exact noise-free soft shadows for complex scenes in seconds rather than minutes or hours.
Paper -- final version (PDF, 3.7 MB)