Drawing on an impressive roster of experts in the field, Fundamentals of Computer Graphics, Fifth Edition offers an ideal resource for computer course curricula as well as a user-friendly personal or professional reference.
Focusing on geometric intuition, this book gives the necessary information for understanding how images get onto the screen by using the complementary approaches of ray tracing and rasterization. It covers topics common to an introductory course, such as sampling theory, texture mapping, spatial data structure, and splines. It also includes a number of contributed chapters from authors known for their expertise and clear way of explaining concepts.
HIGHLIGHTS
The fifth edition of Fundamentals of Computer Graphics continues to provide an outstanding and comprehensive introduction to basic computer graphic technology and theory. It retains an informal and intuitive style while improving precision, consistency, and completeness of material, allowing aspiring and experienced graphics programmers to better understand and apply foundational principles to the development of efficient code in creating film, game, or web designs.
Author(s): Steve Marschner, Peter Shirley
Edition: 5
Publisher: A K Peters/CRC Press
Year: 2021
Language: English
Pages: 700
Tags: Computer Graphics; Rasterization; Ray Tracing; Sampling Theory; Texture Mapping; Spatial Data Structure; Splines
Cover
Half Title
Title Page
Copyright Page
Table of Contents
Preface
Acknowledgments
Authors
1 Introduction
1.1 Graphics Areas
1.2 Major Applications
1.3 Graphics APIs
1.4 Graphics Pipeline
1.5 Numerical Issues
1.6 Effciency
1.7 Designing and Coding Graphics Programs
2 Miscellaneous Math
2.1 Sets and Mappings
2.2 Solving Quadratic Equations
2.3 Trigonometry
2.4 Vectors
2.5 Integration
2.6 Density Functions
2.7 Curves and Surfaces
2.8 Linear Interpolation
2.9 Triangles
2.10 Discrete probability
2.11 Continuous probability
2.12 Monte Carlo Integration
3 Raster Images
3.1 Raster Devices
3.2 Images, Pixels, and Geometry
3.3 RGB Color
3.4 Alpha Compositing
4 Ray Tracing
4.1 The Basic Ray-Tracing Algorithm
4.2 Perspective
4.3 Computing Viewing Rays
4.4 Ray-Object Intersection
4.5 Shading
4.6 Historical Notes
5 Surface Shading
5.1 Point-like light sources
5.2 Basic reflection models
5.3 Ambient illumination
6 Linear Algebra
6.1 Determinants
6.2 Matrices
6.3 Computing with Matrices and Determinants
6.4 Eigenvalues and Matrix Diagonalization
7 Transformation Matrices
7.1 2D Linear Transformations
7.2 3D Linear Transformations
7.3 Translation and Affine Transformations
7.4 Inversesof Transformation Matrices
7.5 Coordinate Transformations
8 Viewing
8.1 Viewing Transformations
8.2 Projective Transformations
8.3 Perspective Projection
8.4 Some Properties of the Perspective Transform
8.5 Field-of-View
9 The Graphics Pipeline
9.1 Rasterization
9.2 Operations Before and After Rasterization
9.3 Simple Antialiasing
9.4 Culling Primitivesfor Efficiency
10 Signal Processing
10.1 Digital Audio: Sampling in 1D
10.2 Convolution
10.3 Convolution Filters
10.4 Signal Processing for Images
10.5 Sampling Theory
11 Texture Mapping
11.1 Looking Up Texture Values
11.2 Texture Coordinate Functions
11.3 Antialiasing Texture Lookups
11.4 Applications of Texture Mapping
11.5 Procedural 3D Textures
12 Data Structures for Graphics
12.1 Triangle Meshes
12.2 Scene Graphs
12.3 Spatial Data Structures
12.4 BSP Trees for Visibility
12.5 Tiling Multidimensional Arrays
13 Sampling
13.1 Integration
13.2 Continuous Probability
13.3 Monte Carlo Integration
13.4 Choosing Random Points
14 Physics-Based Rendering
14.1 Photons
14.2 Smooth Metals
14.3 Smooth Dielectrics
14.4 Dielectrics with Subsurface Scattering
14.5 A Brute Force Photon Tracer
14.6 Radiometry
14.7 Radiometry of Scattering
14.8 Transport Equation
14.9 Materialsin Practice
14.10 Monte Carlo Ray Tracing
15 Curves
15.1 Curves
15.2 Curve Properties
15.3 Polynomial Pieces
15.4 Putting Pieces Together
15.5 Cubics
15.6 Approximating Curves
15.7 Summary
16 Computer Animation
16.1 Principles of Animation
16.2 Keyframing
16.3 Deformations
16.4 Character Animation
16.5 Physics-Based Animation
16.6 Procedural Techniques
16.7 Groups of Objects
17 Using Graphics Hardware
17.1 Hardware Overview
17.2 What Is Graphics Hardware
17.3 Heterogeneous Multiprocessing
17.4 Graphics Hardware Programming: Buffers,State, and Shaders
17.5 State Machine
17.6 Basic OpenGL Application Layout
17.7 Geometry
17.8 A First Look at Shaders
17.9 Vertex Buffer Objects
17.10 Vertex Array Objects
17.11 Transformation Matrices
17.12 Shading with Per-Vertex Attributes
17.13 Shading in the Fragment Processor
17.14 Meshes and Instancing
17.15 Texture Objects
17.16 Object-Oriented Design for Graphics Hardware Programming
17.17 Continued Learning
18 Color
18.1 Colorimetry
18.2 Color Spaces
18.3 Chromatic Adaptation
18.4 Color Appearance
19 Visual Perception
19.1 Vision Science
19.2 Visual Sensitivity
19.3 Spatial Vision
19.4 Objects, Locations, and Events
19.5 Picture Perception
20 Tone Reproduction
20.1 Classification
20.2 Dynamic Range
20.3 Color
20.4 Image Formation
20.5 Frequency-Based Operators
20.6 Gradient-Domain Operators
20.7 Spatial Operators
20.8 Division
20.9 Sigmoids
20.10 Other Approaches
20.11 Night Tonemapping
20.12 Discussion
21 Implicit Modeling
21.1 Implicit Functions, Skeletal Primitives, and Summation Blending
21.2 Rendering
21.3 Space Partitioning
21.4 Moreon Blending
21.5 Constructive Solid Geometry
21.6 Warping
21.7 Precise Contact Modeling
21.8 The Blob Tree
21.9 Interactive Implicit Modeling Systems
22 Computer Graphicsin Games
22.1 Platforms
22.2 Limited Resources
22.3 Optimization Techniques
22.4 Game Types
22.5 The Game Production Process
23 Visualization
23.1 Background
23.2 Data Types
23.3 Human-Centered Design Process
23.4 Visual Encoding Principles
23.5 Interaction Principles
23.6 Composite and Adjacent Views
23.7 Data Reduction
23.8 Examples
References
Index