<p>In <strong>Distributed ray tracing</strong>, You stochastically sample many rays in directions which <em>may or may not</em> be preferred by the BRDF. Whereas, in <strong>Monte Carlo ray tracing</strong> or simply path tracing, you sample only one ray <em>in a direction preferred by the BRDF</em>. So, there are two obvious advantages Path Tracing would have:</p>

<ul>
<li>Computationally less expensive. Which means with the same computing power you have the freedom of calculating over more object hits as compared to distributed ray tracing where there are multiple rays.</li>
<li>Less noise. Distributed ray tracing samples rays in directions that might not be preferred by the BRDF, therefore introducing unwanted artifacts. </li>
</ul>

<p>And so, path tracing would give you better results.</p>

CC BY-SA 3.0
2015-11-17T10:20:32.100Z
"Whereas, in Monte Carlo ray tracing or simply path tracing, you sample only one ray in a direction preferred by the BRDF." Per se, you don't know how the ray is selected. Naive approaches use random rays. Taking the BRDF into account is importance sampling and not inherent to Monte Carlo ray tracing or path tracing.
David Kuri
CC BY-SA 3.0
2016-03-24T05:27:59.740Z
I believe this answer is completely false. You are free to multisample outgoing rays and weight their result when combining. You obtain the same truth than the russian roulette technique, but it's generally accepted that the former method is more expensive.
v.oddou
CC BY-SA 3.0
2015-08-04T18:57:38.277Z
2015-08-04T18:57:38.277Z
ranagraw
<p>Monte Carlo integration is an unbiased estimator for the synthesis of lights that contributed to a pixel. While we cannot exactly simulate the real world light path because the amount of rays is infinite, we can use Monte Carlo integration to estimate the expected value. That's why it is much more realistic: from the statistics aspect, the expectation of Monte Carlo ray tracing is the "real light paths".</p>

<p>You can read <a href="https://hsuanwei.codes/2019/12/06/pt/#more" rel="nofollow noreferrer">my blog</a> for more math details.</p>

CC BY-SA 4.0
2019-12-06T11:36:49.733Z
2019-12-06T11:36:49.733Z
范軒瑋
<p>The term "distributed ray tracing" was originally coined by Robert Cook in <a href="http://artis.inrialpes.fr/Enseignement/TRSA/CookDistributed84.pdf">this 1984 paper</a>. His observation was that in order to perform anti-aliasing in a ray-tracer, the renderer needs to perform spatial upsampling - that is, to take more samples (i.e. shoot more rays) than the number of pixels in the image and combine their results. One way to do this is to shoot multiple rays within a pixel and average their color values, for example. However, if the renderer is already tracing multiple rays per pixel anyway to obtain an anti-aliased image, then these rays can also be "distributed" among additional dimensions than just the pixel position to sample effects that could not be captured by a single ray. The important bit is that this comes without any additional cost on top of spatial upsampling, since you're already tracing those additional rays anyway. For example, if you shoot multiple rays within your pixel to compute an anti-aliased result, you can get motion blur absolutely for free if you also use a different time value for each ray (or soft shadows if they connect to a different point on the light source, or depth of field if they use a different starting point on the aperture, etc.).</p>

<p>Monte Carlo ray tracing is a term that is slightly ambiguous. In most cases, it refers to rendering techniques that solve the <a href="http://www.dca.fee.unicamp.br/~leopini/DISCIPLINAS/IA725/ia725-12010/kajiya-SIG86-p143.pdf">rendering equation</a>, introduced by Jim Kajiya in 1986, using Monte Carlo integration. Practically all modern rendering techniques that solve the rendering equation, such as path tracing, bidirectional path tracing, progressive photon mapping and VCM, can be classified as Monte Carlo ray tracing techniques. The idea of Monte Carlo integration is that we can compute the integral of any function by randomly choosing points in the integration domain and averaging the value of the function at these points. At a high level, in Monte Carlo ray tracing we can use this technique to integrate the amount of light arriving at the camera within a pixel in order to compute the pixel value. For example, a path tracer does this by randomly picking a point within the pixel to shoot the first ray, and then continues to randomly pick a direction to continue on the surface it lands on, and so forth. We could also randomly pick a position on the time axis if we want to do motion blur, or randomly pick a point on the aperture if wanted to do depth of field, or...</p>

