Combinatorial Bidirectional Path-Tracing for Efficient Hybrid CPU/GPU Rendering
Eurographics 2011, Llandudno, Wales (UK)
[bibtex] [preprint] [supplemental material]
Abstract
This paper presents a reformulation of bidirectional path-tracing that adequately divides the algorithm into processes efficiently executed in parallel on both the CPU and the GPU. We thus benefit from high-level optimization techniques such as double buffering, batch processing, and asyncronous execution, as well as from the exploitation of most of the CPU, GPU, and memory bus capabilities. Our approach, while avoiding pure GPU implementation limitations (such as limited complexity of shaders, light or camera models, and processed scene data sets), is more than ten times faster than standard bidirectional path-tracing implementations, leading to performance suitable for production-oriented rendering engines.
Images of a scene with a large dataset (758K triangles, lots of textures) featuring complex lighting conditions (glossy reflections, caustics, strong indirect lighting, \etc) computed in respectively 50 seconds (left) and one hour (right). Standard bidirectional path-tracing requires respectively 11 minutes and 13 hours to obtain the same results.