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
scene = sceneCreate('point array',256); % scene = sceneCreate('sweepfrequency',256); % An alternative scene = sceneSet(scene,'h fov',4); scene = sceneInterpolateW(scene,550:100:650); ieAddObject(scene); sceneWindow;
oi = oiCreate; rtOptics = ; spreadLimits = [1 5]; xyRatio = 1.6; rtOptics = rtSynthetic(oi,rtOptics,spreadLimits,xyRatio); oi = oiSet(oi,'optics',rtOptics); oi = oiCompute(oi,scene); oi = oiSet(oi,'name','Synthetic-RT-Increasing-Gaussian'); ieAddObject(oi); oiWindow;
Scene distance (1.20 m) does not match ray trace assumption (0.01 m) Adjusting scene distance. Geometric distortion ... Pre-computing PSFs...Eccentricity bands: 0.000 (um) Eccentricity bands: 50.000 (um) Eccentricity bands: 100.000 (um) Eccentricity bands: 150.000 (um) PSF sample grid: 39 by 39 Done precomputing PSFs. Applying PSFs. 4 eccentricity bands Done applying PSFs.