Optics raytrace - ISET/isetcam GitHub Wiki


The ray trace implementation in ISETCam will be renamed, shift-varying. The true ray trace calculations are implemented in the ISET3d repository, which uses PBRT to compute the actual ray trace calculations given a scene and a lens.

The ISETCam computation is a half-measure. It assumes the user has extracted the geometric distortion and the relative illumination from a lens design program. The user must also extract a set of point spread functions (PSFs) as a function of wavelength and field height.

The ISETCam ray trace calculation applies the distortion, illumination, and point spread functions to a scene. In this way, the computed optical image is blurred by different amounts as a function of wavelength and field height. This is more elaborate than the usual shift-invariant calculation, which blurs by different amounts for wavelength but the same amount across the image. The jargon for this in optics is isoplanatic, and in the rest of the world it is shift-invariant.

We have extracted geometric distortion, relative illumination and PSFs from two lens design programs (Zemax at first, now also Code V). We have small scripts for each of those programs, that we share.

More to come here.