## Further Reading

In his seminal Sketchpad system, Sutherland (1963) was the first to use
projection matrices for computer graphics. Akenine-Möller, Haines, and Hoffman (2008) have provided a particularly well-written derivation of the
orthographic and perspective projection matrices. Other good references
for projections are Rogers and Adams’s *Mathematical Elements for
Computer Graphics* (1990), and Eberly’s book (2001) on game engine design.

An unusual projection method was used by Greene and Heckbert (1986) for generating images for Omnimax® theaters. The
`EnvironmentCamera` in this chapter is similar to the camera model
described by Musgrave (1992).

Potmesil and Chakravarty (1981, 1982, 1983) did early work on depth of field and motion blur in computer graphics. Cook and collaborators developed a more accurate model for these effects based on the thin lens model; this is the approach used for the depth of field calculations in Section 6.2.3 (Cook et al. 1984; Cook 1986). See Adams and Levoy (2007) for a broad analysis of the types of radiance measurements that can be taken with cameras that have non-pinhole apertures.

Kolb, Mitchell, and Hanrahan (1995) showed how to simulate complex camera
lens systems with ray tracing in order to model the imaging effects of real
cameras; the `RealisticCamera` in Section 6.4
is based on their approach. Steinert et al. (2011) improve a number of
details of this simulation, incorporating wavelength-dependent effects and
accounting for both diffraction and glare. Our approach for approximating
the exit pupil in Section 6.4.5 is similar to theirs. See
the books by Hecht (2002) and Smith (2007) for excellent introductions to
optics and lens systems.

Hullin et al. (2012) use polynomials to model the effect of lenses on rays passing through them; they are able to construct polynomials that approximate entire lens systems from polynomial approximations of individual lenses. This approach saves the computational expense of tracing rays through lenses, though for complex scenes, this cost is generally negligible in relation to the rest of rendering computations. Hanika and Dachsbacher (2014) improved the accuracy of this approach and showed how to combine the method with bidirectional path tracing.

Chen et al. (2009) describe the implementation of a fairly complete simulation of a digital camera, including the analog-to-digital conversion and noise in the measured pixel values inherent in this process.

### References

- Adams, A., and M. Levoy.
General linear cameras with finite aperture.
In
*Proceedings of the 2007 Eurographics Symposium on Rendering*, 121–26. - Akenine-Möller, T., E. Haines, and N. Hoffman. 2008.
*Real-Time Rendering*. Natick, MA: A. K. Peters. - Buhler, J., and D. Wexler. 2002.
A phenomenological model for Bokeh rendering.
*SIGGRAPH 2002 Sketch*. - Chen, J., K. Venkataraman, D. Bakin, B. Rodricks, R. Gravelle, P. Rao, and Y. Ni.
Digital camera imaging system simulation.
*IEEE Transactions on Electron Devices**56*(11), 2496–05. - Cook, R. L. 1986.
Stochastic sampling in computer graphics.
*ACM Transactions on Graphics**5*(1), 51–72. - Cook, R. L., T. Porter, and L. Carpenter. 1984.
Distributed ray tracing.
*Computer Graphics (SIGGRAPH ’84 Proceedings),**18,*137–45. - Eberly, D. H. 2001.
*3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics*. San Francisco: Morgan Kaufmann. - Glassner, A. 1999. An open and shut case.
*IEEE Computer Graphics and Applications 19*(3), 82–92. - Greene, N., and P. S. Heckbert. 1986.
Creating raster Omnimax images from multiple perspective views using
the elliptical weighted average filter.
*IEEE Computer Graphics and Applications**6*(6), 21–27. - Hanika, J., and C. Dachsbacher.
Efficient Monte Carlo rendering with realistic lenses.
*Computer Graphics Forum (Proceedings of Eurographics 2014)**33*(2), 323–32. - Hasinoff, S. W., and K. N. Kutulakos.
Light-efficient photography.
*IEEE Transactions on Pattern Analysis and Machine Intelligence**33*(11), 2203–14. - Hecht, E.
*Optics*. Reading, Massachusetts: Addison-Wesley. - Hullin, M. B., J. Hanika., and W. Heidrich.
Polynomial optics: a construction kit for efficient ray-tracing of lens systems.
*Computer Graphics Forum (Proceedings of the 2012 Eurographics Symposium on Rendering)**31*(4), 1375–83. - Jacobs, D. E., J. Baek, and M. Levoy.
Focal stack compositing for depth of field control.
*Stanford Computer Graphics Laboratory Technical Report*, CSTR 2012-1. - Kolb, C., D. Mitchell, and P. Hanrahan. 1995.
A realistic camera model for computer graphics.
*SIGGRAPH ’95 Conference Proceedings,*Annual Conference Series, 317–24. - Musgrave, K. 1992.
A panoramic virtual screen for ray tracing.
In D. Kirk (Ed.),
*Graphics Gems III,*288–94. San Diego: Academic Press. - Ng, R., M. Levoy, M. Brédif., G. Duval, M. Horowitz, and P. Hanrahan.
Light field photography with a hand-held plenoptic camera.
*Stanford University Computer Science Technical Report*, CSTR 2005-02. - Potmesil, M., and I. Chakravarty. 1981.
A lens and aperture camera model for synthetic image generation.
In
*Computer Graphics (Proceedings of SIGGRAPH ’81),*Volume 15, 297–305. - Potmesil, M., and I. Chakravarty. 1982.
Synthetic image generation with a lens and aperture camera model.
*ACM Transactions on Graphics**1*(2), 85–108. - Potmesil, M., and I. Chakravarty. 1983.
Modeling motion blur in computer-generated images.
In
*Computer Graphics (Proceedings of SIGGRAPH 83),*Volume 17, Detroit, Michigan, 389–99. - Rogers, D. F., and J. A. Adams. 1990.
*Mathematical Elements for Computer Graphics*. New York: McGraw-Hill. - Smith, W.
*Modern Optical Engineering*(4th ed.). New York: McGraw-Hill Professional. - Steinert, B., H. Dammertz., J. Hanika, and H. P. A. Lensch.
General spectral camera lens simulation.
*Computer Graphics Forum**30*(6), 1643–54. - Stephenson, I. 2007.
Improving motion blur: shutter efficiency and temporal sampling.
*Journal of Graphics Tools**12*(1), 9–15. - Sutherland, I. E. 1963.
Sketchpad—a man–machine graphical communication system.
In
*Proceedings of the Spring Joint Computer Conference (AFIPS),*328–46.