<p>If this sounds very similar to distributed ray tracing, that's because it is! We can think of distributed ray tracing as a very informal description of a Monte Carlo algorithm that samples certain effects like soft shadows. Cook's paper lacks the mathematical framework to really reason about it properly, but you could certainly implement distributed ray tracing using a simple Monte Carlo renderer. It's worth noting that distributed ray tracing lacks any description of global illumination effects, which are naturally modeled in the rendering equation (it should be mentioned that Kajiya's paper was published two years after Cook's paper).</p>

<p>You can think of Monte Carlo ray tracing as being a more general version of distributed ray tracing. Monte Carlo ray tracing contains a general mathematical framework that allows you to handle practically any effect, including those mentioned in the distributed ray tracing paper.</p>

<p>These days, "distributed ray tracing" is not really a term that's used to refer to the original algorithm. More often you will hear it in conjunction with "distribution effects", which are simply effects such as motion blur, depth of field or soft shadows that cannot be handled with a single-sample raytracer.</p>

CC BY-SA 3.0
2015-08-04T19:33:04.573Z
2015-08-04T19:33:04.573Z
Benedikt Bitterli
<p>I've heard that the quality of a monte carlo ray tracer (based on path tracing algorithms) is much more realistic than a distributed (stochastic) engine. I try to understand why, but I'm just at the beginning. </p>

<p>In order to dive into this topic and understand the basics, can someone point me into the right direction? What part of the algorithm leads into a more realistic render result? </p>

CC BY-SA 3.0
2015-08-04T18:34:42.330Z
I'd want more than "A recommendation of a solid book" as this question should be given a direct answer by someone who knows about this. We should try to put information on the site instead of pointing to it off-site.
Robobenklein
CC BY-SA 3.0
2015-08-04T18:37:46.930Z
@robobenklein Question edited, thought better be careful ;)
p2or
CC BY-SA 3.0
2015-08-04T18:41:36.920Z
@ChristianRau Removing "Thanks" should discussed in a meta, this is different on every stack exchange site...
p2or
CC BY-SA 3.0
2015-08-04T18:43:15.267Z
@poor No, it isn't really. That's something that nowhere ever changes. And as long as we don't have special rules, we employ the general SE ones anyway. But even then, I can hardly imagine anyone for voting this to be allowed here. I've never seen this being good practice on any other SE site.
Christian Rau
<raytracing><algorithm><monte-carlo>
Why does monte carlo ray tracing perform better than distributed ray tracing?
p2or
# Why does monte carlo ray tracing perform better than distributed ray tracing?

(Asked by: username_0 on 2015-08-04)

I've heard that the quality of a monte carlo ray tracer (based on path tracing algorithms) is much more realistic than a distributed (stochastic) engine. I try to understand why, but I'm just at the beginning.

In order to dive into this topic and understand the basics, can someone point me into the right direction? What part of the algorithm leads into a more realistic render result?

**Tags:** raytracing, algorithm, monte-carlo

> **Comments:**
> **username_1**: I'd want more than "A recommendation of a solid book" as this question should be given a direct answer by someone who knows about this. We should try to put information on the site instead of pointing to it off-site.  
> **username_0**: @username_1 Question edited, thought better be careful ;)  
> **username_0**: @username_2 Removing "Thanks" should discussed in a meta, this is different on every stack exchange site...  
> **username_2**: @poor No, it isn't really. That's something that nowhere ever changes. And as long as we don't have special rules, we employ the general SE ones anyway. But even then, I can hardly imagine anyone for voting this to be allowed here. I've never seen this being good practice on any other SE site.  

---

## 3 answers

### Answer by username_7 on 2015-08-04. Score: 38 | Accepted answer

