Bidirectional path tracing is very good at rendering scenes lit primarily by indirect light. Unlike unidirectional path tracing, bidirectional path tracing can sample indirect light directly by connecting eye subpath vertices to any light subpath vertex, not just points on the light source itself. This allows the light source to be found even when it is not directly visible. Below is an image that illustrates this, rendered in my renderer using bidirectional path tracing.
|
Image rendered using bidirectional path tracing. Click image to view full size. |
Below is the same render showing only the contribution of paths composed of two or more eye subpath vertices and zero or one light subpath vertices—the path types generated by a typical unidirectional path tracer with direct light sampling. Unidirectional path tracing can sample the light source efficiently only when it is directly visible. In the indirectly lit parts of the scene, especially those far from or multiple bounces away from the ceiling, it contributes very little compared to other sampling techniques. It isn't even the best sampling technique in the area of the ceiling closest to the light bulb, which is sampled most efficiently by light tracing.
|
Image rendered using bidirectional path tracing, but showing only the contribution of the sampling techniques used by unidirectional path tracing with direct light sampling. |
I modeled this scene in Maya, inspired by the indoor scene Veach used in his thesis.