Lecture 13: Global Illumination and Path Tracing (92)

julialuo

As you perform these recursive calls, I feel like very similar computation might be performed over and over again. For example, here we have to calculate the radiance bouncing off of p'' at a specific angle to get the 2-bounce for p. If we want the 2-bounce for a point close to p, we would be calculating the radiance bouncing off of p'' yet again but at a slightly different angle. Do people tend to cache results (maybe with added blurring/slight randomness) for points/angles that are close to each other?

theandrewchan

Not sure, but I think it isn't really useful to cache results here because it's a randomized algorithm. The idea is that even if you need to compute the exitant radiance at the same point multiple times, it's better to sample with replacement the same number of times to get a better estimate.

As you perform these recursive calls, I feel like very similar computation might be performed over and over again. For example, here we have to calculate the radiance bouncing off of p'' at a specific angle to get the 2-bounce for p. If we want the 2-bounce for a point close to p, we would be calculating the radiance bouncing off of p'' yet again but at a slightly different angle. Do people tend to cache results (maybe with added blurring/slight randomness) for points/angles that are close to each other?

Not sure, but I think it isn't really useful to cache results here because it's a randomized algorithm. The idea is that even if you need to compute the exitant radiance at the same point multiple times, it's better to sample with replacement the same number of times to get a better estimate.