Ray trace optics model based on synthetic PSFs
Illustrate a ray trace calculation uses space-varying and wavelength dependent point spread functions. Sometimes these are generated by Zemax models, but they cal also be based on a synthetic ray trace data set.
The synthetic point spreads generated here are bivariate normals that increase from center to periphery.
See also: rtSynthetic
(c) Imageval Consulting LLC, 2012
Contents
ieInit
Create a test scene
scene = sceneCreate('point array',256); % scene = sceneCreate('sweepfrequency',256); % An alternative scene = sceneSet(scene,'h fov',3); scene = sceneInterpolateW(scene,550:100:650); ieAddObject(scene); sceneWindow;

Build the optical image
oi = oiCreate('raytrace'); rtOptics = []; spreadLimits = [1 3]; xyRatio = 1.6; rtOptics = rtSynthetic(oi,rtOptics,spreadLimits,xyRatio); oi = oiSet(oi,'optics',rtOptics); rtPSFVisualize(rtOptics);

oi = oiCompute(oi,scene); oi = oiSet(oi,'name','Synthetic-RT-Increasing-Gaussian'); oiWindow(oi);
Geometric distortion ... Pre-computing PSFs...Setting up for scene pointarray Eccentricity bands: 0.000 (um) Eccentricity bands: 50.000 (um) Eccentricity bands: 100.000 (um) Eccentricity bands: 150.000 (um) PSF sample grid: 52 by 52 Done precomputing PSFs. Applying PSFs. 4 eccentricity bands Done applying PSFs.


Show the PSF
rtPlot(oi,'psf',550,0); rtPlot(oi,'psf',550,1);

