Simon's Graphics Blog

Work log for ideas and hobby projects.

Adventures in CUDA Path Tracing: Part 2

with 6 comments

This is really just teaser post for my next update.  I’ve not done much on traversal yet (hence the world of spheres), but I’ve made some progress on shading.  Here’s a screenshot of a pure CUDA renderer left for 20 seconds or so to get a nice smooth result:

CUDA Path Tracing

CUDA Path Tracing

This scene contains a few BSDFs:

  • Lambertian (the cyan, magenta and “wall” spheres)
  • Perfect specular (the mirror sphere)
  • Fresnel dielectric (the glass sphere)
  • Blinn microfacet (the “floor” sphere)

Everything uses importance sampling to reduce variance, which lets caustics converge quite quickly even on glossy surfaces like the one shown here. I’m preparing a post to go into more details of the rendering algorithm, which is a type of path tracing that I think works quite well on the GPU…

Written by Simon Brown

October 24th, 2010 at 6:21 pm

6 Responses to 'Adventures in CUDA Path Tracing: Part 2'

Subscribe to comments with RSS or TrackBack to 'Adventures in CUDA Path Tracing: Part 2'.

  1. Very nice! I’m interested to hear how you support multiple BSDFs efficiently in a CUDA path tracer. As far as I know even iRay only supports one (albeit very flexible) BSSRDF.

    Miles

    24 Oct 10 at 9:01 pm

  2. Looks good.

    I’ve used importance sampling on diffuse materials before (e.g. using cos as my pdf). I’d be quite interested in what strategies you used for the other bsdf’s.

    Thanks!
    -= Dave

    David Neubelt

    25 Oct 10 at 5:30 pm

  3. Actually, you can ignore my question it seems you covered it in another post.

    David Neubelt

    25 Oct 10 at 5:35 pm

  4. Are you handling non-symmetric scattering of light due to specular refraction ?

    D-POWER

    15 Apr 11 at 9:44 pm

  5. Unless I’m mistaken, this refractive asymmetry only occurs if either:
    * You mix particle-based methods and tracing methods
    * You have lights or sensors within different media

    This scene doesn’t have either issue, so I haven’t had to handle any asymmetry issues yet.

    Simon Brown

    16 Apr 11 at 11:27 am

  6. Ah! You’re right. I didn’t read the title of this post carefully, I thought it is about bidirectional path tracing. Anyway, I will be very glad if you write some notes about non symmetric scattering, Veach discussion about this subject didn’t convince me enough.

    Thank you for the great posts so far, they are very illuminating :) .

    D-POWER

    16 Apr 11 at 6:23 pm

Leave a Reply