You are not signed in. Sign in.
Authors: Fletcher Dunn, Ian Parberry, Dr Ian Parberry
ISBN-13: 9781556229114, ISBN-10: 1556229119
Format: Paperback
Publisher: Wordware Publishing, Inc.
Date Published: January 2002
Edition: 1E
This book covers fundamental 3D math concepts that are especially useful for computer game developers and programmers.
Acknowledgments | xi | |
Chapter 1 | Introduction | 1 |
1.1 | What is 3D Math? | 1 |
1.2 | Why You Should Read This Book | 1 |
1.3 | What You Should Know Before Reading This Book | 3 |
1.4 | Overview | 3 |
Chapter 2 | The Cartesian Coordinate System | 5 |
2.1 | 1D Mathematics | 6 |
2.2 | 2D Cartesian Mathematics | 9 |
2.3 | From 2D to 3D | 14 |
2.4 | Exercises | 20 |
Chapter 3 | Multiple Coordinate Spaces | 23 |
3.1 | Why Multiple Coordinate Spaces? | 24 |
3.2 | Some Useful Coordinate Spaces | 25 |
3.3 | Nested Coordinate Spaces | 30 |
3.4 | Specifying Coordinate Spaces | 31 |
3.5 | Coordinate Space Transformations | 31 |
3.6 | Exercises | 34 |
Chapter 4 | Vectors | 35 |
4.1 | Vector--A Mathematical Definition | 36 |
4.2 | Vector--A Geometric Definition | 37 |
4.3 | Vectors vs. Points | 40 |
4.4 | Exercises | 42 |
Chapter 5 | Operations on Vectors | 45 |
5.1 | Linear Algebra vs. What We Need | 46 |
5.2 | Typeface Conventions | 46 |
5.3 | The Zero Vector | 47 |
5.4 | Negating a Vector | 48 |
5.5 | Vector Magnitude (Length) | 49 |
5.6 | Vector Multiplication by a Scalar | 51 |
5.7 | Normalized Vectors | 53 |
5.8 | Vector Addition and Subtraction | 54 |
5.9 | The Distance Formula | 57 |
5.10 | Vector Dot Product | 58 |
5.11 | Vector Cross Product | 62 |
5.12 | Linear Algebra Identities | 65 |
5.13 | Exercises | 67 |
Chapter 6 | A Simple 3D Vector Class | 69 |
6.1 | Class Interface | 69 |
6.2 | Class Vector3 Definition | 70 |
6.3 | Design Decisions | 73 |
Chapter 7 | Introduction to Matrices | 83 |
7.1 | Matrix--A Mathematical Definition | 83 |
7.2 | Matrix--A Geometric Interpretation | 91 |
7.3 | Exercises | 98 |
Chapter 8 | Matrices and Linear Transformations | 101 |
8.1 | Transforming an Object vs. Transforming the Coordinate Space | 102 |
8.2 | Rotation | 105 |
8.3 | Scale | 112 |
8.4 | Orthographic Projection | 115 |
8.5 | Reflection | 117 |
8.6 | Shearing | 118 |
8.7 | Combining Transformations | 119 |
8.8 | Classes of Transformations | 120 |
8.9 | Exercises | 124 |
Chapter 9 | More on Matrices | 125 |
9.1 | Determinant of a Matrix | 125 |
9.2 | Inverse of a Matrix | 130 |
9.3 | Orthogonal Matrices | 132 |
9.4 | 4x4 Homogenous Matrices | 135 |
9.5 | Exercises | 146 |
Chapter 10 | Orientation and Angular Displacement in 3D | 147 |
10.1 | What is Orientation? | 148 |
10.2 | Matrix Form | 149 |
10.3 | Euler Angles | 153 |
10.4 | Quaternions | 159 |
10.5 | Comparison of Methods | 179 |
10.6 | Converting between Representations | 180 |
10.7 | Exercises | 193 |
Chapter 11 | Transformations in C++ | 195 |
11.1 | Overview | 196 |
11.2 | Class EulerAngles | 198 |
11.3 | Class Quaternion | 205 |
11.4 | Class RotationMatrix | 215 |
11.5 | Class Matrix4x3 | 220 |
Chapter 12 | Geometric Primitives | 239 |
12.1 | Representation Techniques | 239 |
12.2 | Lines and Rays | 241 |
12.3 | Spheres and Circles | 246 |
12.4 | Bounding Boxes | 247 |
12.5 | Planes | 252 |
12.6 | Triangles | 257 |
12.7 | Polygons | 269 |
12.8 | Exercises | 275 |
Chapter 13 | Geometric Tests | 277 |
13.1 | Closest Point on 2D Implicit Line | 277 |
13.2 | Closest Point on Parametric Ray | 278 |
13.3 | Closest Point on Plane | 279 |
13.4 | Closest Point on Circle/Sphere | 280 |
13.5 | Closest Point in AABB | 280 |
13.6 | Intersection Tests | 281 |
13.7 | Intersection of Two Implicit Lines in 2D | 282 |
13.8 | Intersection of Two Rays in 3D | 283 |
13.9 | Intersection of Ray and Plane | 284 |
13.10 | Intersection of AABB and Plane | 285 |
13.11 | Intersection of Three Planes | 286 |
13.12 | Intersection of Ray and Circle/Sphere | 286 |
13.13 | Intersection of Two Circles/Spheres | 288 |
13.14 | Intersection of Sphere and AABB | 291 |
13.15 | Intersection of Sphere and Plane | 291 |
13.16 | Intersection of Ray and Triangle | 293 |
13.17 | Intersection of Ray and AABB | 297 |
13.18 | Intersection of Two AABBs | 297 |
13.19 | Other Tests | 299 |
13.20 | Class AABB3 | 300 |
13.21 | Exercises | 316 |
Chapter 14 | Triangle Meshes | 319 |
14.1 | Representing Meshes | 320 |
14.2 | Additional Mesh Information | 328 |
14.3 | Topology and Consistency | 330 |
14.4 | Triangle Mesh Operations | 331 |
14.5 | A C++ Triangle Mesh Class | 336 |
Chapter 15 | 3D Math for Graphics | 345 |
15.1 | Graphics Pipeline Overview | 346 |
15.2 | Setting the View Parameters | 349 |
15.3 | Coordinate Spaces | 354 |
15.4 | Lighting and Fog | 358 |
15.5 | Buffers | 372 |
15.6 | Texture Mapping | 373 |
15.7 | Geometry Generation/Delivery | 374 |
15.8 | Transformation and Lighting | 377 |
15.9 | Backface Culling and Clipping | 380 |
15.10 | Rasterization | 383 |
Chapter 16 | Visibility Determination | 385 |
16.1 | Bounding Volume Tests | 386 |
16.2 | Space Partitioning Techniques | 390 |
16.3 | Grid Systems | 392 |
16.4 | Quadtrees and Octrees | 393 |
16.5 | BSP Trees | 398 |
16.6 | Occlusion Culling Techniques | 402 |
Chapter 17 | Afterword | 407 |
Appendix A | Math Review | 409 |
Summation Notation | 409 | |
Angles, Degrees, and Radians | 409 | |
Trig Functions | 410 | |
Trig Identities | 413 | |
Appendix B | References | 415 |
Index | 417 |