Path tracer depth of field

This is a small extension to the previous post. We will add a depth of field simulation to our path tracer project. I ran across this algorithm at this site. Below is a render of our path tracer with the depth of field extension. Essentially, we will define the distance to the focal plane and a blur radius. For each primary ray we find its intersection with the focal plane, $$\vec{p}$$, and jitter the ray origin by an amount, $$\vec{d}$$. We then define the new ray direction as $$\vec{r}=\vec{p}-\vec{d}$$. Read more [...]