Book description
Computer Graphics: Principles and Practice, Third Edition, remains the most 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
- 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 (cgpp.net) or the publisher's website (informit.com/title/9780321399526). Instructor resources will be available from the publisher. The wealth of information in this book makes it the essential resource for anyone working in or studying any aspect of computer graphics.
Table of contents
- About This eBook
- Title Page
- Copyright Page
- Dedication Page
- Contents at a Glance
- Contents
- Preface
- About the Authors
-
Chapter 1. Introduction
- 1.1. An Introduction to Computer Graphics
- 1.2. A Brief History
- 1.3. An Illuminating Example
- 1.4. Goals, Resources, and Appropriate Abstractions
- 1.5. Some Numbers and Orders of Magnitude in Graphics
- 1.6. The Graphics Pipeline
- 1.7. Relationship of Graphics to Art, Design, and Perception
- 1.8. Basic Graphics Systems
- 1.9. Polygon Drawing As a Black Box
- 1.10. Interaction in Graphics Systems
- 1.11. Different Kinds of Graphics Applications
- 1.12. Different Kinds of Graphics Packages
- 1.13. Building Blocks for Realistic Rendering: A Brief Overview
- 1.14. Learning Computer Graphics
- Chapter 2. Introduction to 2D Graphics Using WPF
- Chapter 3. An Ancient Renderer Made Modern
- Chapter 4. A 2D Graphics Test Bed
- Chapter 5. An Introduction to Human Visual Perception
- Chapter 6. Introduction to Fixed-Function 3D Graphics and Hierarchical Modeling
- Chapter 7. Essential Mathematics and the Geometry of 2-Space and 3-Space
- Chapter 8. A Simple Way to Describe Shape in 2D and 3D
- Chapter 9. Functions on Meshes
-
Chapter 10. Transformations in Two Dimensions
- 10.1. Introduction
- 10.2. Five Examples
- 10.3. Important Facts about Transformations
- 10.4. Translation
- 10.5. Points and Vectors Again
- 10.6. Why Use 3 × 3 Matrices Instead of a Matrix and a Vector?
- 10.7. Windowing Transformations
- 10.8. Building 3D Transformations
- 10.9. Another Example of Building a 2D Transformation
- 10.10. Coordinate Frames
- 10.11. Application: Rendering from a Scene Graph
- 10.12. Transforming Vectors and Covectors
- 10.13. More General Transformations
- 10.14. Transformations versus Interpolation
- 10.15. Discussion and Further Reading
- 10.16. Exercises
- Chapter 11. Transformations in Three Dimensions
- Chapter 12. A 2D and 3D Transformation Library for Graphics
-
Chapter 13. Camera Specifications and Transformations
- 13.1. Introduction
- 13.2. A 2D Example
- 13.3. Perspective Camera Specification
- 13.4. Building Transformations from a View Specification
- 13.5. Camera Transformations and the Rasterizing Renderer Pipeline
- 13.6. Perspective and z-values
- 13.7. Camera Transformations and the Modeling Hierarchy
- 13.8. Orthographic Cameras
- 13.9. Discussion and Further Reading
- 13.10. Exercises
-
Chapter 14. Standard Approximations and Representations
- 14.1. Introduction
- 14.2. Evaluating Representations
- 14.3. Real Numbers
- 14.4. Building Blocks of Ray Optics
- 14.5. Large-Scale Object Geometry
- 14.6. Distant Objects
- 14.7. Volumetric Models
- 14.8. Scene Graphs
- 14.9. Material Models
- 14.10. Translucency and Blending
- 14.11. Luminaire Models
- 14.12. Discussion
- 14.13. Exercises
- Chapter 15. Ray Casting and Rasterization
- Chapter 16. Survey of Real-Time 3D Graphics Platforms
- Chapter 17. Image Representation and Manipulation
-
Chapter 18. Images and Signal Processing
- 18.1. Introduction
- 18.2. Historical Motivation
- 18.3. Convolution
- 18.4. Properties of Convolution
- 18.5. Convolution-like Computations
- 18.6. Reconstruction
- 18.7. Function Classes
- 18.8. Sampling
- 18.9. Mathematical Considerations
- 18.10. The Fourier Transform: Definitions
- 18.11. The Fourier Transform of a Function on an Interval
- 18.12. Generalizations to Larger Intervals and All of R
- 18.13. Examples of Fourier Transforms
- 18.14. An Approximation of Sampling
- 18.15. Examples Involving Limits
- 18.16. The Inverse Fourier Transform
- 18.17. Properties of the Fourier Transform
- 18.18. Applications
- 18.19. Reconstruction and Band Limiting
- 18.20. Aliasing Revisited
- 18.21. Discussion and Further Reading
- 18.22. Exercises
- Chapter 19. Enlarging and Shrinking Images
-
Chapter 20. Textures and Texture Mapping
- 20.1. Introduction
- 20.2. Variations of Texturing
- 20.3. Building Tangent Vectors from a Parameterization
- 20.4. Codomains for Texture Maps
- 20.5. Assigning Texture Coordinates
- 20.6. Application Examples
- 20.7. Sampling, Aliasing, Filtering, and Reconstruction
- 20.8. Texture Synthesis
- 20.9. Data-Driven Texture Synthesis
- 20.10. Discussion and Further Reading
- 20.11. Exercises
-
Chapter 21. Interaction Techniques
- 21.1. Introduction
- 21.2. User Interfaces and Computer Graphics
- 21.3. Multitouch Interaction for 2D Manipulation
- 21.4. Mouse-Based Object Manipulation in 3D
- 21.5. Mouse-Based Camera Manipulation: Unicam
- 21.6. Choosing the Best Interface
- 21.7. Some Interface Examples
- 21.8. Discussion and Further Reading
- 21.9. Exercises
- Chapter 22. Splines and Subdivision Curves
- Chapter 23. Splines and Subdivision Surfaces
-
Chapter 24. Implicit Representations of Shape
- 24.1. Introduction
- 24.2. Implicit Curves
- 24.3. Implicit Surfaces
- 24.4. Representing Implicit Functions
- 24.5. Other Representations of Implicit Functions
- 24.6. Conversion to Polyhedral Meshes
- 24.7. Conversion from Polyhedral Meshes to Implicits
- 24.8. Texturing Implicit Models
- 24.9. Ray Tracing Implicit Surfaces
- 24.10. Implicit Shapes in Animation
- 24.11. Discussion and Further Reading
- 24.12. Exercises
- Chapter 25. Meshes
-
Chapter 26. Light
- 26.1. Introduction
- 26.2. The Physics of Light
- 26.3. The Microscopic View
- 26.4. The Wave Nature of Light
- 26.5. Fresnel’s Law and Polarization
- 26.6. Modeling Light as a Continuous Flow
- 26.7. Measuring Light
- 26.8. Other Measurements
- 26.9. The Derivative Approach
- 26.10. Reflectance
- 26.11. Discussion and Further Reading
- 26.12. Exercises
-
Chapter 27. Materials and Scattering
- 27.1. Introduction
- 27.2. Object-Level Scattering
- 27.3. Surface Scattering
- 27.4. Kinds of Scattering
- 27.5. Empirical and Phenomenological Models for Scattering
- 27.6. Measured Models
- 27.7. Physical Models for Specular and Diffuse Reflection
- 27.8. Physically Based Scattering Models
- 27.9. Representation Choices
- 27.10. Criteria for Evaluation
- 27.11. Variations across Surfaces
- 27.12. Suitability for Human Use
- 27.13. More Complex Scattering
- 27.14. Software Interface to Material Models
- 27.15. Discussion and Further Reading
- 27.16. Exercises
-
Chapter 28. Color
- 28.1. Introduction
- 28.2. Spectral Distribution of Light
- 28.3. The Phenomenon of Color Perception and the Physiology of the Eye
- 28.4. The Perception of Color
- 28.5. Color Description
- 28.6. Conventional Color Wisdom
- 28.7. Color Perception Strengths and Weaknesses
- 28.8. Standard Description of Colors
- 28.9. Perceptual Color Spaces
- 28.10. Intermezzo
- 28.11. White
- 28.12. Encoding of Intensity, Exponents, and Gamma Correction
- 28.13. Describing Color
- 28.14. CMY and CMYK Color
- 28.15. The YIQ Color Model
- 28.16. Video Standards
- 28.17. HSV and HLS
- 28.18. Interpolating Color
- 28.19. Using Color in Computer Graphics
- 28.20. Discussion and Further Reading
- 28.21. Exercises
- Chapter 29. Light Transport
- Chapter 30. Probability and Monte Carlo Integration
-
Chapter 31. Computing Solutions to the Rendering Equation: Theoretical Approaches
- 31.1. Introduction
- 31.2. Approximate Solutions of Equations
- 31.3. Method 1: Approximating the Equation
- 31.4. Method 2: Restricting the Domain
- 31.5. Method 3: Using Statistical Estimators
- 31.6. Method 4: Bisection
- 31.7. Other Approaches
- 31.8. The Rendering Equation, Revisited
- 31.9. What Do We Need to Compute?
- 31.10. The Discretization Approach: Radiosity
- 31.11. Separation of Transport Paths
- 31.12. Series Solution of the Rendering Equation
- 31.13. Alternative Formulations of Light Transport
- 31.14. Approximations of the Series Solution
- 31.15. Approximating Scattering: Spherical Harmonics
- 31.16. Introduction to Monte Carlo Approaches
- 31.17. Tracing Paths
- 31.18. Path Tracing and Markov Chains
- 31.19. Photon Mapping
- 31.20. Discussion and Further Reading
- 31.21. Exercises
- Chapter 32. Rendering in Practice
- Chapter 33. Shaders
- Chapter 34. Expressive Rendering
- Chapter 35. Motion
-
Chapter 36. Visibility Determination
- 36.1. Introduction
- 36.2. Ray Casting
- 36.3. The Depth Buffer
- 36.4. List-Priority Algorithms
- 36.5. Frustum Culling and Clipping
- 36.6. Backface Culling
- 36.7. Hierarchical Occlusion Culling
- 36.8. Sector-based Conservative Visibility
- 36.9. Partial Coverage
- 36.10. Discussion and Further Reading
- 36.11. Exercise
- Chapter 37. Spatial Data Structures
- Chapter 38. Modern Graphics Hardware
- List of Principles
- Bibliography
- Index
Product information
- Title: Hughes/Computer Graphics, 3/E
- Author(s):
- Release date: August 2013
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780133373721
You might also like
book
Fundamentals of Computer Graphics, 5th Edition
Drawing on an impressive roster of experts in the field, Fundamentals of Computer Graphics, Fifth Edition …
book
Fundamentals of Computer Graphics, 4th Edition
Drawing on an impressive roster of experts in the field, Fundamentals of Computer Graphics, Fourth Edition …
book
Real-Time 3D Graphics with WebGL 2 - Second Edition
A comprehensive guide with 80+ examples on 3D programming in WebGL 2, covering computer graphics topics …
book
A Tour of C++, 3rd Edition
In A Tour of C++, Third Edition, Bjarne Stroustrup provides an overview of ISO C++, C++20, …