Shadows in Path Tracing


I have implemented offline Path Tracing(From Pete Shirley’s books) before and I never shoot shadow rays explicitly to calculate shadows as the shadow regions are already occluded and do not reach light and receive much of irradiance. Hence I always get free shadows.

But in Optix Path Tracer example, explicit shadow rays are shot. I tried it without shooting shadow rays and I still get a good convincing image though with much noise. So speaking physically, I believe(correct me if I’m wrong!) in Path tracing, shadow tracing is not a intuitive process as opposed to Ray Tracing where the only way of getting proper shadows is shooting shadow rays.

Can someone tell me if I’m right! Why there are explicit shadow rays in the path tracer!

Here’s the image I got without using shadow rays!


You are correct that pure path tracing can be implemented without explicit light sampling (next event estimation). You can use naive monte carlo sampling to sample the BSDF and you will eventually converge to the correct answer. ‘Eventually’ is the key word here.

Next event estimation is one of several key variance reduction techniques used to increase the rate of convergence of path tracers. Without it you can easily construct scenes which will effectively never converge. Direct light sampling is used by any full-featured path tracer and is one of the first thing you should do to improve your rendering times. After that you could look into stratified sampling (eg, jittered or QMC), importance sampling of your BSDFs, multiple importance sampling (to intelligently combine your BSDF and direct light sampling), etc.

Pete Shirley’s book Realistic Ray Tracing discusses direct light sampling, its implementation, and its benefits. PBRT is a great book for these issues as well.

Wow! That puts things in perspective! Thank you so much :)