Brute-force calculation of aperture diffraction in camera lenses

Emanuel Schrade, Johannes Hanika and Carsten Dachsbacher

Technical Report


Sensorrealistic image synthesis requires precise simulation of photographic lenses used in the imaging process. This is well understood using geometric optics, by tracing rays through the lens system. However, diffraction at the aperture results in interesting though subtle details as well as prominent glare streaks and starry point spread functions. Previous works in graphics have used analytical approximations for diffraction at the aperture, but these are not well suited for a combination with distortion caused by lens elements between the aperture and the sensor. Instead we propose to directly simulate Huygens’ principle and track optical path differences, which has been considered infeasible due to the high computational demand as Monte Carlo simulation exhibits high variance in interference computations due to negative contributions. To this end we present a simple Monte Carlo technique to compute camera point spread functions including diffraction effects as well as distortion of the diffracted light fields by lens elements before and after the aperture. The core of our technique is a ray tracing-based Monte Carlo integration which considers the optical path length to compute interference patterns on a hyperspectral frame buffer. To speed up computation, we approximate phase-dependent, spectral light field transformations by polynomial expansions. We cache transmittance and optical path lengths at the aperture plane, and from there trace rays for spherical waves emanating to the sensor. We show that our results are in accordance with the analytical results both for near and far field.