Real-Time Depth of Field Algorithm

There are many ways of creating depth of field effect during synthetic image creation. However, only few of them are applicable to hardware rendering. One commonly known method suggested first by Haeberli and Akeley [1] is using accumulation buffer and may produce real or near-real time results on Silicon Graphics workstations which support accumulation buffer in hardware. This method requires multiple rendering of the whole scene for every frame (each time with a viewpoint pseudo-randomly displaced on a surface of a hypothetical lens) and accumulating the results. The performance of this algorithm drops down with the increasing complexity of the scene and increasing blur required (because more samples are necessary). In fact linear increase of the diameter of the circle of confusion causes squared increase of the number of samples (and therefore the number of rendering passes).