Wednesday, January 11, 2017

OpenCL path tracing tutorial 3: OpenGL viewport, interactive camera and defocus blur

Just a link to the source code on Github for now, I'll update this post with a more detailed description when I find a bit more time:

 Part 1 Setting up an OpenGL window

Part 2 Adding an interactive camera, depth of field and progressive rendering

Thanks to Erich Loftis and Brandon Miles for useful tips on improving the generation of random numbers in OpenCL to avoid the distracting artefacts (showing up as a sawtooth pattern) when using defocus blur (still not perfect but much better than before).

The next tutorial will cover rendering of triangles and triangle meshes.


erichlof said...

Thanks Sam! Can't wait to try this out on my machine! Thanks for the mention in your post. I am glad to contribute in some small way. Looking forward to the accompanying write-up for this post. Thanks again for all your hard work!

Jan Vlietinck said...

Interesting but I'm more interested in volume rendering path tracing.

Dave said...

When I run this on nVidia GTX 660 I get some noticeably lighter pixels, they form a grid pattern within the resultant image. Any idea how to get past that?

Sam Lapere said...

@ Jan Vlietinck: long time no see! How are things? Path tracing for medical volume rendering is something I want to look into quite soon-ish, Siemens "cinematic rendering" ( produces stunning images

Dave: The pattern is caused by a poor random number generator. Some people have contributed code improvements to make the RNG more "random" and less prone to artefacts, but it's still not as good as CUDA's quasi-random Sobol RNG.