Home Page Icon
Home Page
Table of Contents for
Fundamentas of Computer Graphics
Close
Fundamentas of Computer Graphics
by Peter Shirley, Steve Marschner
Fundamentals of Computer Graphics, 4th Edition
Preliminaries
Preface
About the Cover
Online Resources
Acknowledgments
Chapter 1 Introduction
1.1 Graphics Areas
1.2 Major Applications
1.3 Graphics APIs
1.4 Graphics Pipeline
1.5 Numerical Issues
1.6 Efficiency
1.7 Designing and Coding Graphics Programs
1.7.1 Class Design
1.7.2 Float vs. Double
1.7.3 Debugging Graphics Programs
The Scientific Method
Images as Coded Debugging Output
Using a Debugger
Data Visualization for Debugging
Notes
Chapter 2 Miscellaneous Math
2.1 Sets and Mappings
2.1.1 Inverse Mappings
2.1.2 Intervals
2.1.3 Logarithms
2.2 Solving Quadratic Equations
2.3 Trigonometry
2.3.1 Angles
2.3.2 Trigonometric Functions
2.3.3 Useful Identities
2.4 Vectors
2.4.1 Vector Operations
2.4.2 Cartesian Coordinates of a Vector
2.4.3 Dot Product
2.4.4 Cross Product
2.4.5 Orthonormal Bases and Coordinate Frames
2.4.6 Constructing a Basis from a Single Vector
2.4.7 Constructing a Basis from Two Vectors
2.4.8 Squaring Up a Basis
2.5 Curves and Surfaces
2.5.1 2D Implicit Curves
2.5.2 The 2D Gradient
Implicit 2D Lines
Implicit Quadric Curves
2.5.3 3D Implicit Surfaces
2.5.4 Surface Normal to an Implicit Surface
2.5.5 Implicit Planes
3D Quadric Surfaces
3D Curves from Implicit Surfaces
2.5.6 2D Parametric Curves
2D Parametric Lines
2D Parametric Circles
2.5.7 3D Parametric Curves
3D Parametric Lines
2.5.8 3D Parametric Surfaces
2.5.9 Summary of Curves and Surfaces
2.6 Linear Interpolation
2.7 Triangles
2.7.1 2D Triangles
2.7.2 3D Triangles
Frequently Asked Questions
Notes
Exercises
Figure 2.1
Figure 2.1
Figure 2.2
Figure 2.3
Figure 2.4
Figure 2.5
Figure 2.6
Figure 2.7
Figure 2.8
Figure 2.9
Figure 2.10
Figure 2.11
Figure 2.12
Figure 2.13
Figure 2.14
Figure 2.15
Figure 2.16
Figure 2.17
Figure 2.18
Figure 2.19
Figure 2.20
Figure 2.21
Figure 2.22
Figure 2.23
Figure 2.24
Figure 2.25
Figure 2.26
Figure 2.27
Figure 2.28
Figure 2.29
Figure 2.30
Figure 2.31
Figure 2.32
Figure 2.33
Figure 2.34
Figure 2.35
Figure 2.36
Figure 2.37
Figure 2.38
Figure 2.39
Figure 2.40
Chapter 3 Raster Images
3.1 Raster Devices
3.1.1 Displays
3.1.2 Hardcopy Devices
3.1.3 Input Devices
3.2 Images, Pixels, and Geometry
3.2.1 Pixel Values
3.2.2 Monitor Intensities and Gamma
3.3 RGB Color
3.4 Alpha Compositing
3.4.1 Image Storage
Frequently Asked Questions
Exercise
Figure 3.1
Figure 3.1
Figure 3.2
Figure 3.3
Figure 3.4
Figure 3.5
Figure 3.6
Figure 3.7
Figure 3.8
Figure 3.9
Figure 3.10
Figure 3.11
Figure 3.12
Figure 3.13
Figure 3.14
Chapter 4 Ray Tracing
4.1 The Basic Ray-Tracing Algorithm
4.2 Perspective
4.3 Computing Viewing Rays
4.3.1 Orthographic Views
4.3.2 Perspective Views
4.4 Ray-Object Intersection
4.4.1 Ray-Sphere Intersection
4.4.2 Ray-Triangle Intersection
4.4.3 Ray-Polygon Intersection
4.4.4 Intersecting a Group of Objects
4.5 Shading
4.5.1 Lambertian Shading
4.5.2 Blinn-Phong Shading
4.5.3 Ambient Shading
4.5.4 Multiple Point Lights
4.6 A Ray-Tracing Program
4.6.1 Object-Oriented Design for a Ray-Tracing Program
4.7 Shadows
4.8 Ideal Specular Reflection
4.9 Historical Notes
Frequently Asked Questions
Exercises
Figure 4.1
Figure 4.1
Figure 4.2
Figure 4.3
Figure 4.4
Figure 4.5
Figure 4.6
Figure 4.7
Figure 4.8
Figure 4.9
Figure 4.10
Figure 4.11
Figure 4.12
Figure 4.13
Figure 4.14
Figure 4.15
Figure 4.16
Figure 4.17
Figure 4.18
Figure 4.19
Figure 4.20
Chapter 5 Linear Algebra
5.1 Determinants
5.2 Matrices
5.2.1 Matrix Arithmetic
5.2.2 Operations on Matrices
5.2.3 Vector Operations in Matrix Form
5.2.4 Special Types of Matrices
5.3 Computing with Matrices and Determinants
5.3.1 Computing Inverses
5.3.2 Linear Systems
5.4 Eigenvalues and Matrix Diagonalization
5.4.1 Singular Value Decomposition
Frequently Asked Questions
Notes
Exercises
Figure 5.1
Figure 5.1
Figure 5.2
Figure 5.3
Figure 5.4
Figure 5.5
Figure 5.6
Figure 5.7
Figure 5.8
Chapter 6 Transformation Matrices
6.1 2D Linear Transformations
6.1.1 Scaling
6.1.2 Shearing
6.1.3 Rotation
6.1.4 Reflection
6.1.5 Composition and Decomposition of Transformations
6.1.6 Decomposition of Transformations
Symmetric Eigenvalue Decomposition
Singular Value Decomposition
Paeth Decomposition of Rotations
6.2 3D Linear Transformations
6.2.1 Arbitrary 3D Rotations
6.2.2 Transforming Normal Vectors
6.3 Translation and Affine Transformations
6.4 Inverses of Transformation Matrices
6.5 Coordinate Transformations
Frequently Asked Questions
Notes
Exercises
Figure 6.1
Figure 6.1
Figure 6.2
Figure 6.3
Figure 6.4
Figure 6.5
Figure 6.6
Figure 6.7
Figure 6.8
Figure 6.9
Figure 6.10
Figure 6.11
Figure 6.13
Figure 6.14
Figure 6.15
Figure 6.12
Figure 6.16
Figure 6.17
Figure 6.18
Figure 6.19
Figure 6.20
Chapter 7 Viewing
7.1 Viewing Transformations
7.1.1 The Viewport Transformation
7.1.2 The Orthographic Projection Transformation
7.1.3 The Camera Transformation
7.2 Projective Transformations
7.3 Perspective Projection
7.4 Some Properties of the Perspective Transform
7.5 Field-of-View
Frequently Asked Questions
Notes
Exercises
Figure 7.1
Figure 7.1
Figure 7.2
Figure 7.3
Figure 7.4
Figure 7.5
Figure 7.6
Figure 7.7
Figure 7.8
Figure 7.9
Figure 7.10
Figure 7.11
Figure 7.12
Figure 7.13
Figure 7.14
Chapter 8 The Graphics Pipeline
8.1 Rasterization
8.1.1 Line Drawing
Line Drawing Using Implicit Line Equations
8.1.2 Triangle Rasterization
Dealing with Pixels on Triangle Edges
8.1.3 Clipping
8.1.4 Clipping Before the Transform (Option 1)
8.1.5 Clipping in Homogeneous Coordinates (Option 2)
8.1.6 Clipping against a Plane
8.2 Operations Before and After Rasterization
8.2.1 Simple 2D Drawing
8.2.2 A Minimal 3D Pipeline
8.2.3 Using a z-Buffer for Hidden Surfaces
Precision Issues
8.2.4 Per-vertex Shading
8.2.5 Per-fragment Shading
8.2.6 Texture Mapping
8.2.7 Shading Frequency
8.3 Simple Antialiasing
8.4 Culling Primitives for Efficiency
8.4.1 View Volume Culling
8.4.2 Backface Culling
Frequently Asked Questions
Notes
Exercises
Figure 8.1
Figure 8.1
Figure 8.2
Figure 8.3
Figure 8.4
Figure 8.5
Figure 8.6
Figure 8.7
Figure 8.8
Figure 8.9
Figure 8.10
Figure 8.11
Figure 8.12
Figure 8.13
Figure 8.14
Figure 8.15
Chapter 9 Signal Processing
9.1 Digital Audio: Sampling in 1D
9.1.1 Sampling Artifacts and Aliasing
9.2 Convolution
9.2.1 Moving Averages
9.2.2 Discrete Convolution
Convolution Filters
Properties of Convolution
9.2.3 Convolution as a Sum of Shifted Filters
9.2.4 Convolution with Continuous Functions
The Dirac Delta Function
9.2.5 Discrete-Continuous Convolution
9.2.6 Convolution in More Than One Dimension
9.3 Convolution Filters
9.3.1 A Gallery of Convolution Filters
The Box Filter
The Tent Filter
The Gaussian Filter
The B-Spline Cubic Filter
The Catmull-Rom Cubic Filter
The Mitchell-Netravali Cubic Filter
9.3.2 Properties of Filters
Separable Filters
9.4 Signal Processing for Images
9.4.1 Image Filtering Using Discrete Filters
9.4.2 Antialiasing in Image Sampling
9.4.3 Reconstruction and Resampling
9.5 Sampling Theory
9.5.1 The Fourier Transform
9.5.2 Convolution and the Fourier Transform
9.5.3 A Gallery of Fourier Transforms
9.5.4 Dirac Impulses in Sampling Theory
9.5.5 Sampling and Aliasing
Preventing Aliasing in Sampling
Preventing Aliasing in Reconstruction
Preventing Aliasing in Resampling
9.5.6 Ideal Filters vs. Useful Filters
Exercises
Figure 9.1
Figure 9.1
Figure 9.2
Figure 9.3
Figure 9.4
Figure 9.5
Figure 9.6
Figure 9.7
Figure 9.8
Figure 9.9
Figure 9.10
Figure 9.11
Figure 9.12
Figure 9.13
Figure 9.14
Figure 9.15
Figure 9.16
Figure 9.17
Figure 9.18
Figure 9.19
Figure 9.20
Figure 9.21
Figure 9.22
Figure 9.23
Figure 9.24
Figure 9.25
Figure 9.26
Figure 9.27
Figure 9.28
Figure 9.29
Figure 9.30
Figure 9.31
Figure 9.32
Figure 9.33
Figure 9.34
Figure 9.35
Figure 9.36
Figure 9.37
Figure 9.38
Figure 9.39
Figure 9.40
Figure 9.41
Figure 9.42
Figure 9.43
Figure 9.44
Figure 9.45
Figure 9.46
Figure 9.47
Figure 9.48
Figure 9.49
Figure 9.50
Figure 9.51
Figure 9.52
Figure 9.53
Chapter 10 Surface Shading
10.1 Diffuse Shading
10.1.1 Lambertian Shading Model
10.1.2 Ambient Shading
10.1.3 Vertex-Based Diffuse Shading
10.2 Phong Shading
10.2.1 Phong Lighting Model
10.2.2 Surface Normal Vector Interpolation
10.3 Artistic Shading
10.3.1 Line Drawing
10.3.2 Cool-to-Warm Shading
Frequently Asked Questions
Exercises
Figure 10.1
Figure 10.1
Figure 10.2
Figure 10.3
Figure 10.4
Figure 10.5
Figure 10.6
Figure 10.7
Figure 10.8
Figure 10.9
Chapter 11 Texture Mapping
11.1 Looking Up Texture Values
11.2 Texture Coordinate Functions
11.2.1 Geometrically Determined Coordinates
Planar Projection
Spherical Coordinates
Cylindrical Coordinates
Cubemaps
11.2.2 Interpolated Texture Coordinates
11.2.3 Tiling, Wrapping Modes, and Texture Transformations
11.2.4 Perspective Correct Interpolation
11.2.5 Continuity and Seams
11.3 Antialiasing Texture Lookups
11.3.1 The Footprint of a Pixel
11.3.2 Reconstruction
11.3.3 Mipmapping
11.3.4 Basic Texture Filtering with Mipmaps
11.3.5 Anisotropic Filtering
11.4 Applications of Texture Mapping
11.4.1 Controlling Shading Parameters
11.4.2 Normal Maps and Bump Maps
11.4.3 Displacement Maps
11.4.4 Shadow Maps
11.4.5 Environment Maps
11.5 Procedural 3D Textures
11.5.1 3D Stripe Textures
11.5.2 Solid Noise
11.5.3 Turbulence
Frequently Asked Questions
Notes
Exercises
Figure 11.1
Figure 11.1
Figure 11.2
Figure 11.3
Figure 11.4
Figure 11.5
Figure 11.6
Figure 11.7
Figure 11.8
Figure 11.9
Figure 11.10
Figure 11.11
Figure 11.12
Figure 11.13
Figure 11.14
Figure 11.15
Figure 11.16
Figure 11.17
Figure 11.18
Figure 11.19
Figure 11.20
Figure 11.21
Figure 11.22
Figure 11.23
Figure 11.24
Figure 11.25
Figure 11.26
Figure 11.27
Figure 11.28
Figure 11.29
Figure 11.30
Chapter 12 Data Structures for Graphics
12.1 Triangle Meshes
12.1.1 Mesh Topology
12.1.2 Indexed Mesh Storage
12.1.3 Triangle Strips and Fans
12.1.4 Data Structures for Mesh Connectivity
The Triangle-Neighbor Structure
The Winged-Edge Structure
The Half-Edge Structure
12.2 Scene Graphs
12.3 Spatial Data Structures
12.3.1 Bounding Boxes
12.3.2 Hierarchical Bounding Boxes
12.3.3 Uniform Spatial Subdivision
12.3.4 Axis-Aligned Binary Space Partitioning
12.4 BSP Trees for Visibility
12.4.1 Overview of BSP Tree Algorithm
12.4.2 Building the Tree
12.4.3 Cutting Triangles
12.4.4 Optimizing the Tree
12.5 Tiling Multidimensional Arrays
12.5.1 One-Level Tiling for 2D Arrays
12.5.2 Example: Two-Level Tiling for 3D Arrays
Frequently Asked Questions
Notes
Exercises
Figure 12.1
Figure 12.1
Figure 12.2
Figure 12.3
Figure 12.4
Figure 12.5
Figure 12.6
Figure 12.7
Figure 12.8
Figure 12.9
Figure 12.10
Figure 12.11
Figure 12.12
Figure 12.13
Figure 12.14
Figure 12.15
Figure 12.16
Figure 12.17
Figure 12.18
Figure 12.19
Figure 12.20
Figure 12.21
Figure 12.22
Figure 12.23
Figure 12.24
Figure 12.25
Figure 12.26
Figure 12.27
Figure 12.28
Figure 12.29
Figure 12.30
Figure 12.31
Figure 12.32
Figure 12.33
Figure 12.34
Figure 12.35
Figure 12.36
Figure 12.37
Figure 12.38
Figure 12.39
Figure 12.40
Figure 12.41
Figure 12.42
Chapter 13 More Ray Tracing
13.1 Transparency and Refraction
13.2 Instancing
13.3 Constructive Solid Geometry
13.4 Distribution Ray Tracing
13.4.1 Antialiasing
13.4.2 Soft Shadows
13.4.3 Depth of Field
13.4.4 Glossy Reflection
13.4.5 Motion Blur
Notes
Frequently Asked Questions
Figure 13.1
Figure 13.1
Figure 13.2
Figure 13.3
Figure 13.4
Figure 13.5
Figure 13.6
Figure 13.7
Figure 13.8
Figure 13.9
Figure 13.10
Figure 13.11
Figure 13.12
Figure 13.13
Figure 13.14
Figure 13.15
Figure 13.16
Figure 13.17
Figure 13.18
Figure 13.19
Chapter 14 Sampling
14.1 Integration
14.1.1 Measures and Averages
14.1.2 Example: Measures on the Lines in the 2D Plane
14.1.3 Example: Measure of Lines in 3D
14.2 Continuous Probability
14.2.1 One-Dimensional Continuous Probability Density Functions
14.2.2 One-Dimensional Expected Value
14.2.3 Multidimensional Random Variables
14.2.4 Variance
14.2.5 Estimated Means
14.3 Monte Carlo Integration
14.3.1 Quasi—Monte Carlo Integration
14.4 Choosing Random Points
14.4.1 Function Inversion
14.4.2 Rejection
14.4.3 Metropolis
14.4.4 Example: Choosing Random Lines in the Square
Frequently Asked Questions
Notes
Exercises
Figure 14.1
Figure 14.1
Figure 14.2
Figure 14.3
Figure 14.4
Figure 14.5
Figure 14.6
Figure 14.7
Figure 14.8
Figure 14.9
Figure 14.10
Table 14.1
Table 14.1
Chapter 15 Curves
15.1 Curves
15.1.1 Parameterizations and Reparameterizations
15.1.2 Piecewise Parametric Representations
15.1.3 Splines
15.2 Curve Properties
15.2.1 Continuity
15.3 Polynomial Pieces
15.3.1 Polynomial Notation
15.3.2 A Line Segment
Matrix Form for Polynomials
15.3.3 Beyond Line Segments
15.3.4 Basis Matrices for Cubics
15.3.5 Blending Functions
15.3.6 Interpolating Polynomials
15.4 Putting Pieces Together
15.4.1 Knots
15.4.2 Using Independent Pieces
15.4.3 Putting Segments Together
15.5 Cubics
15.5.1 Natural Cubics
15.5.2 Hermite Cubics
15.5.3 Cardinal Cubics
15.6 Approximating Curves
15.6.1 Bézier Curves
Geometric Intuition for Bézier Curves
The de Casteljau Algorithm
15.6.2 B-Splines
Uniform Linear B-Splines
Uniform Quadratic B-Splines
Uniform Cubic B-Splines
15.6.3 Nonuniform B-Splines
Repeated Knots and B-Spline Interpolation
15.6.4 NURBS
15.7 Summary
Notes
15.7.1 Exercises
Figure 15.1
Figure 15.1
Figure 15.2
Figure 15.3
Figure 15.4
Figure 15.5
Figure 15.6
Figure 15.7
Figure 15.8
Figure 15.9
Figure 15.10
Figure 15.11
Figure 15.12
Figure 15.13
Figure 15.14
Figure 15.15
Figure 15.16
Figure 15.17
Figure 15.18
Figure 15.19
Figure 15.20
Figure 15.21
Figure 15.22
Figure 15.23
Figure 15.24
Figure 15.25
Chapter 16 Computer Animation
16.1 Principles of Animation
16.1.1 Timing
16.1.2 Action Layout
16.1.3 Animation Techniques
16.1.4 Animator Control vs. Automatic Methods
16.2 Keyframing
16.2.1. Motion Controls
16.2.2 Interpolating Rotation
16.3 Deformations
16.4 Character Animation
16.4.1 Facial Animation
16.4.2 Motion Capture
16.5 Physics-Based Animation
16.6 Procedural Techniques
16.7 Groups of Objects
Notes
Figure 16.1
Figure 16.1
Figure 16.2
Figure 16.3
Figure 16.4
Figure 16.5
Figure 16.6
Figure 16.7
Figure 16.8
Figure 16.9
Figure 16.10
Figure 16.11
Figure 16.12
Figure 16.13
Figure 16.14
Figure 16.15
Figure 16.16
Figure 16.17
Figure 16.18
Figure 16.19
Figure 16.20
Figure 16.21
Figure 16.22
Figure 16.23
Figure 16.24
Figure 16.25
Figure 16.26
Figure 16.27
Figure 16.28
Figure 16.29
Chapter 17 Using Graphics Hardware
17.1 Hardware Overview
17.2 What Is Graphics Hardware
17.3 Heterogeneous Multiprocessing
17.3.1 Programming with OpenGL
17.4 Graphics Hardware Programming: Buffers, State, and Shaders
17.4.1 Buffers
17.4.2 Display Buffer
17.4.3 Cycle of Refresh
17.5 State Machine
17.6 Basic OpenGL Application Layout
17.7 Geometry
17.7.1 Describing Geometry for the Hardware
17.8 A First Look at Shaders
17.8.1 Vertex Shader Example
17.8.2 Fragment Shader Example
17.8.3 Loading, Compiling, and Using Shaders
17.9 Vertex Buffer Objects
17.10 Vertex Array Objects
17.11 Transformation Matrices
17.11.1 GLM
17.11.2 Using an Orthographic Projection
17.12 Shading with Per-Vertex Attributes
17.12.1 Structs of Vertex Data
17.13 Shading in the Fragment Processor
17.13.1 Blinn-Phong Shader Program: Vertex Shader
17.13.2 Blinn-Phong Shader Program: Fragment Shader
17.13.3 A Normal Shader
17.14 Meshes and Instancing
17.14.1 Instancing Models
17.15 Texture Objects
17.15.1 Texture Lookup in Shaders
17.16 Object-Oriented Design for Graphics Hardware Programming
17.17 Continued Learning
Frequently Asked Questions
Notes
Exercises
Figure 17.1
Figure 17.1
Figure 17.2
Figure 17.3
Figure 17.4
Figure 17.5
Figure 17.6
Figure 17.7
Figure 17.8
Figure 17.9
Figure 17.10
Figure 17.11
Figure 17.12
Figure 17.13
Figure 17.14
Chapter 18 Light
18.1 Radiometry
18.1.1 Photons
18.1.2 Spectral Energy
18.1.3 Power
18.1.4 Irradiance
18.1.5 Radiance
Radiance and Other Radiometric Quantities
18.1.6 BRDF
Directional Hemispherical Reflectance
Ideal Diffuse BRDF
18.2 Transport Equation
18.3 Photometry
Frequently Asked Questions
Notes
Exercises
Figure 18.1
Figure 18.1
Figure 18.2
Figure 18.3
Figure 18.4
Figure 18.5
Figure 18.6
Figure 18.7
Figure 18.8
Chapter 19 Color
19.1 Colorimetry
19.1.1 Grassmann’s Laws
19.1.2 Cone Responses
19.1.3 Color Matching Experiments
19.1.4 Standard Observers
19.1.5 Chromaticity Coordinates
19.2 Color Spaces
19.2.1 Constructing a Matrix Transform
19.2.2 Device-Dependent RGB Spaces
19.2.3 LMS Cone Space
19.2.4 CIE 1976 L*a*b*
19.3 Chromatic Adaptation
19.4 Color Appearance
Notes
Figure 19.1
Figure 19.1
Figure 19.2
Figure 19.3
Figure 19.4
Figure 19.5
Figure 19.6
Figure 19.7
Figure 19.8
Figure 19.9
Figure 19.10
Table 19.1
Table 19.1
Table 19.2
Chapter 20 Visual Perception
20.1 Vision Science
20.2 Visual Sensitivity
20.2.1 Brightness and Contrast
20.2.2 Color
20.2.3 Dynamic Range
20.2.4 Field-of-View and Acuity
20.2.5 Motion
20.3 Spatial Vision
20.3.1 Frames of Reference and Measurement Scales
20.3.2 Ocularmotor Cues
20.3.3 Binocular Disparity
20.3.4 Motion Cues
20.3.5 Pictorial Cues
20.4 Objects, Locations, and Events
20.4.1 Object Recognition
20.4.2 Size and Distance
20.4.3 Events
20.5 Picture Perception
Figure 20.1
Figure 20.1
Figure 20.2
Figure 20.3
Figure 20.4
Figure 20.5
Figure 20.6
Figure 20.7
Figure 20.8
Figure 20.9
Figure 20.10
Figure 20.11
Figure 20.12
Figure 20.13
Figure 20.14
Figure 20.15
Figure 20.16
Figure 20.17
Figure 20.18
Figure 20.19
Figure 20.20
Figure 20.21
Figure 20.22
Figure 20.23
Figure 20.24
Figure 20.25
Figure 20.26
Figure 20.27
Figure 20.28
Figure 20.29
Figure 20.30
Figure 20.31
Figure 20.32
Figure 20.33
Figure 20.34
Figure 20.35
Figure 20.36
Figure 20.37
Figure 20.38
Figure 20.39
Figure 20.40
Figure 20.41
Figure 20.42
Figure 20.43
Figure 20.44
Figure 20.45
Figure 20.46
Table 20.1
Table 20.1
Chapter 21 Tone Reproduction
21.1 Classification
21.2 Dynamic Range
21.3 Color
21.4 Image Formation
21.5 Frequency-Based Operators
21.6 Gradient-Domain Operators
21.7 Spatial Operators
21.8 Division
21.9 Sigmoids
21.10 Other Approaches
21.11 Night Tonemapping
21.12 Discussion
Figure 21.1
Figure 21.1
Figure 21.2
Figure 21.3
Figure 21.4
Figure 21.5
Figure 21.6
Figure 21.7
Figure 21.8
Figure 21.9
Figure 21.10
Figure 21.11
Figure 21.12
Figure 21.13
Figure 21.14
Figure 21.15
Figure 21.16
Figure 21.17
Figure 21.18
Figure 21.19
Figure 21.20
Figure 21.21
Figure 21.22
Figure 21.23
Figure 21.24
Figure 21.25
Figure 21.26
Figure 21.27
Figure 21.28
Figure 21.29
Figure 21.30
Figure 21.31
Chapter 22 Implicit Modeling
22.1 Implicit Functions, Skeletal Primitives, and Summation Blending
22.1.1 C1 Continuity and the Gradient
22.1.2 Distance Fields, R-Functions, and F-Reps
22.1.3 Level Sets
22.1.4 Variational Implicit Surfaces
22.1.5 Convolution Surfaces
22.1.6 Defining Skeletal Primitives
22.2 Rendering
22.3 Space Partitioning
22.3.1 Exhaustive Search
22.3.2 Algorithm Description
Data Structures
22.3.3 Polygonization Algorithm
Finding Cube-Surface Intersections
22.3.4 Sampling Problems
Subdividing a Cube
22.3.5 Cell Polygonization
22.4 More on Blending
22.5 Constructive Solid Geometry
22.6 Warping
22.6.1 Twist
22.6.2 Taper
22.6.3 Bend
22.7 Precise Contact Modeling
22.8 The BlobTree
22.8.1 Traversing the BlobTree
22.9 Interactive Implicit Modeling Systems
Exercises
Figure 22.1
Figure 22.1
Figure 22.2
Figure 22.3
Figure 22.4
Figure 22.5
Figure 22.6
Figure 22.7
Figure 22.8
Figure 22.9
Figure 22.10
Figure 22.11
Figure 22.12
Figure 22.13
Figure 22.14
Figure 22.15
Figure 22.16
Figure 22.17
Figure 22.18
Figure 22.19
Figure 22.20
Figure 22.21
Figure 22.22
Figure 22.23
Figure 22.24
Figure 22.25
Figure 22.26
Figure 22.27
Figure 22.28
Figure 22.29
Figure 22.30
Figure 22.31
Chapter 23 Global Illumination
23.1 Particle Tracing for Lambertian Scenes
23.2 Path Tracing
23.3 Accurate Direct Lighting
23.3.1 Mathematical Framework
23.3.2 Sampling a Spherical Luminaire
23.3.3 Nondiffuse Luminaries
Frequently Asked Questions
Notes
Exercises
Figure 23.1
Figure 23.1
Figure 23.2
Figure 23.3
Figure 23.4
Figure 23.5
Figure 23.6
Figure 23.7
Figure 23.8
Figure 23.9
Chapter 24 Reflection Models
24.1 Real-World Materials
24.1.1 smooth Dielectrics and Metals
24.1.2 Rough Surfaces
24.1.3 Diffuse Materials
24.1.4 Translucent Materials
24.1.5 Layered Materials
24.2 Implementing Reflection Models
24.3 Specular Reflection Models
24.4 smooth-Layered Model
24.5 Rough-Layered Model
24.5.1 Anisotropic Specular BRDF
24.5.2 Diffuse Term for the Anisotropic Phong Model
24.5.3 Implementing the Model
Frequently Asked Questions
Notes
Exercises
Figure 24.1
Figure 24.1
Figure 24.2
Figure 24.3
Figure 24.4
Figure 24.5
Figure 24.6
Figure 24.7
Figure 24.8
Chapter 25 Computer Graphics in Games
25.1 Platforms
25.2 Limited Resources
25.2.1 Processing Time
25.2.2 Storage
25.2.3 Development Resources
25.3 Optimization Techniques
25.4 Game Types
25.5 The Game Production Process
25.5.1 Asset Creation
Initial Modeling
Texturing
Shading
Lighting
Animation
Notes
Exercises
Figure 25.1
Figure 25.1
Figure 25.2
Figure 25.3
Figure 25.4
Figure 25.5
Figure 25.6
Figure 25.7
Figure 25.8
Figure 25.9
Figure 25.10
Figure 25.11
Figure 25.12
Figure 25.13
Figure 25.14
Figure 25.15
Chapter 26 Visualization
26.1 Background
26.1.1 History
26.1.2 Resource Limitations
26.2 Data Types
26.2.1 Dimension and Item Count
26.2.2 Data Transformation and Derived Dimensions
26.3 Human-Centered Design Process
26.3.1 Task Characterization
26.3.2 Abstraction
26.3.3 Technique and Algorithm Design
26.3.4 Validation
26.4 Visual Encoding Principles
26.4.1 Visual Channel Characteristics
26.4.2 Color
26.4.3 2D vs. 3D Spatial Layouts
26.4.4 Text Labels
26.5 Interaction Principles
26.5.1 Overview First, Zoom and Filter, Details on Demand
26.5.2 Interactivity Costs
26.5.3 Animation
26.6 Composite and Adjacent Views
26.6.1 Single Drawing
26.6.2 Superimposing and Layering
26.6.3 Glyphs
26.6.4 Multiple Views
26.7 Data Reduction
26.7.1 Overviews and Aggregation
26.7.2 Filtering and Navigation
26.7.3 Focus+Context
26.7.4 Dimensionality Reduction
26.8 Examples
26.8.1 Tables
26.8.2 Graphs
26.8.3 Trees
26.8.4 Geographic
26.8.5 Spatial Fields
Frequently Asked Questions
Figure 26.1
Figure 26.1
Figure 26.2
Figure 26.3
Figure 26.4
Figure 26.5
Figure 26.6
Figure 26.7
Figure 26.8
Figure 26.9
Figure 26.10
Figure 26.11
Figure 26.12
Figure 26.13
Figure 26.14
Figure 26.15
Figure 26.16
Figure 26.17
Figure 26.18
Figure 26.19
Figure 26.20
Figure 26.21
Figure 26.22
Figure 26.23
Figure 26.24
Figure 26.25
Figure 26.26
References
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Preliminaries
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset