Bibliographic record and links to related information available from the Library of Congress catalog. Note: Contents data are machine generated based on pre-publication information provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.

```Contents
Preface	xiii
What's New in the Second Edition	xiv
Contents Overview	xiv
Notational Conventions	xvii
Chapter 0	The Rendering Pipeline	1
0.1 Graphics Processors	1
0.2 Vertex Transformation	5
0.3 Rasterization and Fragment Operations	7
Chapter 1	Vectors	11
1.1 Vector Properties	11
1.2 Dot Products	14
1.3 Cross Products	20
1.4 Vector Spaces	26
Chapter 1 Summary	29
Exercises for Chapter 1	30
Chapter 2	Matrices	33
2.1 Matrix Properties	33
2.2 Linear Systems	37
2.3 Matrix Inverses	43
2.4 Determinants	50
2.5 Eigenvalues and Eigenvectors	57
2.6 Diagonalization	61
Chapter 2 Summary	66
Exercises for Chapter 2	68
Chapter 3	Transforms	71
3.1 Linear Transformations	71
3.1.1 Orthogonal Matrices	73
3.1.2 Handedness	74
3.2 Scaling Transforms	75
3.3 Rotation Transforms	76
3.3.1 Rotation About an Arbitrary Axis	78
3.4 Homogeneous Coordinates	81
3.4.1 Four-Dimensional Transforms	81
3.4.2 Points and Directions	83
3.4.3 Geometrical Interpretation of the w-Coordinate	83
3.5 Transforming Normal Vectors	85
3.6 Quaternions	86
3.6.1 Quaternion Mathematics	86
3.6.2 Rotations with Quaternions	88
3.6.3 Spherical Linear Interpolation	92
Chapter 3 Summary	96
Exercises for Chapter 3	98
Chapter 4	3D Engine Geometry	101
4.1 Lines in 3D Space	101
4.1.1 Distance Between a Point and a Line	102
4.1.2 Distance Between Two Lines	103
4.2 Planes in 3D Space	105
4.2.1 Intersection of a Line and a Plane	107
4.2.2 Intersection of Three Planes	108
4.2.3 Transforming Planes	110
4.3 The View Frustum	112
4.3.1 Field of View	113
4.3.2 Frustum Planes	115
4.4 Perspective-Correct Interpolation	117
4.4.1 Depth Interpolation	118
4.4.2 Vertex Attribute Interpolation	120
4.5 Projections	121
4.5.1 Perspective Projections	121
4.5.2 Orthographic Projections	126
4.5.3 Extracting Frustum Planes	127
Chapter 4 Summary	129
Exercises for Chapter 4	131
Chapter 5	Ray Tracing	133
5.1 Root Finding	133
5.1.2 Cubic Polynomials	135
5.1.3 Quartic Polynomials	138
5.1.4 Newton's Method	139
5.1.5 Refinement of Reciprocals and Square Roots	142
5.2 Surface Intersections	143
5.2.1 Intersection of a Ray and a Triangle	143
5.2.2 Intersection of a Ray and a Box	145
5.2.3 Intersection of a Ray and a Sphere	146
5.2.4 Intersection of a Ray and a Cylinder	148
5.2.5 Intersection of a Ray and a Torus	149
5.3 Normal Vector Calculation	151
5.4 Reflection and Refraction Vectors	152
5.4.1 Reflection Vector Calculation	152
5.4.2 Refraction Vector Calculation	154
Chapter 5 Summary	156
Exercises for Chapter 5	157
Chapter 6	Illumination	161
6.1 RGB Color	162
6.2 Light Sources	163
6.2.1 Ambient Light	163
6.2.2 Directional Light Sources	163
6.2.3 Point Light Sources	163
6.2.4 Spot Light Sources	164
6.3 Diffuse Lighting	165
6.4 Texture Mapping	166
6.4.1 Standard Texture Maps	167
6.4.2 Projective Texture Maps	168
6.4.3 Cube Texture Maps	170
6.4.4 Filtering and Mipmaps	173
6.5 Specular Lighting	175
6.6 Emission	178
6.7.1 Calculating Normal Vectors	179
6.8 Bump Mapping	182
6.8.1 Bump Map Construction	182
6.8.2 Tangent Space	184
6.8.3 Calculating Tangent Vectors	185
6.8.4 Implementation	187
6.9 A Physical Reflection Model	189
6.9.1 Bidirectional Reflectance Distribution Functions	190
6.9.2 Cook-Torrance Illumination	194
6.9.3 The Fresnel Factor	195
6.9.4 The Microfacet Distribution Function	198
6.9.5 The Geometrical Attenuation Factor	201
6.9.6 Implementation	203
Chapter 6 Summary	211
Exercises for Chapter 6	215
Chapter 7	Visibility Determination	217
7.1 Bounding Volume Construction	218
7.1.1 Principal Component Analysis	218
7.1.2 Bounding Box Construction	221
7.1.3 Bounding Sphere Construction	223
7.1.4 Bounding Ellipsoid Construction	225
7.1.5 Bounding Cylinder Construction	226
7.2 Bounding Volume Tests	227
7.2.1 Bounding Sphere Test	227
7.2.2 Bounding Ellipsoid Test	229
7.2.3 Bounding Cylinder Test	232
7.2.4 Bounding Box Test	234
7.3 Spatial Partitioning	237
7.3.1 Octrees	237
7.3.2 Binary Space Partitioning Trees	238
7.4 Portal Systems	241
7.4.1 Portal Clipping	243
7.4.2 Reduced View Frustums	245
Chapter 7 Summary	247
Exercises for Chapter 7	251
Chapter 8	Collision Detection	253
8.1 Plane Collisions	254
8.1.1 Collision of a Sphere and a Plane	254
8.1.2 Collision of a Box and a Plane	256
8.1.3 Spatial Partitioning	258
8.2 General Sphere Collisions	259
8.3 Sliding	264
8.4 Collision of Two Spheres	265
Chapter 8 Summary	269
Exercises for Chapter 8	271
Chapter 9	Polygonal Techniques	273
9.1 Depth Value Offset	273
9.1.1 Projection Matrix Modification	274
9.1.2 Offset Value Selection	275
9.1.3 Implementation	277
9.2 Decal Application	277
9.2.1 Decal Mesh Construction	278
9.2.2 Polygon Clipping	280
9.3 Billboarding	282
9.4 Polygon Reduction	289
9.5 T-Junction Elimination	294
9.6 Triangulation	296
Chapter 9 Summary	304
Exercises for Chapter 9	306
10.1 Algorithm Overview	308
10.2 Infinite View Frustums	313
10.3 Silhouette Determination	317
10.5 Determining Cap Necessity	325
10.7 Scissor Optimization	333
Chapter 10 Summary	338
Exercises for Chapter 10	339
Chapter 11	Linear Physics	341
11.1 Position Functions	341
11.2 Second-Order Differential Equations	343
11.2.1 Homogeneous Equations	343
11.2.2 Nonhomogeneous Equations	348
11.2.3 Initial Conditions	350
11.3 Projectile Motion	352
11.4 Resisted Motion	357
11.5 Friction	359
Chapter 11 Summary	362
Exercises for Chapter 11	365
Chapter 12	Rotational Physics	367
12.1 Rotating Environments	367
12.1.1 Angular Velocity	368
12.1.2 The Centrifugal Force	370
12.1.3 The Coriolis Force	371
12.2 Rigid Body Motion	373
12.2.1 Center of Mass	373
12.2.2 Angular Momentum and Torque	376
12.2.3 The Inertia Tensor	377
12.2.4 Principal Axes of Inertia	385
12.3 Oscillatory Motion	389
12.3.1 Spring Motion	389
12.3.2 Pendulum Motion	393
Chapter 12 Summary	395
Exercises for Chapter 12	397
Chapter 13	Fluid Simulation	401
13.1 The Wave Equation	401
13.2 Approximating Derivatives	405
13.3 Evaluating Surface Displacement	408
13.4 Implementation	411
Chapter 13 Summary	416
Exercises for Chapter 13	417
Chapter 14	Numerical Methods	419
14.1 Linear Systems	419
14.1.1 Triangular Systems	420
14.1.2 Gaussian Elimination	421
14.1.3 LU Decomposition	424
14.1.4 Error Reduction	431
14.1.5 Tridiagonal Systems	433
14.2 Eigenvalues and Eigenvectors	437
14.3 Ordinary Differential Equations	444
14.3.1 Euler's Method	444
14.3.2 Taylor Series Method	445
14.3.3 Runge-Kutta Method	447
14.3.4 Higher-Order Differential Equations	449
Chapter 14 Summary	450
Exercises for Chapter 14	452
Chapter 15	Curves and Surfaces	453
15.1 Cubic Curves	453
15.2 Hermite Curves	456
15.3 B,zier Curves	458
15.3.1 Cubic B,zier Curves	460
15.3.2 B,zier Curve Truncation	463
15.3.3 The de Casteljau Algorithm	464
15.4 Catmull-Rom Splines	467
15.5 Cubic Splines	468
15.6 B-Splines	472
15.6.1 Uniform B-Splines	473
15.6.2 B-Spline Globalization	478
15.6.3 Nonuniform B-Splines	480
15.6.4 NURBS	484
15.7 Bicubic Surfaces	486
15.8 Curvature and Torsion	488
Chapter 15 Summary	493
Exercises for Chapter 15	496
Appendix A	Complex Numbers	499
A.1 Definition	499
A.3 Conjugates and Inverses	500
A.4 The Euler Formula	501
Appendix B	Trigonometry Reference	505
B.1 Function Definitions	505
B.2 Symmetry and Phase Shifts	506
B.3 Pythagorean Identities	507
B.4 Exponential Identities	508
B.5 Inverse Functions	509
B.6 Laws of Sines and Cosines	510
Appendix C	Coordinate Systems	513
C.1 Cartesian Coordinates	513
C.2 Cylindrical Coordinates	514
C.3 Spherical Coordinates	517
C.4 Generalized Coordinates	520
Appendix D	Taylor Series	525
D.1 Derivation	525
D.2 Power Series	527
D.3 The Euler Formula	529
Appendix E	Answers to Exercises	531
Chapter 1	531
Chapter 2	531
Chapter 3	532
Chapter 4	532
Chapter 5	533
Chapter 6	533
Chapter 7	534
Chapter 8	534
Chapter 9	534
Chapter 10	534
Chapter 11	535
Chapter 12	535
Chapter 13	536
Chapter 14	536
Chapter 15	536
Bibliography	539
Index	543
Library of Congress Subject Headings for this publication: Computer games Programming, Three-dimensional display systems Mathematics, Computer graphics Mathematics```