The term "distributed ray tracing" was originally coined by Robert Cook in [this 1984 paper](http://artis.inrialpes.fr/Enseignement/TRSA/CookDistributed84.pdf). His observation was that in order to perform anti-aliasing in a ray-tracer, the renderer needs to perform spatial upsampling - that is, to take more samples (i.e. shoot more rays) than the number of pixels in the image and combine their results. One way to do this is to shoot multiple rays within a pixel and average their color values, for example. However, if the renderer is already tracing multiple rays per pixel anyway to obtain an anti-aliased image, then these rays can also be "distributed" among additional dimensions than just the pixel position to sample effects that could not be captured by a single ray. The important bit is that this comes without any additional cost on top of spatial upsampling, since you're already tracing those additional rays anyway. For example, if you shoot multiple rays within your pixel to compute an anti-aliased result, you can get motion blur absolutely for free if you also use a different time value for each ray (or soft shadows if they connect to a different point on the light source, or depth of field if they use a different starting point on the aperture, etc.).

Monte Carlo ray tracing is a term that is slightly ambiguous. In most cases, it refers to rendering techniques that solve the [rendering equation](http://www.dca.fee.unicamp.br/~leopini/DISCIPLINAS/IA725/ia725-12010/kajiya-SIG86-p143.pdf), introduced by Jim Kajiya in 1986, using Monte Carlo integration. Practically all modern rendering techniques that solve the rendering equation, such as path tracing, bidirectional path tracing, progressive photon mapping and VCM, can be classified as Monte Carlo ray tracing techniques. The idea of Monte Carlo integration is that we can compute the integral of any function by randomly choosing points in the integration domain and averaging the value of the function at these points. At a high level, in Monte Carlo ray tracing we can use this technique to integrate the amount of light arriving at the camera within a pixel in order to compute the pixel value. For example, a path tracer does this by randomly picking a point within the pixel to shoot the first ray, and then continues to randomly pick a direction to continue on the surface it lands on, and so forth. We could also randomly pick a position on the time axis if we want to do motion blur, or randomly pick a point on the aperture if wanted to do depth of field, or...

If this sounds very similar to distributed ray tracing, that's because it is! We can think of distributed ray tracing as a very informal description of a Monte Carlo algorithm that samples certain effects like soft shadows. Cook's paper lacks the mathematical framework to really reason about it properly, but you could certainly implement distributed ray tracing using a simple Monte Carlo renderer. It's worth noting that distributed ray tracing lacks any description of global illumination effects, which are naturally modeled in the rendering equation (it should be mentioned that Kajiya's paper was published two years after Cook's paper).

You can think of Monte Carlo ray tracing as being a more general version of distributed ray tracing. Monte Carlo ray tracing contains a general mathematical framework that allows you to handle practically any effect, including those mentioned in the distributed ray tracing paper.

These days, "distributed ray tracing" is not really a term that's used to refer to the original algorithm. More often you will hear it in conjunction with "distribution effects", which are simply effects such as motion blur, depth of field or soft shadows that cannot be handled with a single-sample raytracer.


---

### Answer by username_3 on 2015-08-04. Score: 6

In **Distributed ray tracing**, You stochastically sample many rays in directions which *may or may not* be preferred by the BRDF. Whereas, in **Monte Carlo ray tracing** or simply path tracing, you sample only one ray *in a direction preferred by the BRDF*. So, there are two obvious advantages Path Tracing would have:

* Computationally less expensive. Which means with the same computing power you have the freedom of calculating over more object hits as compared to distributed ray tracing where there are multiple rays.
* Less noise. Distributed ray tracing samples rays in directions that might not be preferred by the BRDF, therefore introducing unwanted artifacts.

And so, path tracing would give you better results.

> **Comments:**
> **username_4**: "Whereas, in Monte Carlo ray tracing or simply path tracing, you sample only one ray in a direction preferred by the BRDF." Per se, you don't know how the ray is selected. Naive approaches use random rays. Taking the BRDF into account is importance sampling and not inherent to Monte Carlo ray tracing or path tracing.  
> **username_5**: I believe this answer is completely false. You are free to multisample outgoing rays and weight their result when combining. You obtain the same truth than the russian roulette technique, but it's generally accepted that the former method is more expensive.  

---

### Answer by username_6 on 2019-12-06. Score: 0

Monte Carlo integration is an unbiased estimator for the synthesis of lights that contributed to a pixel. While we cannot exactly simulate the real world light path because the amount of rays is infinite, we can use Monte Carlo integration to estimate the expected value. That's why it is much more realistic: from the statistics aspect, the expectation of Monte Carlo ray tracing is the "real light paths".

You can read [my blog](https://hsuanwei.codes/2019/12/06/pt/#more) for more math details.


---

