ABSTRACT

This gem presents a fast and memory-efficient solver for the diffusion depth-offield (DDOF) technique introduced by Michael Kass et al. [2006] from Pixar. DDOF is a very high-quality depth-of-field effect that is used in motion pictures. It essentially works by simulating a heat diffusion equation to compute depth-offield blurs. This leads to a situation that requires solving systems of linear equations. Kass et al. present an algorithm for solving these systems of equations, but the memory footprint of their solver can be prohibitively large at high display resolutions. The solver described in this gem greatly reduces the memory footprint and running time of the original DDOF solver by skipping the construction of intermediate matrices and the execution of associated rendering passes. In contrast to the solver presented by Shishkovtsov and Rege [2010], which uses DirectX 11, compute shaders, and a technique called parallel cyclic reduction [Zhang et al. 2010], this gem utilizes a solver that runs only in pixel shaders and can be implemented on DirectX 9 and DirectX 10 class hardware as well.