CS 6620 - Fall 2017 - Ray Tracing for Graphics

Project 9 - Depth of Field

Kevin Parker


Final result

I rendered this with adaptive 12->256 samples. Render time was 14.7 seconds for a relatively non-grainy result.

This uncovers an interesting bug in scene.h: the representation of the SampleCount is stored in a uchar*, so the very few places where my algorithm chooses to use 256 samples causes it to clip and wrap back around to 0 in the bottom image. This is largely seen at the bright specular reflections of the lights on each sphere. Second, there is a visual glitch in the scene: the seam between the teapot's lid and side shows several pixels of the sphere behind it on the right-hand side. This second bug is much more visible in the next picture where the teapot's brick texture is missing.

Intermediate result

I encountered 2 main issues when implementing depth of field. The first was trivial: I just had some filepaths messed up, so textures weren't loading properly. Second, I needed to tune my adaptive sampling just a bit more so it'd produce a less-grainy result.

Extra cat-eye image

I felt a bit left out that everyone else's images were way blurry at the further dofs, so I decided to give something a try. Cat pupils seem to commonly have a very small aspect ratio (much lower than 1), so I experimented with a stretched ellipse of confusion in a 1:6 ratio. It gives a pretty interesting effect. This took about 25 seconds to render.


Machine Specs

MacBook Pro (15-inch, 2016)

2.7 GHz quad-core Intel Core i7 Skylake (6820HQ)

16 GB 2133 MHz LPDDR3 RAM