Distributed ray tracing
Distributed ray tracing, also called distribution ray tracing and stochastic ray tracing, is a refinement of ray tracing that allows for the rendering of "soft" phenomena.
Conventional ray tracing uses single rays to
Distributed ray tracing removes these restrictions by averaging multiple rays distributed over an interval. For example, soft shadows can be rendered by distributing shadow rays over the light source area. Glossy or blurry reflections and transmissions can be rendered by distributing reflection and transmission rays over a solid angle about the mirror reflection or transmission direction. Adding "soft" phenomena to ray-traced images in this way can improve realism immensely, since the sharp phenomena rendered by conventional ray tracing are almost never seen in reality.[citation needed]
More advanced effects are also possible using the same framework. For instance,
.Mathematically, in order to evaluate the rendering equation, one must evaluate several integrals. Conventional ray tracing estimates these integrals by sampling the value of the integrand at a single point in the domain, which is a very bad approximation, except for narrow domains. Distributed ray tracing samples the integrand at many randomly chosen points and averages the results to obtain a better approximation. It is essentially an application of the Monte Carlo method to 3D computer graphics, and for this reason is also called "stochastic ray tracing". Path tracing is a rendering technique that combines all of these integration domains into a single, high-dimensional domain and samples it in a unified way.
Integration domains
- Soft shadows
- Anti-aliasing
- Glossy reflection
- Glossy transmission
- Depth of field
- Motion blur
- Spectral rendering
The term distributed ray tracing also refers to the application of distributed computing techniques to ray tracing. Two resolutions to this ambiguity are the term distribution ray tracing for the rendering technique, or the term parallel ray tracing in reference to parallel computing.