Archive for October, 2010
Adventures in CUDA Path Tracing: Part 2
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:
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…
CUDA Tips
I’ve been doing a bit more GPU programming recently, here are some things I found when writing CUDA programs. This all refers to the CUDA compiler in the recent 3.2RC, and based on my experiences with GTX 275 hardware. In particular this advice may need to be tweaked for Fermi architecture GPUs, since I have yet to experiment with one.
