Princeton University Library Catalog

Computer graphics : principles and practice / John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley.

Hughes, John F., 1955- [Browse]
Upper Saddle River, New Jersey : Addison-Wesley, 2014.
Third edition.
xivii, 1209 pages : illustrations (colour) ; 26 cm
Summary note:
"Computer Graphics: Principles and Practice, Third Edition, remains ... [an] authoritative introduction to the field. The first edition, the original "Foley and van Dam," helped to define computer graphics and how it could be taught. The second edition became an even more comprehensive resource for practitioners and students alike. This third edition has been completely rewritten to provide detailed and up-to-date coverage of key concepts, algorithms, technologies, and applications. The authors explain the principles, as well as the mathematics, underlying computer graphics--knowledge that is essential for successful work both now and in the future. Early chapters show how to create 2D and 3D pictures right away, supporting experimentation. Later chapters, covering a broad range of topics, demonstrate more sophisticated approaches. Sections on current computer graphics practice show how to apply given principles in common situations, such as how to approximate an ideal solution on available hardware, or how to represent a data structure more efficiently. Topics are reinforced by exercises, programming problems, and hands-on projects. This revised edition features: new coverage of the rendering equation, GPU architecture considerations, and importance- sampling in physically based rendering; an emphasis on modern approaches, as in a new chapter on probability theory for use in Monte-Carlo rendering; implementations of GPU shaders, software rendering, and graphics-intensive 3D interfaces; 3D real-time graphics platforms--their design goals and trade-offs--including new mobile and browser platforms; and programming and debugging approaches unique to graphics development. The text and hundreds of figures are presented in full color throughout the book. Programs are written in C++, C♯, WPF, or pseudocode--whichever language is most effective for a given example. Source code and figures from the book, testbed programs, and additional content will be available from the authors' website ( or the publisher's website ( Instructor resources will be available from the publisher."--Publisher's description.
Revised edition of: Computer graphics / James D. Foley [and others]. -- 2nd ed. -- Reading, Mass. : Addison-Wesley, 1995.
Bibliographic references:
Includes bibliographical references and index.
  • Introduction : A brief history ; An illuminating example ; Goals, resources, and appropriate abstractions ; Some numbers and orders of magnitude in graphics ; The graphics pipeline ; Relationship of graphics to art, design, and perception ; Basic graphics systems ; Polygon drawing as a black box ; Interaction in graphics systems ; Different kinds of graphics applications ; Different kinds of graphics packages ; Building blocks for realistic rendering: a brief overview ; Learning computer graphics -- Introduction to 2D graphics using WPF : Overview of the 2D graphics pipeline ; The evolution of 2D graphics platforms ; Specifying a 2D scene using WPF ; Dynamics in 2D graphics using WPF ; Supporting a variety of form factors -- An ancient renderer made modern : A Dürer woodcut ; Visibility ; Implementation ; The program ; Limitations -- A 2D graphics test bed : Details of the test bed ; The C♯ code ; Animation ; Interaction ; An application of the test bed -- An introduction to human visual perception : The visual system ; The eye ; Constancy and its influences ; Continuation ; Shadows -- Introduction to fixed-function 3D graphics and hierarchical modeling : Introducing mesh and lighting specification ; Curved-surface representation and rendering ; Surface texture in WPF ; The WPF reflectance model ; Hierarchical modeling using a scene graph -- Essential mathematics and the geometry of 2-space and 3-space : Notation ; Sets ; Functions ; Coordinates ; Operations on coordinates ; Intersections of lines ; Intersections, more generally ; Triangles ; Polygons -- A simple way to describe shape in 2D and 3D : "Meshes" in 2D: polylines ; Meshes in 3D -- Functions on meshes : code for barycentric interpolation ; Limitations of piecewise linear extension ; Smoother extensions ; Functions multiply defined at vertices ; Application: texture mapping -- Transformations in two dimensions : Five examples ; Important facts about transformations ; Translation ; Points and vectors again ; Why use 3 x 3 matrices instead of a matrix and a vector? ; Windowing transformations ; Building 3D transformations Another example of building a 2D transformation ; Coordinate frames ; Application: rendering from a scene graph ; Transforming vectors and covectors ; More general transformations ; Transformations versus interpolation -- Transformations in three dimensions : Rotations ; Comparing representations ; Rotations versus rotation specifications ; Interpolating matrix transformations ; Virtual trackball and arcball -- A 2D and 3D transformation library for graphics : Points and vectors ; Transformations ; Specifications of transformations ; Implementation ; Three dimensions ; Associated transformations ; Other structures ; Other approaches -- Camera specifications and transformations : A 2D example ; Perspective camera specification ; Building transformations from a view specification ; Camera transformations and the rasterizing renderer pipeline ; Perspective and z-values ; Camera transformations and the modeling hierarchy ; Orthographic cameras -- Standard approximations and representations : Evaluating representations ; Real numbers ; Building blocks of ray optics ; Large-scale object geometry ; Distant objects ; Volumetric models ; Scene graphs ; Material models ; Translucency and blending ; Luminaire models -- Ray casting and rasterization : High-level design overview ; Implementation platform ; A ray-casting renderer ; Intermezzo ; Rasterization ; Rendering with a rasterization API ; Performance and optimization -- Survey of real-time 3D graphics platforms : The programmer's model: OpenGL compatibility (fixed-function) profile ; The programmer's model: OpenGL programmable pipeline ; Architectures of graphics applications ; 3D on other platforms -- Image representation and manipulation : What is an image? ; Image file formats ; Image compositing ; Other image types ; MIP maps -- Images and signal processing : Historical motivation ; Convolution ; Properties of convolution ; Convolution-like computations ; Reconstruction ; Function classes ; Sampling ; Mathematical considerations ; The Fourier transform: definitions ; The Fourier transform of a function on an interval ; Generalizations to larger intervals and all of R ; Examples of Fourier Transforms ; An approximation of sampling ; Examples involving limits ; The inverse Fourier transform ; Applications ; Reconstruction and band limiting ; Aliasing revisited -- Enlarging and shrinking images : Enlarging and image ; Scaling down an image ; Making the algorithms practical ; Finite-support approximations ; Other image operations and efficiency -- Textures and texture mapping : Variations of texturing ; Building tangent vectors from a parameterization ; Codomains for texture maps ; Assigning texture coordinates ; Application examples ; Sampling, aliasing, filtering, and reconstruction ; Texture synthesis.
  • Interaction techniques : User interfaces and computer graphics ; Multitouch interaction for 2D manipulation ; Mouse-based object manipulation in 3D ; Mouse-based camera manipulation: Unicam ; Choosing the best interface ; Some interface examples -- Splines and subdivision curves : Basic polynomial curves ; Fitting a curve segment between two curves: the Hermite curve ; Gluing together curves and the Catmull-Rom spline ; Cubic B-splines ; Subdivision curves -- Splines and subdivision surfaces : Bézier patches ; Catmull-Clark subdivision surfaces ; Modeling with subdivision surfaces -- Implicit representations of shape : Implicit curves ; Implicit surfaces ; Representing implicit functions ; Other representations of implicit functions ; Conversion to polyhedral meshes ; Conversion from polyhedral meshes to implicits ; Texturing implicit models ; Ray tracing implicit surfaces ; Implicit shapes in animation -- Meshes : Mesh topology ; Mesh geometry ; Level of detail ; Mesh applications 1: marching cubes, mesh repair, and mesh improvement ; Mesh applications 2: deformation transfer and triangle-order optimization -- Light : The physics of light ; The microscopic view ; The wave nature of light ; Fresnel's law and polarization ; Modeling light as a continuous flow ; Measuring light ; Other measurements ; The derivative approach ; Reflectance -- Materials and scattering : Object-level scattering ; Surface scattering ; Kinds of scattering ; Empirical and phenomenological models for scattering ; Measured models ; Physical models for specular and diffuse reflection ; Physically based scattering models ; Representation choices ; Criteria for evaluation ; Variations across surfaces ; Suitability for human use ; More complex scattering ; Software interface to material models -- Color : Spectral distribution of light ; The phenomenon of color perception and the physiology of the eye ; The perception of color ; Color description ; Conventional color wisdom ; Color perception strengths and weaknesses ; Standard description of colors ; Perceptual color spaces ; Intermezzo ; White ; Encoding of intensity, exponents, and gamma correction ; Describing color ; CMY and CMYK color ; The YIQ color model ; Video standards ; HSV and HLS ; Interpolating color ; Using color in computer graphics -- Light transport : Light transport ; A peek ahead ; The rendering equation for general scattering ; Scattering, revisited ; A worked example ; Solving the rendering equation ; The classification of light-transport paths -- Probability and Monte Carlo integration : Numerical integration ; Random variables and randomized algorithms ; Continuum probability, continued ; Importance sampling and integration ; Mixed probabilities -- Computing solutions to the rendering equation: theoretical approaches : Approximate solutions of equations ; Method 1: Approximating the equation ; Method 2: Restricting the domain ; Method 3: Using statistical estimators ; Method 4: Bisection ; Other approaches ; The rendering equation, revisited ; What do we need to compute? ; The discretization approach: radiosity ; Separation of transport paths ; Series solution of the rendering equation ; Alternative formulations of light transport ; Approximations of the series solution ; Approximating scattering: spherical harmonics ; Introduction to Monte Carlo approaches ; Tracing paths ; Path tracing and Markov chains ; Photon mapping -- Rendering in practice : Representations ; Surface representations and representing BSDFs locally ; Representations of light ; A basic path tracer ; Photon mapping ; Generalizations ; Rendering and debugging -- Shaders : The graphics pipeline in several forms ; Historical development ; A simple graphics program with shaders ; A phong shader ; Environment mapping ; Two versions of toon shading ; Basic XToon shading -- Expressive rendering : The challenges of expressive rendering ; Marks and strokes ; Perception and salient features ; Geometric curve extraction ; Abstraction -- Motion : Motivating examples ; Considerations for rendering ; Representation ; Pose interpolation ; Dynamics ; Remarks on stability in dynamics -- Visibility determination : Ray casting ; The depth buffer ; List-priority algorithms ; Frustum culling and clipping ; Backface culling ; Hierarchical occlusion culling ; Sector-based conservative visibility ; Partial coverage -- Spatial data structures : Programmatic interfaces ; Characterizing data structures ; Overview of kd structures ; List ; Trees ; Grid -- Modern graphics hardware " NVIDIA GeForce 9800 GTX ; Architecture and implementation ; Parallelism ; Programmability ; Texture, memory, and latency ; Locality ; Organizational alternatives ; GPUs as compute engines.
Computer graphics [Browse]
  • 9780321399526 (hardcover ; alk. paper)
  • 0321399528 (hardcover ; alk. paper)
Other views:
Staff view