منابع، نمایه توابع OpenGL و نمایه موضوعی
منابع، نمایهٔ توابع OpenGL و نمایهٔ موضوعی
این مقاله بخش مرجع پایانی کتاب را پوشش میدهد. برای آنکه ارجاعهای کتابشناختی، نام نویسندگان، عنوان آثار، نام تابعهای API و شمارهصفحههای نمایه دقیقاً قابل جستوجو و استناد بمانند، مدخلهای کتابشناختی و رشتههای کلیدی نمایه عیناً حفظ شدهاند؛ عنوانها و توضیحهای ساختاری فارسی شدهاند. این انتخاب از تغییر معنای نام خاص، عنوان مقاله، signature تابع یا کلید نمایه جلوگیری میکند.
منابع
فهرست کامل منابع کتاب در ادامه بدون حذف هیچ مدخل آمده است.
RE FE RE NCES
Ado85 Adobe Systems Incorporated, PostScript Language Reference Manual,
Addison-Wesley, Reading, MA, 1985.
Ake88 Akeley, K., and T. Jermoluk, “High Performance Polygon Rendering,”
Computer Graphics, 22(4), 239–246, 1988.
Ake93 Akeley, K., “Reality Engine Graphics,” Computer Graphics, 109–116,
1993.
Ang90 Angel, E., Computer Graphics, Addison-Wesley, Reading, MA, 1990.
Ang08 Angel, E., OpenGL, A Primer, Third Edition, Addison-Wesley, Reading,
MA, 2008.
ANSI85 American National Standards Institute (ANSI), American National Stan-
dard for Information Processing Systems—Computer Graphics—Graphical
Kernel System (GKS) Functional Description, ANSI, X3.124-1985, ANSI,
New York, 1985.
ANSI88 American National Standards Institute (ANSI), American National Stan-
dard for Information Processing Systems—Programmer’s Hierarchical In-
teractive Graphics System (PHIGS), ANSI, X3.144-1988, ANSI, New York,
1988.
App68 Appel, A., “Some Techniques for Shading Machine Renderings of Solids,”
Spring Joint Computer Conference, 37–45, 1968.
Arn96 Arnold, K., and J. Gosling, The Java Programming Language, Addison-
Wesley, Reading, MA, 1996.
Ban83 Banchoff, T., and J. Werner, Linear Algebra Through Geometry, Springer-
Verlag, New York, 1983.
Bar93 Barnsley, M., Fractals Everywhere, Second Edition, Academic Press, San
Diego, CA, 1993.
Bar83 Barsky, B.A., and C. Beatty, “Local Control of Bias and Tension in Beta-
Splines,” ACM Transactions on Graphics, 2(2), 109–134, 1983.
Bar87 Bartels, R.H., C. Beatty, and B.A. Barsky, An Introduction to Splines for
Use in Computer Graphics and Geometric Modeling, Morgan Kaufmann,
Los Altos, CA, 1987.
Bli76 Blinn, J.F., and M.E. Newell, “Texture and Reflection in Computer
Generated Images,” CACM, 19(10), 542–547, 1976.
699
700 References
Bli77 Blinn, J.F., “Models of Light Reflection for Computer-Synthesized Pic-
tures,” Computer Graphics, 11(2), 192–198, 1977.
Bow83 Bowyer, A., and J. Woodwark, A Programmer’s Geometry, Butterworth,
London, 1983.
Bre65 Bresenham, J.E., “Algorithm for Computer Control of a Digital Plotter,”
IBM Systems Journal, January, 25–30, 1965.
Bre87 Bresenham, J.E., “Ambiguities in Incremental Line Rastering,” IEEE
Computer Graphics and Applications, May, 31–43, 1987.
Car78 Carlbom, I., and J. Paciorek, “Planar Geometric Projection and Viewing
Transformations,” Computing Surveys, 10(4), 465–502, 1978.
Cas96 Castleman, K.C., Digital Image Processing, Prentice-Hall, Englewood
Cliffs, NJ, 1996.
Cat78a Catmull, E., “A Hidden-Surface Algorithm with Antialiasing,” Computer
Graphics, 12(3), 6–11, 1978.
Cat78b Catmull, E., and J. Clark, “Recursively Generated B-Spline Surfaces on
Arbitrary Topological Meshes,” Proceedings of Computer-Aided Design,
10, 350-355, 1978.
Cha98 Chan, P., and R. Lee, The Java Class Libraries: Java.Applet, Java.Awt,
Java.Beans (Vol. 2), Addison-Wesley, Reading, MA, 1998.
Che95 Chen, S.E., “Quicktime VR: An Image-Based Approach to Virtual Envi-
ronment Navigation,” Computer Graphics, 29–38, 1995.
Che00 Chen, K.L. et al., “Building and Using a Scalable Display Wall System,”
IEEE Computer Graphics and Applications, 20(4), 29–37, 2000.
Cla82 Clark, J.E., “The Geometry Engine: A VLSI Geometry System for Graph-
ics,” Computer Graphics, 16, 127–133, 1982.
Coh85 Cohen, M.F., and D.P. Greenberg, “The Hemi-Cube: A Radiosity So-
lution for Complex Environments,” Computer Graphics, 19(3), 31–40,
1985.
Coh88 Cohen, M.F., S.E. Chen, J.R. Wallace, and D.P. Greenberg, “A Progressive
Refinement Approach to Fast Radiosity Image Generation,” Computer
Graphics, 22(4), 75–84, 1988.
Coh93 Cohen, M.F., and J.R. Wallace, Radiosity and Realistic Image Synthesis,
Academic Press Professional, Boston, MA, 1993.
Coo82 Cook, R.L., and K.E. Torrance, “A Reflectance Model for Computer
Graphics,” ACM Transactions on Graphics, 1(1), 7–24, 1982.
Coo87 Cook, R.L., L. Carpenter, and E. Catmull, “The Reyes Image Rendering
Architecture,” Computer Graphics, 21(4), 95–102, July 1987.
Cro81 Crow, F.C., “A Comparison of Antialiasing Techniques,” IEEE Computer
Graphics and Applications, 1(1), 40–48, 1981.
Cro97 Crossno, P.J., and E. Angel, “Isosurface Extraction Using Particle Sys-
tems,” IEEE Visualization, 1997.
References 701
Deb96 Debevec, P.E., C.J. Taylor, and J. Malik, “Modeling and Rendering
Architecture from Photographs: A Hybrid Geometry- and Image-Based
Approach,” Computer Graphics, 11–20, 1996.
deB08 deBerg, M., C. Otfried, M. van Kreveld, and M. Overmars, Computa-
tional Geometry, Third Edition, Springer-Verlag, Berlin Heidelberg, 2008.
DeR88 DeRose, T.D., “A Coordinate-Free Approach to Geometric Program-
ming,” SIGGRAPH Course Notes, SIGGRAPH, 1988.
DeR89 DeRose, T.D., “A Coordinate-Free Approach to Geometric Program-
ming,” in Theory and Practice of Geometric Modeling, W. Strasser and
H.P. Seidel (Eds.), Springer-Verlag, Berlin, 1989.
Dre88 Drebin, R.A., L. Carpenter, and P. Hanrahan, “Volume Rendering,”
Computer Graphics, 22(4), 65–74, 1988.
Ebe01 Eberly, D.H., 3D Game Engine Design, Morgan Kaufmann, San Francisco,
2001.
Ebe02 Ebert, D., F.K. Musgrave, D. Peachey, K. Perlin, and S. Worley, Texturing
and Modeling, A Procedural Approach, Third Edition, Morgan Kaufman,
San Francisco, 2002.
End84 Enderle, G., K. Kansy, and G. Pfaff, Computer Graphics Programming:
GKS—The Graphics Standard, Springer-Verlag, Berlin, 1984.
Far88 Farin, G., Curves and Surfaces for Computer Aided Geometric Design,
Academic Press, New York, 1988.
Fau80 Faux, I.D., and M.J. Pratt, Computational Geometry for Design and
Manufacturing, Halsted, Chichester, England, 1980.
Fern03 Fernando, R., and M.J. Kilgard, The Cg Tutorial: The Definitive Guide to
Programmable Real-Time Graphics, Addison-Wesley, Reading, MA, 2003.
Fern04 Fernando, R., GPU Gems: Programming Techniques, Tips, and Tricks for
Real-Time Graphics, Addison-Wesley, Reading, MA, 2004.
Fol90 Foley, J.D., A. van Dam, S.K. Feiner, and J.F. Hughes, Computer Graphics,
Second Edition, Addison-Wesley, Reading, MA, 1990 (C Version 1996).
Fol94 Foley, J.D., A. van Dam, S.K. Feiner, J.F. Hughes, and R. Phillips, Intro-
duction to Computer Graphics, Addison-Wesley, Reading, MA, 1994.
Fos97 Fosner, R., OpenGL Programming for Windows 95 and Windows NT,
Addison-Wesley, Reading, MA, 1997.
Fou82 Fournier, A., D. Fussell, and L. Carpenter, “Computer Rendering of
Stochastic Models,” CACM, 25(6), 371–384, 1982.
Fuc77 Fuchs, H., J. Duran, and B. Johnson, “A System for Automatic Acquisi-
tion of Three-Dimensional Data,” Proceedings of the 1977 NCC, AFIPS
Press, 49–53, Montvale, NJ, 1977.
Fuc80 Fuchs, H., Z.M. Kedem, and B.F. Naylor, “On Visible Surface Generation
by A Priori Tree Structures,” SIGGRAPH 80, 124–133, 1980.
Gal95 Gallagar, R.S., Computer Visualization: Graphics Techniques for Scientific
and Engineering Analysis, CRC Press, Boca Raton, FL, 1995.
702 References
Gla89 Glassner, A.S. (Ed.), An Introduction to Ray Tracing, Academic Press, New
York, 1989.
Gla95 Glassner, A.S., Principles of Digital Image Synthesis, Morgan Kaufmann,
San Francisco, 1995.
Gon08 Gonzalez, R., and R.E. Woods, Digital Image Processing, Third Edition,
Addison-Wesley, Reading, MA, 2008.
Gor84 Goral, C.M., K.E. Torrance, D.P. Greenberg, and B. Battaile, “Modeling
the Interaction of Light Between Diffuse Surfaces,” Computer Graphics
(SIGGRAPH 84), 18(3), 213–222, 1984.
Gor96 Gortler, S.J., R. Grzeszczuk, R. Szeliski, and M.F. Cohen, “The Lumi-
graph,” Computer Graphics, 43–54, 1996.
Gou71 Gouraud, H., “Computer Display of Curved Surfaces,” IEEE Trans.
Computers, C-20, 623–628, 1971.
Gra90 Graphics Gems I, Glassner, A.S. (Ed.), Academic Press, San Diego, CA,
1990.
Gra91 Graphics Gems II, Arvo, J. (Ed.), Academic Press, San Diego, CA, 1991.
Gra92 Graphics Gems III, Kirk, D. (Ed.), Academic Press, San Diego, CA, 1992.
Gra94 Graphics Gems IV , Heckbert, P. (Ed.), Academic Press, San Diego, CA,
1994.
Gra95 Graphics Gems V , Paeth, A. (Ed.), Academic Press, San Diego, CA, 1995.
Gra03 Gray, K., The Microsoft DirectX 9 Programmable Graphics Pipeline, Mi-
crosoft Press, 2003.
Gre88 Greengard, L.F., The Rapid Evolution of Potential Fields in Particle Systems,
MIT Press, Cambridge, MA, 1988.
Hal89 Hall, R., Illumination and Color in Computer Generated Imagery,
Springer-Verlag, New York, 1989.
Har96 Hartman, J., and J. Wernecke, The VRML 2.0 Handbook, Addison-
Wesley, Reading, MA, 1996.
Hea11 Hearn, D., M.P. Baker, and W.R. Carithers, Computer Graphics, Fourth
Edition, Prentice-Hall, Englewood Cliffs, NJ, 2011.
Hec84 Heckbert, P.S., and P. Hanrahan, “Beam Tracing Polygonal Objects,”
Computer Graphics, 18(3), 119–127, 1984.
Hec86 Heckbert, P.S., “Survey of Texture Mapping,” IEEE Computer Graphics
and Applications, 6(11), 56–67, 1986.
Her79 Herman, G.T., and H.K. Liu, “Three-Dimensional Display of Human
Organs from Computed Tomograms,” Computer Graphics and Image
Processing, 9, 1–21, 1979.
Her00 Hereld, M., I.R. Judson, and R.L. Stevens, “Tutorial: Introduction
to Building Projection-Based Tiled Display Systems,” IEEE Computer
Graphics and Applications, 20(4), 22–26, 2000.
References 703
Hil07 Hill, F.S., Jr., and S.M. Kelley,, Computer Graphics, Third Edition, Pren-
tice Hall, Upper Saddle River, NJ, 2007.
Hop83 Hopgood, F.R.A., D.A. Duce, J.A. Gallop, and D.C. Sutcliffe, Introduction
to the Graphical Kernel System: GKS, Academic Press, London, 1983.
Hop91 Hopgood, F.R.A., and D.A. Duce, A Primer for PHIGS, John Wiley &
Sons, Chichester, England, 1991.
Hum01 Humphreys, G., M. Elridge, I. Buck, G. Stoll, M. Everett, and P. Han-
rahan, “WireGL: A Scalable Graphics System for Clusters,” SIGGRAPH
2001.
ISO88 International Standards Organization, International Standard Informa-
tion Processing Systems—Computer Graphics—Graphical Kernel System
for Three Dimensions (GKS-3D), ISO Document Number 8805:1988(E),
American National Standards Institute, New York, 1988.
Jar76 Jarvis, J.F., C.N. Judice, and W.H. Ninke, “A Survey of Techniques for
the Image Display of Continuous Tone Pictures on Bilevel Displays,”
Computer Graphics and Image Processing, 5(1), 13–40, 1976.
Jen01 Jensen, H.W., “Realistic Image Synthesis Using Photon Mapping,” A K
Peters, 2001.
Joy88 Joy, K.I., C.W. Grant, N.L. Max, and L. Hatfield, Computer Graphics:
Image Synthesis, Computer Society Press, Washington, DC, 1988.
Kaj86 Kajiya, J.T., “The Rendering Equation,” Computer Graphics, 20(4), 143–
150, 1986.
Kel97 Keller, H., “Instant Randiosity,” Computer Graphics, 49–56, 1997.
Kil94a Kilgard, M.J., “OpenGL and X, Part 3: Integrated OpenGL with Motif,”
The X Journal, SIGS Publications, July/August 1994.
Kil94b Kilgard, M.J., “An OpenGL Toolkit,” The X Journal, SIGS Publications,
November/December 1994.
Kil96 Kilgard, M.J., OpenGL Programming for the X Windows System, Addison-
Wesley, Reading, MA, 1996.
Knu87 Knuth, D.E., “Digital Halftones by Dot Diffusion,” ACM Transactions on
Graphics, 6(40), 245–273, 1987.
Kov97 Kovatch, P.J., The Awesome Power of Direct3D/DirectX, Manning Publi-
cations Company, Greenwich, CT, 1997.
Kue08 Kuehhne, R.P., and J.D. Sullivan, OpenGL Programming on Mac OS X,
Addison-Wesley, Boston, MA, 2008.
Kui99 Kuipers, J.B., Quaternions and Rotation Sequences, Princeton University
Press, Princeton, NJ, 1999.
Las87 Lasseter, J., “Principles of Traditional Animation Applied to 3D Com-
puter Animation,” Computer Graphics, 21(4), 33–44, 1987.
Lev88 Levoy, M., “Display of Surface from Volume Data,” IEEE Computer
Graphics and Applications, 8(3), 29–37, 1988.
704 References
Lev96 Levoy, M., and P. Hanrahan, “Light Field Rendering,” Computer Graph-
ics, 31–42, 1996.
Lia84 Liang, Y., and B. Barsky, “A New Concept and Method for Line Clipping,”
ACM Transactions on Graphics, 3(1), 1–22, 1984.
Lin68 Lindenmayer, A., “Mathematical Models for Cellular Interactions in
Biology,” Journal of Theoretical Biology, 18, 280–315, 1968.
Lin01 Linholm, E., M.J. Kilgard, and H. Morelton, “A User-Programmable
Vertex Engine,” SIGGRAPH, 2001.
Lor87 Lorensen, W.E., and H.E. Cline, “Marching Cubes: A High Resolution
3D Surface Construction Algorithm,” Computer Graphics, 21(4), 163–
169, 1987.
Ma94 Ma, K.L., J. Painter, C. Hansen, and M. Krogh, “Parallel Volume Ren-
dering Using Binary-Swap Compositing,” IEEE Computer Graphics and
Applications, 14(4), 59–68, 1994.
Mag85 Magnenat-Thalmann, N., and D. Thalmann, Computer Animation: The-
ory and Practice, Springer-Verlag, Tokyo, 1985.
Man82 Mandelbrot, B., The Fractal Geometry of Nature, Freeman Press, New
York, 1982.
Mat95 The MathWorks, Student Edition of MatLab Version 4 Users Guide,
Prentice-Hall, Englewood Cliffs, NJ, 1995.
Mau06 Maurina, E., The Game Programmer’s Guide to Torque, A K Peters, 2006.
Max51 Maxwell, E.A., General Homogeneous Coordinates in Space of Three
Dimensions, Cambridge University Press, Cambridge, England, 1951.
Mia99 Miamo, J., Compressed Image File Formats, ACM Press, New York, 1999.
Mol92 Molnar, S., J. Eyles, and J. Poulton, “PixelFlow: High-Speed Rendering
Using Image Composition,” Computer Graphics, 26(2), 231–240, 1992.
Mol94 Molnar, S., M. Cox, D. Ellsworth, and H. Fuchs, “A Sorting Classification
of Parallel Rendering,” IEEE Computer Graphics and Applications, 26(2),
231–240, 1994.
Mol02 Möller, T., and E. Haines, Real-Time Rendering, Second, Edition, A K
Peters, 2002.
Mon97 Montrym, J., D. Baum, D. Dignam, and C. Migdal, “InfiniteReality: A
Real-Time Graphics System,” Computer Graphics, 293–392, 1997.
Mur94 Murray, J.D., and W. Van Ryper, Encyclopedia of Graphics File Formats,
O’Reilly and Associates, Sebastopol, CA, 1994.
New73 Newman, W.M., and R.F. Sproull, Principles of Interactive Computer
Graphics, McGraw-Hill, New York, 1973.
Ngu07 Nguyen, H. (Ed), GPU Gems 3, Addison-Wesley Professional, Boston,
MA, 2007.
References 705
Nie97 Nielson, G.M., H. Hagen, and H. Muller, Scientific Visualization:
Overviews, Methodologies, and Techniques, IEEE Computer Society, Pis-
cataway, NJ, 1997.
Ope05 OpenGL Architecture Review Board, OpenGL Reference Manual, Fourth
Edition, Addison-Wesley, Reading, MA, 2005.
OSF89 Open Software Foundation, OSF/Motif Style Guide, Prentice-Hall, Engle-
wood Cliffs, NJ, 1989.
Ost94 Osterhaut, J., Tcl and the Tk Toolkit, Addison-Wesley, Reading, MA, 1994.
Pap81 Papert, S., LOGO: A Language for Learning, Creative Computer Press,
Middletown, NJ, 1981.
Pav95 Pavlidis, T., Interactive Computer Graphics in X, PWS Publishing, Boston,
MA, 1995.
Per85 Perlin, K. “An Image Synthesizer,” Computer Graphics, 19(3), 287–297,
1985.
Per89 Perlin, K., and E. Hoffert, “Hypertexture,” Computer Graphics, 23(3),
253–262, 1989.
Per02 Perlon, K., “Improved Noise,” Computer Graphics, 35(3), 2002.
Pei88 Peitgen, H.O., and S. Saupe (Eds.), The Science of Fractal Images,
Springer-Verlag, New York, 1988.
Pha05 Pharr, M., and R. Fernando (Eds.), GPU Gems 2: Programming Tech-
niques for High-Performance Graphics and General-Purpose Computation,
Addison-Wesley Professional, Boston, MA, 2005.
PHI89 PHIGS+ Committee, “PHIGS+ Functional Description, Revision 3.0,”
Computer Graphics, 22(3), 125–218, July 1989.
Pho75 Phong, B.T., “Illumination for Computer Generated Scenes,” Communi-
cations of the ACM, 18(6), 311–317, 1975.
Por84 Porter, T., and T. Duff, “Compositing Digital Images,” Computer Graph-
ics, 18(3), 253–259, 1984.
Pra78 Pratt, W.K., Digital Image Processing, Wiley, New York, 1978.
Pru90 Prusinkiewicz, P., and A. Lindenmayer, The Algorithmic Beauty of Plants,
Springer-Verlag, Berlin, 1990.
Ree83 Reeves, W.T., “Particle Systems—A Technique for Modeling a Class of
Fuzzy Objects,” Computer Graphics, 17(3), 359–376, 1983.
Rei05 Reinhard, Erik, G. Ward, S. Pattanaik, and P. Debevec, High Dynamic
Range Imaging: Acquisition, Display, and Image-Based Lighting, Morgan
Kaufmann, San Francisco, 2005.
Rey87 Reynolds, C.W., “Flocks, Herds, and Schools: A Distributed Behavioral
Model,” Computer Graphics, 21(4), 25–34, 1987.
Rie81 Riesenfeld, R.F., “Homogeneous Coordinates and Projective Planes in
Computer Graphics,” IEEE Computer Graphics and Applications, 1(1),
50–56, 1981.
706 References
Rob63 Roberts, L.G., “Homogenous Matrix Representation and Manipulation
of N-Dimensional Constructs,” MS-1505. MIT Lincoln Laboratory,
Lexington, MA, 1963.
Rog98 Rogers, D.F., Procedural Elements for Computer Graphics, Second Edition,
McGraw-Hill, New York, 1998.
Rog90 Rogers, D.F., and J.A. Adams, Mathematical Elements for Computer
Graphics, McGraw-Hill, New York, 1990.
Rog00 Rogers, D.F., An Introduction to NURBS: With Historical Perspective,
Morgan Kaufmann, San Francisco, CA, 2000.
Ros09 Rost, R.J., B. Licea-Kane, D. Ginsberg, and J.M. Kessenich, OpenGL
Shading Language, Third Edition, Addison-Wesley, Reading, MA, 2009.
Sch88 Schiefler, R.W., J. Gettys, and R. Newman, X Window System, Digital
Press, Woburn, MA, 1988.
Schr06 Schroeder, W., K. Martin, and B. Lorensen, The Visualization Toolkit:
An Object-Oriented Approach to 3D Graphics, Fourth Edition, Kitware,
Clifton Park, NY, 2006.
Sei96 Seitz, S.M., and C.R. Dyer, “View Morphing,” Computer Graphics, 21–30,
1996.
Seg92 Segal, M., and K. Akeley, The OpenGL Graphics System: A Specification,
Version 1.0, Silicon Graphics, Mountain View, CA, 1992.
Shi03 Shirley, P., R.K. Morley, and K. Morley, Realistic Ray Tracing, Second
Edition, A K Peters, 2003.
Shi05 Shirley, P., M. Ashikhmin, M. Gleicher, S. Marschner, E. Reinhard, K.
Sung, W. Thompson, and P. Willemsen, Fundamentals of Computer
Graphics, Second Edition, A K Peters, 2005.
Sho85 Shoemake, K., “Animating Rotation with Quaternion Curves,” Computer
Graphics, 19(3), 245–254, 1985.
Shr10 Shreiner, D., OpenGL Programming Guide, Seventh Edition, Addison-
Wesley, Reading, MA, 2010.
Sie81 Siegel, R., and J. Howell, Thermal Radiation Heat Transfer, Hemisphere,
Washington, DC, 1981.
Sil89 Sillion, F.X., and C. Puech, “A General Two-Pass Method Integrating
Specular and Diffuse Reflection,” Computer Graphics, 22(3), 335–344,
1989.
Smi84 Smith, A.R., “Plants, Fractals and Formal Languages,” Computer Graph-
ics, 18(3), 1–10, 1984.
Sta03 Stam, J., and C. Loop, “Quad/Triangle Subdivision,” Computer Graphics
Forum, 22, 1–7, 2003.
Str93 Strang, G., Introduction to Linear Alegbra, Wellesley-Cambridge Press,
Wellesley, MA, 1993.
Suf07 Suffern, K., Ray Tracing from the Ground Up, A K Peters, 2007.
References 707
Sut63 Sutherland, I.E., Sketchpad, A Man–Machine Graphical Communication
System, SJCC, 329, Spartan Books, Baltimore, MD, 1963.
Sut74a Sutherland, I.E., and G.W. Hodgeman, “Reentrant Polygon Clipping,”
Communications of the ACM, 17, 32–42, 1974.
Sut74b Sutherland, I.E., R.F. Sproull, and R.A. Schumacker, “A Characterization
of Ten Hidden-Surface Algorithms,” Computer Surveys, 6(1), 1–55, 1974.
Swo00 Swoizral, H., K. Rushforth, and M. Deering, The Java 3D API Specifica-
tion, Second Edition, Addison-Wesley, Reading, MA, 2000.
Tor67 Torrance, K.E., and E.M. Sparrow, “Theory for Off–Specular Reflection
from Roughened Surfaces,” Journal of the Optical Society of America,
57(9), 1105–1114, 1967.
Tor96 Torborg, J., and J.T. Kajiya, “Talisman: Commodity Realtime 3D Graph-
ics for the PC,” Computer Graphics, 353–363, 1996.
Tuf83 Tufte, E.R., The Visual Display of Quantitative Information, Graphics
Press, Cheshire, CT, 1983.
Tuf90 Tufte, E.R., Envisioning Information, Graphics Press, Cheshire, CT, 1990.
Tuf97 Tufte, E.R., Visual Explanations, Graphics Press, Cheshire, CT, 1997.
Ups89 Upstill, S., The RenderMan Companion: A Programmer’s Guide to Realistic
Computer Graphics, Addison-Wesley, Reading, MA, 1989.
Van94 Van Gelder, A., and J. Wilhelms, “Topological Considerations in Isosur-
face Generation,” ACM Transactions on Graphics, 13(4), 337–375, 1994.
War94 Ward, G., “The RADIANCE Lighting Simulation and Rendering System,”
Computer Graphics, July 1994.
War03 Warren, J., and H. Weimer, Subdivision Methods for Geometric Design,
Morgan Kaufmann, San Francisco, 2003.
War04 Warren, J., and S. Schaefer, “A Factored Approach to Subdivision Sur-
faces,” IEEE Computer Graphics and Applications, 24(3), 74-81, 2004.
Wat92 Watt, A., and M. Watt, Advanced Animation and Rendering Techniques,
Addison-Wesley, Wokingham, England, 1992.
Wat98 Watt, A., and F. Policarpo, The Computer Image, Addison-Wesley, Wok-
ingham, England, 1998.
Wat00 Watt, A., 3D Computer Graphics, Third Edition, Addison-Wesley, Wok-
ingham, England, 2000.
Wat02 Watkins, A., The Maya 4 Handbook, Charles River Media, Hingham, MA,
2002.
Wer94 Wernecke, J., The Inventor Mentor, Addison-Wesley, Reading, MA, 1994.
Wes90 Westover, L., “Footprint Evaluation for Volume Rendering,” Computer
Graphics, 24(4), 367–376, 1990.
Whi80 Whitted, T., “An Improved Illumination Model for Shaded Display,”
Communications of ACM, 23(6), 343–348, 1980.
708 References
Wit94a Witkin, A.P., and P.S. Heckbert, “Using Particles to Sample and Control
Implicit Surfaces,” Computer Graphics, 28(3), 269–277, 1994.
Wit94b Witkin, A. (Ed.), An Introduction to Physically Based Modeling, Course
Notes, SIGGRAPH 94, 1994.
Wol91 Wolfram, S., Mathematica, Addison-Wesley, Reading, MA, 1991.
Wri11 Wright, R.S., Jr., H. Haemel, G. Sellers, and B. Lipchak, OpenGL Super-
bible, Fifth Edition, Addison-Wesley, Boston, MA, 2011.
Wys82 Wyszecki, G., and W.S. Stiles, Color Science, Wiley, New York, 1982.
نمایهٔ توابع OpenGL
این نمایه محلهای ظاهرشدن تابعهای OpenGL مورد استفاده در متن را نشان میدهد. شرح کامل تابعها در OpenGL Programming Guide و مستندات GLUT آمده و تابعها بر اساس عضویت در کتابخانههای GL یا GLUT گروهبندی شدهاند. تابعهایی با چند فرم، مانند glUniform، یکبار فهرست شدهاند؛ ضمیمه D خلاصهٔ این تابعها را ارائه میکند.
OPEN GL FU NCTI ON I NDEX
This index includes the appearances of those OpenGL functions that are used in
the text. A complete description of OpenGL functions is contained in the OpenGL
Programming Guide and the GLUT documentation. The functions are grouped
according to their inclusion in the GL or GLUT libraries. Functions with multiple
forms, such as glUniform, are listed once. Appendix D contains a synopsis of these
functions.
GL Functions glDrawBuffer, 693 glLineWidth, 66
glAttachShader, 695 glEnable, 97, 241, 366, 406, 692 glLinkProgram, 695
glBindBuffer, 84, 689 glEnableVertexAttribArray, 87, 690 glLogicOp, 366, 694
glBindTexture, 376, 693 glewInit, 687 glNormal, 274
glBindVertexArray, 83–84, 689 glFlush, 85, 688 glPixelStore, 694
glBlendFunc, 406, 693 glGenBuffers, 84, 689 glPointSize, 73, 692
glBufferData, 84, 689 glGenerateMipmap, 383 glPolygonMode, 59, 692
glBufferSubData, 96, 689 glGenTextures, 375, 693 glPolygonOffset, 246, 692
glClear, 71, 97, 241 glGenVertexArrays, 83–84, 689 glReadPixels, 694
glClearColor, 71, 73, 692 glGetAttribLocation, 695 glShaderSource, 695
glColor, 66 glGetAttributeLocation, 87 glStipple, 66
glCompileShader, 695 glGetBooleanv, 694 glTexImage2D, 376, 390, 392, 693
glCreateProgram, 694 glGetDoublev, 694 glTexParameter, 693
glCreateShader, 695 glGetFloatv, 586, 694 glTexParameteri, 381–383
glDeleteTextures, 376, 693 glGetIntegerv, 350, 694 glUniform1234, 696
glDepthFunc, 337 glGetPointerv, 694 glUniformif, 179
glDepthMask, 407, 692 glGetProgram, 696 glUniformMatrix, 696
glDisable, 410, 692 glGetShaderiv, 696 glUseProgram, 695
glDrawArrays, 61, 84–85, 427, 432, glGetUniformLocation, 179, 696 glVertexAttribPointer, 87
447, 690 glGetUniformMatrix4fv, 179
709
710 OpenGL Function Index
GLUT Functions glutGetModifiers, 103 glutMotionFunc, 691
glutAddMenuEntry, 107, 691 glutIdleFunc, 103, 691 glutMouseFunc, 99, 690
glutAddSubMenu, 691 glutInit, 79, 687 glutPassiveMotionFunc, 692
glutAttachMenu, 107, 691 glutInitDisplayMode, 79, 97, 105, glutPostDisplay, 106
glutContextProfile, 689 410, 687 glutPostRedisplay, 101, 104, 688
glutContextVersion, 688 glutInitWindowPosition, 79, 688 glutReshapeFunc, 690
glutCreateMenu, 106, 691 glutInitWindowSize, 79–80, 687 glutSetMenu, 691
glutCreateWindow, 79, 106, 687 glutKeyboardFunc, 102, 690 glutSetWindow, 106, 688
glutDisplayFunc, 82, 106, 688 glutKeyboardUpFunc, 102 glutSwapBuffers, 105, 688
glutFlush, 105 glutMainLoop, 81, 98, 688 glutTimerFunc, 691
glutGet, 694
نمایهٔ موضوعی
مدخلهای نمایهٔ موضوعی به همان رشتهٔ اصلی کتاب نگه داشته شدهاند تا cross-referenceها و شمارهصفحهها دقیق بمانند. اصطلاحهای فنیِ این نمایه همان واژگانیاند که در ترجمهٔ فصلها نیز غالباً در کنار معادل فارسی حفظ شدهاند.
SU BJ E CT I NDEX
A overview, 342–344 applications, 2
absolute input device positioning, in rendering, 413–421 design, 3
11–12 in texture generation, 371 display of information, 2–3
abstract data types (ADTs) alpha blending, 404 lighting models in, 286–289
geometric, 119–120 alpha channels simulation and animation, 3–4
overview, 119 antialiasing, 407–409 user interfaces, 4–5
accepted primitives in clipping, 310 compositing, 404 approximating spheres
addition RGBA system, 70 fans and strips, 60–62
affine, 121–122 ambient light, 262–263, 283 recursive subdivision, 280–283
matrix-matrix, 676–677 ambient reflection, 267 arcade games, 3
point-vector, 117–118, 120 American Standard Code for architectures
scalars, 118 Information Interchange graphics, 33–37
vector-vector, 118, 120, 666–668 (ASCII), 10 pipeline. See pipeline architectures
additive color models, 68 angles area averaging
addressing schemes on Internet, 453 Euler, 184–185 antialiasing by, 343
ADTs (abstract data types) incidence, 274 in sampling, 417
geometric, 119–120 joint, 430–431, 442 areas, screen, 180–181
overview, 119 reflection, 274–275 arithmetic pipelines, 34–35
affine addition, 121–122 rotation, 170–171 arms, robot, 429–432
affine spaces, 665 twist, 215 arrays
mathematical view, 118–119 view, 21–22, 30, 229 knot, 530
origins, 128 animation texture, 376
overview, 668–669 applications, 3–4 vertex, 146
affine transformations hierarchical models, 441–442 articulation, 441
concatenation, 164–172 antialiasing. See aliasing and ASCII (American Standard Code for
overview, 152–155 antialiasing Information Interchange), 10
agent-based modeling, 500 apertures, sampling, 418 aspect ratio
algebraic surfaces, 506, 545–546 applets, 454 synthetic-camera model, 30
algorithmic models, 465–467 application coordinate systems, 55 and viewports, 79–80
aliasing and antialiasing application programming interfaces associative property, 677
alpha channel, 407–410 (APIs), 26 at points, 30, 212–213
area averaging, 343 OpenGL. See OpenGL API attenuation of light, 284
fragment processing, 309 three-dimensional, 28–31 attractive forces for Newtonian
Nyquist criteria, 415–416 viewing, 209–212 particles, 472–473
712 Subject Index
attractors for Mandelbrot set, 494 Bernstein polynomials, 522–523 color, 6, 69–70
attributes Bezier curves and surfaces, 520–521 depth, 6, 240, 358
color, 72–73 geometry matrices, 521–522 double, 105
functions, 52 patches, 523–524, 542–544 for gaskets, 84
graphical objects, 443–444 subdivision, 541–542 OpenGL functions, 693–694
OpenGL functions, 692–693 Utah teapot, 542–544 source, 362
primitives, 65–67 Bezier polynomials, 537–539 stencil, 359
axis-aligned bounding boxes, 318 bicubic surface patches, 515, 517 working with, 357–359
axonometric views, 198–200 billboarding, 255 writing into, 362–366
azimuth, 214–215 binary spatial-partition trees (BSP XOR operations, 365–366
trees), 457–459 z, 240
B binary-swap compositing, 585–586 bump maps, 32, 38, 396–397
B-splines binary-tree compositing, 585 example, 400–404
Catmull-Rom, 534–535 binormal vectors, 398 finding, 397–400
control points, 528 bit-block-transfer (bitblt) operations, texture mapping, 367
cubic curves, 524–529, 540–541 64, 362 byte code, 454
general, 529–530 bit blocks, 64, 362
geometry matrices, 526 bit operations, 6 C
nonuniform, 532 bitmaps for characters, 64 CAD (computer-aided design), 3
NURBS, 532–533 bitplanes in buffers, 358 callback functions
patches, 529 black box package, 51 display, 82, 101
recursively-defined, 530–531 blending idle, 103–105
subdivision curves, 547 alpha, 404 input devices, 14
surfaces, 528–529 for Bezier curves, 522 keyboard, 102–103
uniform, 532 in compositing techniques, 404–405 menu, 106
back buffers, 105 interpolation, 513–515 mouse, 99–100, 106
back clipping planes, 231 OpenGL, 406–407 reshape, 102
back-end processing, 39 patches, 517 calligraphic CRTs, 8
back-face removal, 334–335 Blinn-Phong models, 271, 563 cameras and camera models, 17,
back-to-front painting, 594 bound attributes, 66 72–73
back-to-front rendering bounding boxes frames, 129, 141–144, 196, 204–209
in compositing, 409–410 axis-aligned, 318 orthographic views, 74–77
painter’s algorithm, 340 for clipping, 318 pinhole, 20–22
backing stores, 365 Bresenham’s algorithm, 325–327 positioning, 204–215
backward in-order traversal, 459 brightness in human visual systems, specifications, 29–30
balancing, load, 581 22–23 synthetic-camera model, 23–25, 30
band-limited functions, 415–416 Brownian motion, 490–491 canonical view volumes, 218
barycentric coordinates, 124 browsers, 454 cartographers, 2
basic tenet of three-color theory, 68 BSP trees (binary spatial-partition cast rays, 561. See also ray tracing
basis splines, 528, 530–531 trees), 457–459 cathode-ray tubes (CRTs)
basis vectors, 126, 129–133, 668 buffers, 5–6 additive color systems for, 68
beat patterns, 350, 416 back and front, 105 overview, 7–9
bellows camera, 23 clipping in, 319 reconstruction for, 419
Subject Index 713
Catmull-Clark subdivision, 548–549 collisions inward- and outward-pointing
Catmull-Rom splines, 535 and clipping, 318 faces, 146–147
center of projection (COP) particle systems, 476–479, 482 colored noise, 497
light, 259–260 color column matrices, 676–678
synthetic-camera model, 24, 196 attributes, 72–73 commutative property of matrices,
central processing units (CPUs), 6–7, blending, 408–409 677
289 buffers, 6, 69–70 complementary colors, 68
centroids, 548 cone, 348 complex numbers, 116
CERN (European Particle Physics current, 66 Mandelbrot set, 493–494
Center), 453–454 direct volume rendering, 596 and quaternions, 186–187
characteristic values and vectors, 682 dithering and halftoning, 349–350 components of vectors, 126–127
choice input devices, 13 frame buffers for, 6, 69–70 compositing techniques, 404
chromaticity coordinates, 346–347 gamma correction, 349 antialiasing, 407–410
CIE Lab color system, 346 gamut, 69, 345 back-to-front and front-to-back
clamping, 381 human visual system response, 23 rendering, 409–410
classes, matrix and vector, 144–145, indexed, 69, 71–72 images, 406, 411–412
683–684 light sources, 262 multipath methods, 412
classical viewing, 197–199 lighting, 283, 286–287 opacity and blending, 404–405
clear color, 72–73 matrices, 348–349 OpenGL, 406–407
clip coordinates, 47, 141 overview, 67–69 sort-last rendering, 585–586
clipped objects, 77, 229–230 palette, 71 compressed images, 360
clipping, 310 particles, 481 compression ratios, 360
Cohen-Sutherland, 310–315 pen-plotter models, 28 computed tomography (CT), 2
in frame buffers, 319 ray tracing, 561 computer-aided design (CAD), 3
Liang-Barsky, 313–315 RGB, 69–71 concatenating transformations,
line-segment, 310–314 systems, 345–348 164–172, 678
polygon, 314–317 color-lookup tables, 71 concave polygons
primitives, 36–37, 317–319 color solids, 68–69 clipping, 315
projections, 229–230 colorcube function, 149 rasterization, 329
three dimensions, 319–322 perspective projections, 622 cones
clipping planes, 231 rotating cube with rotation in color, 348
clipping rectangles shader, 617 eye, 22–23
camera models, 24–25 rotating cube with texture, 640 conservation laws, 571
two-dimensional viewing, 77 rotating shaded cube, 627 constant shading, 276–277
clipping volumes, 36–37, 318 spinning cubes, 177 constraints in particle systems,
clouds, 500, 556 with tree traversal, 649 476–479
clusters, 459 colored cubes, 146 constructive solid geometry (CSG)
CMY color system, 68 code, 148–150 primitives, 126
CMYK color system, 346 data structures, 147–148 trees, 455–456
coefficient of restitution, 477–478 displaying, 151–152 contact forces in collisions, 479
Cohen-Sutherland clipping face modeling, 146 continuity
three dimensions, 320 interactive viewers, 224–226 curves, 509
two dimensions, 310–315 interpolation, 150–151 parametric and geometric, 519–520
714 Subject Index
continuous frequency light sources, Cramer’s rule, 679 general B-splines, 529–535
17 cross products, 122–123, 681 Hermite, 517–520
control functions, 52, 78 crossing tests, 328 interpolating, 510–517
aspect ratio and viewports, 79–80 CRTs (cathode-ray tubes) displays Koch, 485–489
main, display, and init, 80–83 additive color systems for, 68 parametric cubic polynomial,
program structure, 83 overview, 7–9 510–511
window system interaction, 78–79 reconstruction for, 419 rendering, 510, 535–542
control points CSG (constructive solid geometry) representation, 503–509
Bezier polynomials, 537–538 primitives, 126 segments, 508
cubic B-spline curves, 525–527 trees, 455–456 space-filling, 111
curves, 510 CT (computed tomography), 2 subdivision, 546–550
geometry matrices of, 540 CTMs (current transformation Utah teapot, 542–544
convex hulls matrices), 173–175 cylinders, 372–373
Bezier polynomials, 537–538 cube class, 446
defined, 122 cube maps, 393–396 D
convex objects, 59, 122 cubes DAGs (directed acyclic graphs), 429
convex polygons, 568 colored. See colored cubes damping term in Hooke’s law, 472
convolution matrices, 411–412 creating, 445–447 dark field intensity, 349
coordinates and coordinate systems implementing, 448 data abstraction, 119
affine spaces, 668 marching, 591–594 data gloves, 12
changing, 129–133 rotating. See rotating cube data sets, volumetric, 588–589
chromaticity, 346–347 programs data structures
clip, 47 spinning, 176–180 objects, 147–148, 445–446
coordinate-free geometry, 117–118 cubic B-spline curves, 524–529 polygonal shading, 278
frames, 140–141 cubic Bezier patches, 542–544 trees, 437–441, 455–456
geometric objects, 126–139 cubic Bezier surfaces, 541–542 data tablets, 12
homogeneous, 133–136, 159–164 cubic interpolating patches, 515–517 DDA algorithm, 323–324
object, 55, 140 culling, 241 decaling technique, 383
right-handed, 123 back-facing polygons, 334–335 deCasteljau recursion, 530
screen, 309 faces, 147 decimation, triangle, 594
synthetic-camera model, 30 occlusion, 451–452 decision variables, 325
texture, 368, 376–382, 384–386 current color, 66 degrees of freedom
transformations in, 159–164 current textures, 375 input devices, 12
two-dimensional applications, current transformation matrices transformations, 153–154
55–56 (CTMs), 173–175 Delaunay triangulation, 63, 551–555
viewing, 210 curvatures, 373, 504, 544 delta form factors, 577
window, 55, 78–79, 141, 308 curves, 503 dependent variables, 503
COP (center of projection) Bezier. See Bezier curves and depth buffers, 6, 240, 358
light, 259–260 surfaces depth of field, 21, 412–413
synthetic-camera model, 24, 196 clipping, 319 depth sorts, 340–342
Cox-deBoor recursion, 530–531 cubic B-splines, 524–529 derivatives of curves, 509
CPUs (central processing units), 6–7, design criteria, 509–510 design of curves, 509–510
289 fractal, 490–491 destination bits in buffers, 363
Subject Index 715
destination blending, 405 digital images, 359–362 distant light sources, 264–265
destination buffers, 362 environment maps, 388–393 distortion in texture mapping, 373
detection of collisions, 477–478 mapping methods, 366–368 distributive operations, 665–666
determinants, matrix, 679 texture generation, 387–388 dithering, 349–350
device-independent graphics, 55 texture mapping. See texture divide_curve function, 543, 660
devices mapping divide_patch function, 544, 661
coordinates, 55 writing into buffers, 362–366 divide_tetra function, 94
input, 9–13 displacement functions, 397 divide_triangle function, 89–90
output, 7–9 display, 344 per-fragment lighting of sphere,
pointing, 9–10, 98–101 callback functions, 82 633
dicing, 579 color matrix, 348–349 Sierpinski gaskets, 613
differences color systems, 345–348 sphere approximation, 282
forward, 536–537 colored cubes, 151–152 division
sets, 456 dithering and halftoning, 349–350 midpoint, 490–491
differential equations, 474–475 gamma correction, 349 perspective, 141, 229
diffuse-diffuse interactions, 572 historical overview, 2–3 subdivision. See subdivision
diffuse reflection, 267–269 output devices, 7–9 DLP (digital light projection) systems,
diffuse surfaces, 261 particles, 480–481 9
digital halftones, 350 processors, 34 DOP (direction of projection), 74,
digital images, 359–362 display function 196
digital light projection (DLP) systems, callback, 82 dot products, 122–123, 670
9 figure with tree traversal, 653 double buffering, 105
dimensions Mandelbrot sets, 496 drag term in Hooke’s law, 472
fractal, 489–490 parallel projections, 224 drivers, 26
matrices, 675 particle systems, 481 dual-ported memory, 323
vector space, 123, 667 per-fragment lighting of sphere, duplicating pixels, 64–65
dimetric views, 199 635–636 dynamics, inverse, 442
diminution of size, 201 perspective projections, 623–624
direct volume rendering, 589, robot arm, 431 E
595–600 rotating cube with rotation in edges
directed acyclic graphs (DAGs), 429 shader, 618 graphs, 428
directed graphs, 428–429 rotating cube with texture, 643 polygons, 59–60
directed line segments. See vectors rotating shaded cube, 628 silhouette, 294
direction angles, 170–171 shadows, 252 eigenvalues, 184, 682–683
direction cosines, 170–171 Sierpinski gaskets, 88, 611–612, 614 eigenvectors, 184, 682–683
direction in flat shading, 276 spinning cubes, 180 elastic collisions, 477–478
direction of projection (DOP), 74, teapot renderer, 663 electromagnetic radiation, 17
196 three-dimensional gaskets, 91, 97 elevation in views, 214
DirectX, 51, 452 tree structures, 440 enabling functions, 692–693
discrete techniques, 357 display lists, 34 Encapsulated PostScript (EPS)
buffers overview, 357–359 distance images, 360–361
bump maps, 396–404 Euclidean spaces, 670 encoding information, 453
compositing, 404–413 flat shading, 276 energy conservation, 571
716 Subject Index
energy flux, 570 field of view, 21–22, 30, 231 rulers and length, 488
energy function, 479 figure function, 434–437 fragment shaders
environment maps, 32, 367, 388–396 fill areas, 58 gaskets, 85–88, 92, 96, 612
EPS (Encapsulated PostScript) filled primitives, 66 texture mapping, 375–380
images, 360–361 fills in polygon rasterization, 329–330 fragments
Euclidean space, 665 film plane, 30 overlapping, 407–409
description, 118 filters, linear, 382–384, 411–412 processing, 37, 309
overview, 669–670 fixed points frame buffers, 5–6, 358
R3, 129 rotating about, 165–166, 175 clipping in, 319
Euler angles, 184–185 transformations, 156 RGB color, 69–70
Euler’s identity, 186 flat-panel displays, 8 frames
Euler’s method, 474–476 flat shading, 276–277 affine spaces, 669
European Particle Physics Center flight simulators, 3–4 Frenet, 507
(CERN), 453–454 flipping operation, 554–555 geometric objects, 126–139
event-driven input flocking in particle systems, 483–484 OpenGL, 139–144
idle callbacks, 103–105 flood-fill algorithm, 330 freeglut, 607
keyboard, 102–103 fluids, particle movement in, 490–491 Frenet frames, 507
pointing devices, 98–101 focal length, 30 frequency, sampling, 414–416
window, 101–102, 106 fonts, 64–65 frequency-domain representation,
event modes, 14 footprints, 596–597 414
event processing, 81 forces frequency spectrum, 414–416
event queues, 14, 81 collisions, 479 front buffers, 105
events, 14, 81 particle systems, 468–473, 483 front clipping planes, 231
exclusive OR operations, 365–366 spring, 471–472 front-end processing, 308
exit function, 98 foreshortening front-to-back rendering
explicit representation of curves and line segments, 171, 199–200 compositing, 409–410
surfaces, 503–505 nonuniform, 227 painter’s algorithm, 340
eye frames, 129, 141 form factors for radiosity, 573, frustums, 230–231
eye points, 212–213 575–577 full-color systems, 6
eyes, 22–23 forward differences, 536–537 functions
four-color systems callback. See callback functions
F CMYK, 346 control, 78–83
faces RGBA, 70 OpenGL. See OpenGL API
cube, 146 Fourier analysis, 414, 416 fuzzy objects, 500
inward- and outward-pointing, Fourier synthesis, 497
146–147 fractal mountains, 110 G
polyhedrons, 567 fractals and fractal geometry, 467, games and game consoles, 3–4, 9
principal, 197 487–488 gamma correction, 349
facets, 146 dimensions, 489–490 gamut, color, 69, 345
fans, 60–62 Mandelbrot set, 493–496 gaskets
far distances in synthetic-camera midpoint division and Brownian Sierpinski. See Sierpinski gaskets
model, 30 motion, 490–491 three-dimensional, 43, 91–98
feeler rays, 561 mountains, 492 Gauss-Seidel method, 574
Subject Index 717
Gaussian approximations, 419–420 GLEW (OpenGL Extension interaction, 98–106
Gaussian elimination method, 574 Wrangler) library, 53 menus, 106–107
Gaussian random numbers, 491 global illumination, 297–298 OpenGL, 50–56
general rotation, 167–168 GLSL (OpenGL Shading Language), polygon recursion, 88–90
geometric continuity, 519–520 85 primitives, 56–65
geometric objects, 115 functions, 694–696 Sierpinski gaskets, 43–46
ADTs, 119–120 noise in, 498 three-dimensional gaskets, 91–98
affine sums, 121–122 GLUT (OpenGL Utility Toolkit), two-dimensional applications,
colored cube modeling, 146–152 53–54, 78 46–50
computer science view, 119 Gouraud shading, 277–279 views, 73–77
convexity, 122 GPUs (graphics processing units), 7, graphics systems and models, 1
coordinate-free geometry, 117–118 38, 289 applications, 2–5
coordinate systems and frames, gradient noise, 498–499 architectures, 33–37
126–139 gradient vectors, 273 CPUs and GPUs, 6–7
data structures, 147–148 graftals, 488 images, 15–20
dot and cross products, 122–123 Gram-Schmidt orthogonalization, imaging systems, 20–23
frames, 139–144 671–672 input devices, 9–13
incremental rotations, 185–186 grammars output devices, 7–9
lines, 120–121 shape, 487 performance characteristics, 38–39
mathematical view, 118–119 tree, 484 pixels, 5–6
matrix and vector classes, 144–145 graphical objects, 443 programmer interfaces, 25–33
overview, 448–449 creating, 445–447 programmer pipelines, 37–38
planes, 123–124 geometric, 448–449 synthetic-camera model, 23–25, 30
primitives, 56 hierarchy, 447–448 graphs
quaternions, 186–189 implementing, 448 directed, 428–429
screen areas, 180–181 methods, attributes, and messages, and Internet, 453–455
smooth rotations, 184–185 443–444 scene. See scene graphs
three-dimensional interfaces, graphical user interfaces (GUIs), 4–5 gravitational forces, 470–471, 473
180–186 graphics architectures, 33–34 group nodes, 449–450
three-dimensional primitives, clipping and primitive assembly, GUIs (graphical user interfaces), 4–5
125–126 36–37
transformations. See transforma- display processors, 34 H
tions fragment processing, 37 HAL (hardware abstraction layer),
virtual trackballs, 181–184 pipeline, 34–35, 53 451
geometric optics, 18 rasterization, 37 halftoning, 349–350
geometric pipelines, 35–37 vertex processing, 36 halfway angles, 271
geometry graphics processing units (GPUs), 7, halfway vectors, 270–271
fractal. See fractals and fractal 38, 289 hand-held devices, programmable, 38
geometry graphics programming, 43 hard constraints in particle systems,
graphics pipeline, 35–37 attributes, 65–67 476
processing, 307–308 color, 67–73 hardware abstraction layer (HAL),
geometry engine, 38 control functions, 78–83 451
GIF format, 360 gaskets, 83–88 “has-a” relationships, 447–448
718 Subject Index
head function, 434, 436, 650 HTML (Hypertext Markup display considerations, 344–350
head-to-tail rule, 117, 120, 667, 669 Language), 453–454 fragment processing, 309
height fields, 241–242, 551 hue in HLS systems, 348 geometry processing, 307–308
Hermite curves and surfaces, 517–520 hue-saturation-lightness (HLS) hidden-surface removal. See
Hermite geometry matrices, 518 systems, 348 hidden-surface removal
hidden-surface removal, 31, 203, 331 human visual system, 22–23 modeling process, 306–307
back-face removal, 334–335 hypermedia, 453–454 polygon rasterization, 327–331
depth sort and painter’s algorithm, Hypertext Markup Language rasterization, 308–309, 323–325
340–342 (HTML), 453–454 implicit equation for spheres, 272
geometry processing, 307 implicit functions, 589–591
object-space and image-space I implicit representation of curves and
approaches, 331–332 identity (I), 677 surfaces, 505–506
overview, 238–241 idle function improved Euler method, 476
scan conversion with z-buffers, event-driven input, 103–105 in-betweening, 442
338–339 particle systems, 481 incremental rotations, 185–186
scanline algorithms, 333–334 rotating cube with rotation in incremental z-buffer algorithm,
sorting in, 332 shader, 619 337–338
three-dimensional gaskets, 96–98 rotating cube with texture, 643 independence in synthetic-camera
z-buffer algorithm, 335–338 rotating shaded cube, 629 model, 30
hidden-surface-removal (HSR) illumination function, 261 independent particles, 470–471
algorithm, 31, 239 image-based rendering, 600–602 independent variables, 503
hierarchical menus, 107 image-oriented approach, 304–305 indexed color model, 69, 71–72
hierarchical models, 425, 427–429 image-space algorithms, 239, 331–332 inelastic collisions, 477
animation, 441–442 images and imaging, 15, 20 initialization functions, 687–689
graphical objects, 443–449 compositing, 406 initShader function
robot arm, 429–432 digital, 359–362 gaskets, 83, 86–87
scene graphs. See scene graphs human visual system, 22–23 shader initialization, 609–610
tree structures, 437–441, 455–461 light for, 16–18 inner products, 122–123, 670
tree traversal, 432–437 models, 18–20 input
high dynamic range applications, 6 objects and viewers, 15–16 event-driven. See event-driven
Hilbert curves, 485–486 OpenGL functions, 693 input
histograms, 596 pinhole cameras, 20–22 functions, 52
HLS (hue-saturation-lightness) primitives, 56 input devices, 9–10
systems, 348 processing, 411–412 logical, 12–13
homogeneous coordinates sample, 31–32 modes, 13–14
transformations, 159–164 imaginary numbers in Mandelbrot physical, 10–13
vectors, 133–136 sets, 493 inside-outside testing, 327–328
homomorphic, 129 immediate mode graphics, 45 instability in particle systems, 475
Hooke’s law, 471–472 implementation strategies, 304–305 instances
Horner’s method, 536 antialiasing, 342–344 graphical objects, 445
HSR (hidden-surface-removal) Bresenham’s algorithm, 325–327 tables and transformations,
algorithm, 31, 239 clipping. See clipping 168–169, 426–427
Subject Index 719
intensity function for light sources, isometric views, 199, 207–208 lateral inhibition, 277
262 isosurface values, 589 LCDs (liquid-crystal displays), 8
interaction, 98 isosurfaces, 589, 591–594 leaf nodes, 429
double buffering, 105 LED (light-emitting diode) displays,
idle callbacks, 103–105 J 8
keyboard, 102–103 Jacobi’s method, 574 left-child structure, 437–438
menus, 106–107 jaggedness. See aliasing and left_lower_arm function, 650–651
OpenGL functions, 690–692 antialiasing left_lower_leg function, 652
pointing devices, 98–101 Java applets, 454 left_upper_arm function, 439, 650
windows, 78–79, 101–102, 106 jitter, 412 left_upper_leg function, 651–652
interactive graphics, 454–455 join points, 509 Lempel-Ziv algorithm, 360
interactive viewers, 224–226 joint angles, 430–431, 442 length in fractal geometry, 488
interfaces joysticks, 12 Lennard-Jones particle system, 502
OpenGL, 53–55 JPEG image format, 359–362 lens, eye, 22
programmer, 25–33 level-of-detail rendering, 452
three-dimensional applications, K Liang-Barsky clipping
180–186 key framing, 442 overview, 313–315
interlaced displays, 8 keyboard function in three dimensions, 320
Internet, 453–455 figure with tree traversal, 657–658 libraries for X Window System, 53–54
interpolating geometry matrices, 513 per-fragment lighting of sphere, light and lighting, 257
interpolating polynomials, 511 636 in applications, 286–289
interpolation perspective projections, 624–625 Blinn-Phong model, 271, 563
blending functions, 513–515 rotating cube with rotation in efficiency, 289–290
color, 150–151 shader, 618 global illumination, 297–298
curves and surfaces, 510–517 rotating cube with texture, 643–644 human visual system, 22–23
Phong shading, 279 rotating shaded cube, 629 images, 16–20
intersect function, 564–565 teapot renderer, 663 materials, 284–286
intersections keyboards, 9–10 and matter, 258–261
ray tracing, 565–568 devices, 10 modified Phong model, 270–271
sets, 456 events, 102–103 per-fragment, 295–297, 632–638
Inventor program, 451 Khronos Group, 455 Phong model, 265–271
inverse kinematics, 441–442 pinhole cameras, 20–22
dynamics, 442 knot arrays, 530 in rendering equation, 569–571
kinematics, 442 knots, 530 shading. See shading
matrices, 679 Koch curves, 485–489 sources, 259, 261–265, 283–284
operations, 666 Koch snowflakes, 111, 485 sphere, 632–638
vectors, 117 synthetic-camera model, 23–25
invertible transformations, 678–679 L vector computation, 271–275
inward-pointing faces, 146–147 Lambertian surfaces, 267 in vertex shaders, 290–294
iris, eye, 22 Lambert’s law, 267–268 light-emitting diode (LED) displays,
irrational numbers, 466 language-based models, 467, 484–487 8
“is-a” relationship, 448 latency, 35 light-field rendering, 602
720 Subject Index
lighting. See light and lighting magnification in texture sampling, model-view. See model-view
lightness in HLS systems, 348 382 matrices
line-rasterization algorithm, 325–327 magnitude of vectors, 120 normal, 402
line segments Mandelbrot, Benoit, 487 operations, 676–677
attributes, 66 Mandelbrot set, 493–496 orthogonal, 163
clipping, 310–314 maps and mapping, 2 perspective-normalization, 235
foreshortened, 171, 199–200 bump. See bump maps perspective-projection, 232–238
three-dimensional, 29 cube, 393–396 projection, 217–218
type specifications, 58 environment, 32, 367, 388–396 rank, 678–679
between vertices, 57 methods, 366–368 representation, 132–133, 137–139,
linear combination of vectors, 667 normal, 399 679–681
linear filters, 382–384, 411–412 photon, 20, 571 row and column, 676–678
linear functions, 153 spheres, 390–392 similar, 683
linear vector space, 118 surface, 366–368 sparse, 574
linearly independent matrices, 679 texture. See texture mapping square, 675
linearly independent vectors, 123, marching cubes, 591–594 texture, 384–385
667 mat.h class, 683–684 transformation. See transformation
lines material class, 448 matrices
attributes, 66 mathematical view of vectors and translation, 160–161
equation, 504 affine spaces, 118–119 transpose, 675–676
overview, 120–121 matrices trees with, 433
links B-spline geometry, 526 view-orientation, 210
hypermedia, 453–454 Bezier geometry, 521–522 matrix-matrix addition, 676–677
language-based models, 486 Catmull-Rom geometry, 535 matrix-matrix multiplication, 160,
liquid-crystal displays (LCDs), 8 classes for, 144–145, 683–684 676–677
load balancing, 581 color, 348–349 MatrixStack class, 646–647
local lighting model, 297–298 control point geometry, 540 Maxwell triangles, 113, 424
locator devices, 13 control points, 525 maze, 111
logical devices, 10, 12–13 convolution, 411–412 measures of input devices, 13
LookAt function, 26, 212–214, coordinate system changes, medical imaging, 2
247–249 129–133 members, 446
lookup tables, 71 cross products, 681 membership function, 505
loop subdivision, 549 definitions, 675–676 memory for buffers, 357–359
lossless coding, 360 determinant, 679 menu function, 655
low-pass filters, 418–419 eigenvalues and eigenvectors, menus, 106–107
lumigraph rendering, 602 682–683 Mercator projections, 373
luminance function, 262 frame changes, 136–137 mesh display
luminance images, 359 Hermite geometry, 518 overview, 241–244
homogeneous coordinates, 133– polygon offset, 246–247
M 136 as surfaces, 244–246
Mach bands, 277 identity, 677 walking through scenes, 247–249
magnetic resonance imaging (MRI), interpolating geometry, 513 mesh generation, 550
2 inverse, 679 Delaunay triangulation, 551–555
Subject Index 721
height fields, 551 shadows, 251–253 multiview orthographic projections,
point clouds, 556 spinning cube, 176 197–199
meshes, 112 stack-based traversal, 434–436
polygonal shading, 278 symbols for, 426–427 N
simplification, 594–595 tree data structures, 438–439 n-tuples, 128–129
subdivided, 547–550 vertex shaders, 290, 293–294 National Center for SuperComputer
messages for objects, 443–444 model-view transformations, Applications (NCSA), 454
methods for objects, 443–444 141–144 National Television Systems
micropolygons, 579 modes Committee (NTSC) system,
midpoint division, 490–491 input, 13–14 345
minification, 382–383 writing, 363–364 natural languages, 484
mipmapping, 382–383 modified Phong lighting model, near distance in synthetic-camera
mirrors in ray tracing, 562 270–271 model, 30
model frames, 129, 140, 426 modifier keys, 103 Netscape Navigator browser, 454
modeling-rendering paradigm, 32–33 modulus operator, 49 Newell, Mike, 543
models Moiré patterns, 350, 416 Newtonian particles, 468–471
colored cubes, 146–152 monitors, 7–9 attractive and repulsive forces,
coordinates, 140 monochromatic images, 359 472–473
graphics. See graphics systems and Monte Carlo methods, 571 independent, 470–471
models Mosaic browser, 454 spring forces, 471–472
hierarchy. See hierarchical models motion-blur effect, 412 Newton’s second law, 468–469
images, 18–20 mountains, fractal, 492 Nintendo Wiimote devices, 12
Phong lighting, 265–271 mouse, 9–10 nodes
process, 306–307 callback functions, 99–100, 106 graphs, 428–429
symbols and instances, 426–427 overview, 10 group, 449–450
model-view matrices mouse function, 104–105 noise, 496–500
bump maps, 402 figure with tree traversal, 653–654 nonconvex polygons, 315
camera orientation, 210–212 rotating cube with rotation in noninterlaced displays, 8
camera positioning, 204–206, shader, 619 nonphotorealistic shading, 297
208–209, 214 rotating cube with texture, 643 nonsingular matrices, 679
camera views, 204 rotating shaded cube, 628–629 nonuniform B-splines, 532
coordinate system changes, 129 spinning cubes, 177 nonuniform foreshortening, 227
CTM, 174, 176 move events, 99 nonuniform rational B-spline
display callback, 177 MRI (magnetic resonance imaging), (NURBS) curves and surfaces,
frames, 141–144 2 532–533
with orthogonal-projection multiplication nonuniform scaling, 158–159
matrices, 219 matrix-matrix, 160, 676–677 normal maps, 399
mesh display, 243, 247–249 scalar-matrix, 676–677 normal matrix, 402
perspective projections, 229 scalars, 118 normal vectors, 272–274
reflection maps, 395 vectors, 117, 120, 666–668 normalization
robot arm, 431–432 multirendering, 393 matrices, 217–228
rotating cube, 224 multisampling, 410–411 projection, 217–228
scene graphs, 449–450 multitexturing, 386–387 transformations, 209
722 Subject Index
normalize function, 282 RGBA system, 70 vector, 666–668
normalized device coordinates, 141, Open Inventor program, 451 optic nerves, 23
310 Open Scene Graph (OSG) program, optical detectors, 11
normalizing vectors, 169 450–453 order of transformations, 176
normals to planes, 124 open splines, 532 ordinary differential equations,
NTSC (National Television Systems OpenGL API, 1, 50–51 474–475
Committee) system, 345 attribute and enabling functions, orientation in camera specification,
numerical instability in particle 692–693 30
systems, 475 camera positioning, 204–209 origins
numerical ordinary differential compositing and blending, 406–407 affine spaces, 128, 668
equations, 474–475 concave polygon rasterization, 329 window systems, 78–79
NURBS (nonuniform rational B- frames, 139–144 Ortho function, 216, 219
spline) curves and surfaces, GLSL functions, 694–696 orthogonal matrices, 163
532–533 graphics functions, 51–53 orthogonal-projection matrices,
Nyquist frequency, 415–416 graphics pipeline and state 219–220
Nyquist sampling theorem, 415, 418 machines, 53 orthogonal projections, 215–216
initialization and window orthogonal vectors, 122–123, 670–671
O functions, 687–689 orthogonalization, Gram-Schmidt,
object coordinates, 47 interaction functions, 690–692 671–672
object-oriented approach, 304–305 interface, 53–55 orthographic projections, 197–199
object-space algorithms, 239, parallel projections, 216–217 orthographic views
331–332 perspective projections, 229–232 clipping, 321–322
objects, 15–16 perspective transformations, creating, 74–77
clipped, 77, 229–230 236–238 orthonormal vectors, 671
coordinate systems, 55, 140 primitives, 56–65 OSG (Open Scene Graph), 450–453
curved, 65 query functions, 694 outcodes, 311–312
frames, 129, 140, 142, 426 state and buffers functions, 693–694 outer products, 122–123
geometric. See geometric objects texture and image functions, 693 output devices, 7–9
graphical, 443–449 texture mapping, 374–387 outward-pointing faces, 146–147
texture, 375–376 three-dimensional, 29 overdetermined problems, 3
three-dimensional, 29 transformations, 172–176 overlapping fragments, 407–409
oblique projections, 220–224 vertex buffer object functions,
oblique views 689–690 P
clipping in, 321–322 views, 73–77 painter’s algorithm, 340–342
obtaining, 200–201 OpenGL Extension Wrangler palettes, color, 71
occlusion culling, 451–452 (GLEW) library, 53 parallel projections, 196–197, 254
octrees, 459–461 OpenGL Utility Toolkit (GLUT), interactive viewers, 224–226
odd-even tests, 328 53–54, 78 normalization, 217–228
one-dimensional reconstruction, 419 operations oblique, 220–224
one-point perspective views, 41, 202 affine spaces, 669 with OpenGL, 216–217
opacity Euclidean spaces, 670 orthogonal, 215–216
in compositing techniques, 404–405 matrix, 676–677 orthogonal-projection matrices,
direct volume rendering, 596 scalar, 665–666 219–220
Subject Index 723
parallel ray tracers, 569 performance characteristics, 38–39 rasterization, 323–325
parallel rendering, 579–581 periodic B-splines, 532 planar geometric projections, 197
sort-first, 586–588 periodic functions, 414 planes
sort-last, 583–586 Perlin noise, 498 clipping, 231
sort-middle, 581–582 perspective division, 141, 229 overview, 123–124
parallel views, 196–197 Perspective function, 26 projection, 24–25
parametric continuity, 519–520 perspective-normalization tangent, 273
parametric form transformations, 232–236 plasma panels, 8–9
curves and surfaces, 368–369, perspective-projection matrices, plotting techniques, 2
506–511 232–238 point clouds, 556
lines, 121 perspective projections, 226 point light sources, 18, 263–264
planes, 124 with OpenGL, 229–232 point-point subtraction, 117–119,
spheres, 273 sample program, 621–626 669
texture mapping, 368–369 simple, 226–229 point-vector addition, 117–118, 120
parents in tree structures, 429, perspective transformations, 228, pointing devices, 9–10, 98–101
447–448 236–238 points
particle structure, 480 perspective views, 41, 196–197, attributes, 66
particle systems, 467–468 201–202 Euclidean spaces, 670
collisions, 476–479, 482 PET (positron-emission geometric objects, 116
constraints, 476–479 tomography), 2 join, 509
flocking, 483–484 Phong lighting model, 265–266 OpenGL, 47
forces, 483 ambient reflection, 267 rendering, 84–85
Newtonian particles, 468–473 diffuse reflection, 267–269 representing, 47
particle display, 480–481 modified, 270–271 sampling, 382–384, 417
position updates, 481–482 specular reflection, 269–270 shrink-wrapping, 122
solving, 473–476 Phong shading, 279–280 three-dimensional APIs, 29
particles in fluids, 490–491 phosphors, 8 three-dimensional gaskets, 91–92
pass-through vertex shaders, 85 photon mapping, 20, 571 type specifications, 57–58
passive move events, 99 physical-device coordinates, 55 polygon scan conversions, 327
patches physical images, 15 polygonal shading, 275–280
Bezier, 523–524, 542–544 physical input devices, 10–13 polygons
cubic interpolating, 515–517 physically based models, 467–468 area, 335
radiosity, 572 pick devices, 13 attributes, 67
surface, 509, 523–524 pinhole cameras, 20–22, 229 back-face removal, 334–335
pen-plotter models, 27–28 pipeline architectures basics, 58–59
penalty function, 479 clipping, 316–317 clipping, 314–317
penumbra, 264 graphics, 34–35, 53 offsets in mesh display, 246–247
per-fragment lighting, 295–297, for performance, 39 rasterization, 327–331
632–638 programmer, 37–38 recursion, 88–90
per-fragment shading, 280 pitch, 214 shadow, 250–251
perception, color, 67–68 pixels texture mapping, 381
perfectly diffuse surfaces, 261 buffers, 5–6, 358 three-dimensional, 29, 92–96, 126
perfectly specular surfaces, 261 raster characters, 64–65 triangulation, 62–63
724 Subject Index
polygons (cont.) three-dimensional, 29, 125–126 protected members, 446
types, 59–60 triangles, 59–60 pseudorandom numbers, 496–498
polyhedron faces, 567 principal faces, 197 public members, 446
polylines, 58 private members, 446 push function, 435
polynomials procedural methods, 465
Bernstein, 522–523 algorithmic models, 465–467 Q
curves and surfaces evaluation, language-based models, 484–487 quad function
536–537 noise, 496–500 color cube, 148–150
interpolating, 511–517 particle systems. See particle cube reflection map, 394–395
parametric curves, 507–508, systems figure with tree traversal, 648–649
510–511 recursion and fractals, 487–496 perspective projections, 622
parametric surfaces, 508–509 processors rotating cube with rotation in
subdivision of, 537–541 CPUs, 6–7 shader, 617
pop function, 435 display, 34 rotating cube with texture, 639–
pop-up menus, 106 GPUs, 7, 38 640
position product function in lighting, 287 rotating shaded cube, 627
cameras, 29, 204–215 productions, 484–485 texture mapping, 377–378
input devices, 11–12 products, dot and cross, 122–123, 681 quadratic form, 545
light, 284 program objects, 86 quadrics for surfaces, 506, 545
particles, 481–482 programmer interfaces, 25–26 quadrilaterals, 62–63, 383–385
trackballs, 181–183 modeling-rendering paradigm, quadtrees, 459–461
positron-emission tomography 32–33 quantization, 413, 420–421
(PET), 2 pen-plotter models, 27–28 quantizers, 420
postmultiplication by matrices, 173, sample images, 31–32 quaternions, 186
176 three-dimensional APIs, 28–31 and complex numbers, 186–187
postorder traversal, 456 programmer pipelines, 37–38 and rotation, 187–189
PostScript fonts, 64 progressive radiosity, 578 query functions, 53, 694
power walls, 580 projection planes, 24–25 queues, event, 14, 81
pre-order traversal, 434 projections, 670–671
precision, buffers, 6, 358 axonometric, 198–200 R
preimages, pixel, 371 display systems, 9 R3 space, 129
premultiplication by matrices, 173 Mercator, 373 radiosity, 298, 560, 571–572
primary colors, 23 normalization, 217–228 carrying out, 577–578
primitives, 56–58 orthogonal-projection matrices, equation, 572–575
assembly, 36–37 219–220 form factors, 575–577
attributes, 65–67 orthographic, 197–199 radiosity method, 20
clipping, 36–37, 317–319 parallel. See parallel projections rand function
curved, 65 perspective, 226–232, 621–626 procedural noise, 496
in geometry processing, 307 planar, 197 Sierpinski gaskets, 49
OpenGL functions, 51–53 points, 21 random numbers
polygons, 58–60 and shadows, 249–253 Brownian motion, 491
spheres, 60–62 projectors, 24 procedural noise, 496–498
text, 64–65 properties. See attributes Sierpinski gaskets, 49
Subject Index 725
random particle movement in fluids, reflect function, 275 volumes, 588–591
491 reflection maps, 367, 388–396 rendering farms, 579
random-scan CRTs, 8 reflections RenderMan renderer, 578–579
rank, matrices, 678–679 collisions, 477–478 interface, 33
raster operations (raster-ops), 362 Phong lighting model, 267–270 noise function, 498
raster primitives, 56 ray tracing, 562–564 ray tracing, 569
raster replication, 64–65 in scaling, 159 replicating pixels, 64–65
raster text, 64–65 surface, 258–261 representation
rasterization, 7, 37 in vector computations, 274–275 curves and surfaces, 503–509
polygons, 327–331 refraction, 261 spheres, 273–274
primitives, 323–325 refresh rates vectors and matrices, 126–128,
process, 308–309 buffers, 105 132–133, 137–139, 667,
rasters, 5 CRTs, 8 679–681
ray casting, 258–259, 546, 590, 599 refresh CRT displays, 8 repulsive forces, 472–473
ray tracing, 20, 298, 560–564 register functions, 82 request modes, 13–14
intersections, 565–568 rejected primitives in clipping, 310 reshape events, 101–102
recursive, 564–566 relative-positioning devices, 11–12 reshape function, 102
variations, 568–569 render function, 446–447 resolution
volumes, 598–599 render_cube function, 445 display, 9, 79
ray trees, 563 rendering, 559–560 frame buffers for, 6
rays back-to-front and front-to-back, human visual systems, 22
light, 18–19 409–410 retained mode graphics, 45
lines, 121–122 curves and surfaces, 510, 535–542 retinas, 22
raytrace function, 564–566 direct volume, 595–600 reversible transformations, 678–679
real numbers equations, 258, 560, 569–571 Reyes renderer, 579
scalars, 665–666 image-based, 600–602 RGB color systems, 6, 68–71, 346–347
for vectors, 116 isosurfaces and marching cubes, RGBA color system, 70, 404
reciprocity equation, 573 591–594 right-hand rule, 147
reconstruction step, 414, 418–420 mesh simplification, 594–595 right-handed coordinate system, 123
rectangles, viewing, 77 modeling-rendering paradigm, rigid-body transformations, 157
rectangular approximation, 419–420 32–33 robot figure, 429–433
recursion multirendering, 393 rods, eye, 22–23
B-splines, 530–531 parallel, 579–588 roll, 214
fractals. See fractals and fractal points, 84–85 root nodes, 429
geometry polygons, 58 rotating cube programs
polygons, 88–90 radiosity, 298, 571–578 interactive viewer, 224–226
ray tracing, 564–566 ray casting, 546 lighting, 289
Sierpinski gaskets, 613–615 ray tracing. See ray tracing reflection map, 393–396
recursive subdivision RenderMan, 578–579 rotation in shader, 615–620
Bezier polynomials, 537–539 sort-first, 586–588 shaded, 626–632
sphere approximation, 280–283 sort-last, 583–586 texture, 638–645
Utah teapot, 543–544 sort-middle, 581–582 rotation
refinement, curve, 547 teapot, 659–664 about arbitrary axes, 169–172
726 Subject Index
rotation (cont.) scalars, 665–666 shading
about fixed points, 165–166, 175 addition and multiplication, 118, flat, 276–277
general, 167–168 666–668, 676–677 GLSL, 85, 498, 694–696
in homogeneous coordinates, in geometric objects, 116 nonphotorealistic, 297
162–163 scaling Phong, 279–280
incremental, 185–186 homogeneous coordinates, 161– polygonal, 275–280
objects, 155–158 162 smooth and Gouraud, 277–279
and quaternions, 187–189 objects, 158–159 sphere models, 294–295
smooth, 184–185 transformation matrices, 174–175 shadow masks, 8
transformation matrices, 174–175 scan conversion, 7 shadow polygons, 250–251
virtual trackballs, 181–184 polygon, 327 shadow rays, 561
row matrices, 676–678 process, 308–309 shadows
rulers in fractal geometry, 488 with z-buffers, 338–339 point light sources, 263–264
Runge-Kutta method of order 2, 476 scanlines, 305, 333–334 and projections, 249–253
scattered light, 261 shape grammars, 487
S scene graphs, 33, 449–451 shear transformations, 163–164
sample-mode inputs, 14 and Internet, 453–455 shininess coefficient, 269
sample programs, 607–608 OSG, 450–453 shrink-wrapping points, 122
figure with tree traversal, 646–659 scientific visualization applications, 3 Sierpinski gaskets, 83–84
per-fragment lighting of sphere, scissoring technique, 319 fractals, 490
632–638 screen fragment shader, 86
perspective projections, 621–626 areas, 180–181 polygons, 88–90
rotating cube with rotation in coordinates, 55, 78–79, 141, 309 procedural methods, 487
shader, 615–620 resolution, 79 program, 47–50, 610–612
rotating cube with texture, 638– searching for resources, 453 recursive generation programs,
645 seed points, 330 613–615
rotating shaded cube, 626–632 segments rendering points, 84–85
shader initialization function, aliased, 342 vertex shader, 85–86
608–610 curve, 508 silhouette edges, 294
Sierpinski gaskets, 610–615 line. See line segments simple polygons, 58–59
teapot renderer, 659–664 self-emission, 258 simplification of meshes, 594–595
samplers, texture, 376–382 self-similarity, 488 simulation applications, 3–4
sampling separable surfaces, 517 sinc function, 418–419
aliasing in, 413, 415–418 sets singular matrices, 679
multisampling, 410–411 CSG modeling, 456 singularities, 330–331
reconstruction step, 414, 418–420 Mandelbrot, 493–496 slope of lines, 504
rendering, 413–421 mathematical, 118 smooth rotations, 184–185
saturated color values, 70 shaders smooth shading, 277–279
texture, 382–384 fragment, 86 smoothness of curves, 509
sampling apertures, 418 initialization function program, snowflakes, Koch, 485
sampling theory, 413–418 608–610 soft constraints in particle systems,
saturation in HLS systems, 348 vertex, 85–86 476, 479
scalar fields, 118, 588, 665 shades of color, 257 sort-first rendering, 586–588
Subject Index 727
sort-last rendering, 583–586 stack-based traversals, 434–437 spline, 528–529
sort-middle rendering, 581–582 state machines, 53 subdivision, 546–550
sorts states tensor-product, 517
hidden-surface removal, 332 OpenGL functions, 693–694 Sutherland, Ivan, 3
polygon rasterization, 329–330 in transformations, 173 Sutherland-Hodgeman clipping, 315,
source bits, 363 stencil buffers, 359 320
source blending, 405 stipple patterns, 339 symbols
source buffers, 362 stochastic sampling method, 569 grammars, 484–485
space-filling curves, 111, 486 string devices, 13 objects, 426–427
spaceballs, 12 strips, 60–62 synthetic-camera model, 23–25, 30,
spaces, 665 stroke text, 64, 67 196
affine, 668–669 structured data sets, 589 synthetic images, 15
Euclidean, 118, 669–670 subdivision
Gram-Schmidt orthogonalization, Bezier surfaces, 541–542 T
671–672 curves and surfaces, 546–550 tables
projections, 670–671 loop, 549 forward differences, 536–537
scalars, 665–666 meshes, 547–550 lookup, 71
vector, 123, 666–668 polynomials, 537–541 tablets, 12
spans in hidden-surface removal, 333 sphere approximation, 280–283 tangent planes, 273
sparse matrices, 574 tetrahedrons, 93–94 tangent space, 398–400
spatial-domain aliasing, 343 Utah teapot, 543–544 tangent vectors, 398
spectrum, frequency, 414–416 subtraction, point-point, 117–119, taxonomies, 448
specular reflection, 269–270 669 Taylor’s theorem, 474–476
specular surfaces, 261 subtractive color models, 68 teapot
spheres subwindows, 106 drawing, 542–544
fan and strip approximation, 60–62 sums. See addition renderer program, 659–664
mapping, 390–392 surfaces texture making, 384–386
per-fragment lighting, 632–638 algebraic, 506, 545–546 tensor-product surfaces, 517
recursive subdivision Bezier. See Bezier curves and terminal nodes, 429
approximation, 280–283 surfaces tessellation
representation, 273–274 bump maps, 396–404 curved objects, 65
shading, 294–295 clipping, 319 isosurfaces, 592–593
spinning cubes, 176–180 design criteria, 509–510 meshes, 548
splatting, 596–597 Hermite, 517–520 polygons, 63, 315, 329
spline surfaces, 528–529 hidden. See hidden-surface removal triangles, 126
spotlights, 264 interpolation, 510–517 tetrahedron function
spring forces, 471–472 mapping methods, 366–368 per-fragment lighting of sphere,
square matrices mesh display as, 244–246 634
defined, 675 mesh generation, 550–556 sphere approximation, 281–282
inverse of, 679 patches, 509, 523–524 tetrahedrons
stability reflections, 258–261 fractals, 492
curves, 510 rendering, 366–368, 535–542 sphere approximation, 280–282
particle systems, 475 representation, 503–509 subdividing, 93–94
728 Subject Index
texels trackballs trees and tree structures, 455–456
linear filtering, 382 variants, 10 BSP, 457–459
texture mapping, 368 virtual, 181–184 CSG, 455–456
text transformation matrices, 434 graphs, 429
attributes, 67 cube spinning, 176–180 language-based models, 484–485
clipping, 319 OpenGL, 172–176 quadtrees and octrees, 459–461
graphical, 64–65 order, 176 ray, 563
texture mapping, 32, 367–368 rotation, translation, scene, 449–450
coordinates and samplers, 376–382 and scaling, 174– traversal, 432–437, 459–460,
multitexturing, 386–387 175 646–659
OpenGL, 374–387 transformations working with, 437–441
texture arrays, 376 affine, 152–155 triads, 8
texture coordinates, 384–386 concatenating, 164–172, 678 triangle function, 88–89
texture objects, 375–376 homogeneous coordinates, 159–164 per-fragment lighting of sphere,
texture sampling, 382–384 instance, 168–169, 426–427 633
two-dimensional, 368–375 invertible, 678–679 Sierpinski gaskets, 93–95, 613
volumes, 599–600 model-view, 141–144 sphere approximation, 280–281
texture matrices, 384–385 normalization, 209 sphere model shading, 294–295
textures OpenGL, 52, 236–238 triangles, 59–60
coordinates, 368, 384–386 perspective, 228 decimation, 594
cube with, 638–645 perspective-normalization, 232– Maxwell, 113, 424
generating, 387–388 236 sphere approximation, 280–281
mapping. See texture mapping rotating, 155–158, 162–163 texture mapping, 381
objects, 375–376 scaling, 158–159, 161–162 triangular polygons, 126
OpenGL functions, 693 shear, 163–164 triangulation, 62–63, 551–555
sampling, 382–384 translations, 155, 160–161, 174–175 triggers, 13–14
three-dimensional, 388 translate function, 436 trimetric views, 199
three-color theory, 68 translation matrices, 160–161 tristimulus values, 68–69, 262,
three-dimensional objects translations, 155, 160–161, 174–175 345–346
clipping, 319–322 translucent objects, 309 true-color systems, 6
gaskets, 91–98 translucent surfaces, 261 turtle graphics, 110–111, 485
interfaces, 28–31, 180–186 transmission, ray tracing, 563–564 twist angle, 215
meshes, 551–552 transparency twists, 191, 524
primitives, 29, 125–126 opacity, 404 two-dimensional applications, 46–50
textures, 388 RGBA system, 70 two-dimensional views, 77
three-point perspectives, 202 transpose of matrices, 675–676 2-1/2–dimensional surfaces, 241
throughput, 35 transpose4 function, 544 two-part texture mapping, 372
TIFF images, 360–361 traversal two-point perspectives, 30, 41, 202
time-domain aliasing, 343–344 CSG modeling, 456
top-level windows, 106 tree, 432–437, 459–460, 646–659 U
topology, cube, 147 traverse function, 439, 441, 649 u-v-n systems, 210
touch-sensitive screens, 12 tree grammars, 484 ultrasound, 2
trace function, 564, 569 treenode structure, 437 umbra, 263
Subject Index 729
underdetermined problems, 3 knot, 530 viewing rectangles, 77
uniform qualified variables, 180–181 light computation, 271–275 viewing volumes, 77
Uniform Resource Locators (URLs), linearly independent, 123, 667 viewports, 79–80
453–454 mathematical view, 118–119 views, 72–73, 195–196
uniform scaling, 158–159 normalizing, 169 axonometric, 198–200
uniform splines, 532 operations, 666–668 cameras. See cameras and camera
union of sets, 456 Phong lighting model, 265, 270–271 models
unit function, 633 representation, 126–128, 132–133, classical, 197–199
unstructured data sets, 589 137–139, 667 computer, 202–204
URLs (Uniform Resource Locators), tangent, 398 functions, 52
453–454 view-up, 209 isometric, 199, 207–208
user interfaces, 4–5 velocity of Newtonian particles, mesh display, 241–249
Utah teapot 468–469 oblique, 200–201
drawing, 542–544 vertex arrays, 146 orthographic, 74–77
texture making, 384–386 vertex attributes, 66 orthographic projections, 197–199
vertex buffer object functions, parallel, 196–197
V 689–690 perspective, 41, 196–197, 201–202
valence of vertices, 548 vertex lists, 148 perspective projections, 226–232
valuator input devices, 13 vertex shaders projections. See projections
value noise, 497 gaskets, 85–86 two-dimensional, 77
vanishing points, 41, 202 lighting in, 290–294 virtual reality (VR), 4
variables vertices virtual trackballs, 181–184
curves and surfaces, 503–505 coordinates, 55 visibility testing, 457
uniform, 180–181 isosurfaces, 592 visible color, 67
variation-diminishing property, 537 meshes, 242–243, 551–555 visible spectrum, 17
vec.h class, 683–684 normals, 278 visible-surface algorithms, 97, 239,
vector CRTs, 8 objects, 15, 28–29 307
vector-point addition, 117–118, 120 OpenGL, 47 visual acuity, 22
vector-scalar multiplication, 120 primitives, 57 visual system, human, 22–23
vector space, 118, 665–668 processing, 36 visualization of implicit functions,
vector-vector addition, 118, 120, triangulation, 62–63 589–591
666–668 valence, 548 VLSI (very-large-scale integrated)
vectors very-large-scale integrated (VLSI) circuits, 3, 38
binormal, 398 circuits, 3, 38 volumes
characteristic, 682 view-orientation, 210 clipping, 36–37, 318
classes for, 144–145, 683–684 view-plane normals (VPNs), 209 direct volume rendering, 595–600
components, 126–127 view-reference points (VRPs), 209 ray tracing, 598–599
computer science view, 119 view-up vectors (VUPs), 209 rendering, 588–591
coordinate systems and frames, view volumes, 229–230, 307 texture mapping, 599–600
126–139 viewers view, 77, 229–230
dot and cross products, 122–123 image-formation process, 15–16 volumetric data sets, 588–589
geometric objects, 116–117 interactive viewer, 224–226 voxels
homogeneous coordinates, 133–136 viewing-coordinate systems, 209 direct volume rendering, 596–597
730 Subject Index
voxels (cont.) winding numbers, 328 Y
isosurfaces, 591–592 winding test, 328 y-intercepts, 504
octrees for, 461 windows and window systems y–x algorithm, 334
volume rendering, 589 coordinates, 55, 78–79, 141, 308 yaw, 214
VPNs (view-plane normals), 209 events, 101–102, 106 YUV color system, 346
VR (virtual reality), 4 iconifying, 101
VRPs (view-reference points), 209 interaction, 78–79 Z
VUPs (view-up vectors), 209 managing, 106 z-buffer algorithm, 239–241
OpenGL functions, 687–689 z-buffers
W world coordinate system, 55, 140 hidden-surface removal, 97,
walking through scenes, 247–249 world frames, 129, 140, 426 239–241, 335–338
wavelengths, light, 17 World Wide Web, 453–455 scan conversion with, 338–339
web browsers, 454 writing into buffers, 362–366 zero (0) vectors, 117, 666
WebGL, 38, 455 writing modes, 363–364 zip files, 361
white noise, 496
widgets, 13 X
XOR operations, 365–366
XYZ color system, 346–347
Color Plate 1 Image of sun object created
using NURBS surfaces and rendered with
bump mapping.
(Courtesy of Fulldome Project, University of New
Mexico.)
Color Plate 2 Wire-frame representation of
sun object surfaces.
(Courtesy of Fulldome Project, University of New
Mexico.)
Color Plate 3 Flat-shaded polygonal
rendering of sun object.
(Courtesy of Fulldome Project, University of New
Mexico.)
Color Plate 4 Smooth-shaded polygonal
rendering of sun object.
(Courtesy of Fulldome Project, University of New
Mexico.)
Color Plate 5 Wire-frame of NURBS
representation of sun object showing the high
number of polygons used in rendering the
NURBS surfaces.
(Courtesy of Fulldome Project, University of New
Mexico.)
Color Plate 6 Rendering of sun object
showing bump map.
(Courtesy of Fulldome Project, University of New
Mexico.)
Color Plate 7 Rendering of sun object with
an environment map.
(Courtesy of Fulldome Project, University of New
Mexico.)
Color Plate 8 Rendering of a small part of the sun object with an environment map. (Courtesy of Fulldome Project, University of New Mexico.)
(a) Without antialiasing (b) With antialiasing
Color Plate 9 Axonometric view
from outside of temple.
(Courtesy of Richard Nordhaus,
Architect, Albuquerque, NM.)
Color Plate 10 Perspective view
of interior of temple.
(Courtesy of Richard Nordhaus,
Architect, Albuquerque, NM.)
Color Plate 11 Cartoon-shaded teapot.
(Courtesy of Ed Angel, University of New Mexico.)
Color Plate 12 Reflection map from a color
cube on teapot.
(Courtesy of Ed Angel, University of New Mexico.)
Color Plate 13 Interface for animation using Maya.
(Courtesy of Hue Walker, ARTS Lab, University of New Mexico.)
Color Plate 14 (a) Wire-frame model of a wave.
(Courtesy of Sony Pictures Entertainment.)
Color Plate 14 (b) White water and spray
created by particle system.
(Courtesy of Sony Pictures Entertainment.)
Color Plate 14 (c) Final composited image from
“Surf’s Up.”
(Courtesy of Sony Pictures Entertainment.)
Color Plate 15 Rendering using
ray tracer.
(Courtesy of Patrick McCormick.)
Color Plate 16 Radiosity rendering showing
soft shadows and diffuse–diffuse reflections.
(Courtesy of A. Van Pernis, K. Rasche, R. Geist,
Clemson University.)
Color Plate 17 Array of Utah teapots with different
material properties.
(Courtesy of SGI.)
Color Plate 18 Phong-Blinn shaded teapots. (Courtesy of Ed Angel, University of New Mexico.)
(a) Using per-vertex lighting (b) Using per-fragment lighting
(c) Area near highlight (d) Area near highlight
Color Plate 19 Fluid dynamics of the mantle
of the Earth. Pseudocolor mapping of
temperatures and isotemperature surface.
(Courtesy of James Painter, Los Alamos National
Laboratory.)
Color Plate 20 Volume rendering of CT
data.
(Courtesy of J. Kniss, G. Kindlmann, C. Hansen,
Scientific Computing and Imaging Institute,
University of Utah.)
Color Plate 21 RGB color cube.
(Courtesy of University of New Mexico.)
Color Plate 22 Avatar representing a patient
who is being diagnosed and treated by a
remotely located health professional (inset).
(Courtesy of Tom Caudell, Visualization Laboratory,
Albuquerque High Performance Computing Center,
University of New Mexico.)
Color Plate 23 One frame from
Pixar’s “Geri’s Game” showing
refraction through reflections on
Geri’s glasses.
(Courtesy of Pixar Animation Studios.)
Color Plate 24 Reflection map
from environment computed from
the center of the lens on Geri’s
glasses. The reflection map is then
mapped to the glasses as part of
the rendering process.
(Courtesy of Pixar Animation Studios.)
Color Plate 25 Elevation data for
Honolulu, Hawaii, displayed using a
quadmesh to define control points
for a Bezier surface.
(Courtesy of Brian Wylie, University
of New Mexico and Sandia National
Laboratories.)
Color Plate 26 Wire frame of the
quadmesh showing lower resolution
in flat areas.
(Courtesy of Brian Wylie, University
of New Mexico and Sandia National
Laboratories.)
Color Plate 27 Rendering of hierarchical robot figure.
(Courtesy of University of New Mexico.)
Color Plate 28 Sphere computed by recursive subdivision
of tetrahedrons; triangle colors assigned randomly.
(Courtesy of University of New Mexico.)
لوحهای رنگی — ادامه
لوح رنگی ۲۹: سایههای یک مکعب روی زمین؛ محاسبهشده با دو گذر از داده و جابهجایی viewpoint میان viewer و منبع نور. لوح رنگی ۳۰: visualization جریانهای thermohaline در دریای کارائیب با streamtubeهایی که بر اساس دمای آب رنگ شدهاند.
Color Plate 29 Shadows from a cube onto
ground. Computed by two passes over the data
with viewpoint shifted between viewer and light
source.
(Courtesy of University of New Mexico.)
Color Plate 30 Visualization of thermohaline flows
in the Carribean Sea using streamtubes colored by
water temperature.
(Courtesy of David Munich, High Performance Computing
Center, University of New Mexico.)
لوح رنگی ۳۱ — Particle System
مراحل نمایشدادهشده شامل mesh ذرات، مدل Lexus با سطح، وزش باد و جداشدن mesh از خودرو و در نهایت دورشدن mesh است.
Color Plate 31 Particle system.
(Courtesy of Team One Advertising.)
(a) Mesh of particles
b) Model of Lexus with surface
(c) Wind blowing mesh off Lexus
(d) Mesh blown away from Lexus