I found this book thoroughly frustrating. I assumed that a book with "for Game Developers" would make concepts easier to understand for the less mathematically inclined in this world. Quite the oppposite, I found my Calculus textbook explained vectors much easier. He spends very little time actually explaining the concepts instead opts to throw formulas at the reader. Understandably, formulas are necessary to be mathematically concise, but he could at least spend time discussing them. Now I could forgive him his obtuse explanations if I had a set of practice problems to work with, but there are none. I wasn't even aware of the calculation errors until I read the other reviews, so this only lowers my esteem for the author. Now to be fair, I haven't gotten to many of the later topics, so it's possible the book will get better. The few I have looked at, however, do not lend me to such optimism. Purchase at your own risk. Team DDU......Page 1 Contents......Page 7 Introduction......Page 14 Part I: The Basics......Page 18 1 Equation Manipulation and Representation......Page 20 Choosing a Coordinate System......Page 21 Equation Representation......Page 31 Using Polynomial Roots to Solve Equations......Page 35 Substitution......Page 42 O Vector, What Art Thou?......Page 46 Basic Operations and Properties......Page 48 Advanced Operations and Properties......Page 53 Vector Spaces......Page 62 3 Meet the Matrices......Page 70 Meat, the Matrices......Page 71 Basic Operations and Properties......Page 72 Advanced Operations and Properties......Page 81 Matrix Decomposition......Page 98 Eigenvectors......Page 106 Diagonalization......Page 108 Vector Revision......Page 109 4 Basic Geometric Elements......Page 112 Creating Lines......Page 113 Generating Planes......Page 115 Constructing Spheres......Page 118 When Elements Collide......Page 120 Know Your Distances......Page 132 3D File Formats......Page 140 5 Transformations......Page 142 It's All About the Viewpoint......Page 143 Linear Transformations......Page 145 Multiple Linear Transformations......Page 155 Projections......Page 161 Non-Linear Transformations......Page 168 6 Moving to Hyperspace Vectors: Quaternions......Page 170 Complex Numbers......Page 171 Basic Quaternions......Page 175 Advanced Operations on Quaternions......Page 178 Part II: Physics......Page 184 7 Accelerated Vector Calculus for the Uninitiated......Page 186 The Concept of Limits......Page 187 Derivatives (The Result of Differentiation)......Page 192 Reversing: Integration......Page 208 8 Gravitating Around Basic Physics......Page 226 Move That Body........Page 227 Physical Force......Page 232 Energy......Page 244 9 Advanced Physics......Page 252 Angular Movement......Page 253 Oscillations......Page 259 Center of Mass......Page 274 Angular Forces......Page 276 10 And Then It Hits You: You Need Collision Detection......Page 280 Environmental Collisions......Page 281 Collisions of Objects Among Themselves......Page 286 Picking......Page 304 Part III: Playing with Numbers......Page 310 11 Educated Guessing with Statistics and Probability......Page 312 Basic Statistics Principles......Page 313 Random Number Generation (Uniform Deviates)......Page 319 Distributions......Page 327 Intelligence Everywhere......Page 336 12 Closing the Gap for Numerical Approximation......Page 340 Solution Approximation......Page 341 2D Function Approximation......Page 344 Multivariable Function Approximation......Page 375 Splines......Page 380 Surfaces......Page 402 Part IV: Rendering and Lighting......Page 406 14 Graphics-Generation Engines......Page 408 Decals......Page 409 Billboards......Page 414 Applications......Page 419 15 Visibility Determination: The World of the Invisible......Page 422 GPU-Level Visibility Determination......Page 423 CPU Culling......Page 426 16 Space Partitioning: Cleaning Your Room......Page 444 Quadtrees and Octrees......Page 447 k-D Trees......Page 448 Binary Space Partitioned (BSP) Trees......Page 454 Portal Subdivision......Page 458 17 Filling the Gaps with Rendering Techniques......Page 464 Studying the 3D Pipeline......Page 465 Texture Transformations......Page 467 Cube Map Tricks......Page 480 Cel Shading......Page 483 Shadows......Page 485 18 Building a Light Show......Page 492 Studying the Rasterization Pipeline......Page 493 Light a Ray Tracing Model......Page 500 Light Sources......Page 506 Lighting Models......Page 509 Part V: Optimizations......Page 518 19 The Quick Mind: Computational Optimizations......Page 520 Fixed Points......Page 521 IEEE Floating Points......Page 534 Condition Arithmetic......Page 541 20 Using SIMD to Move Linear Algebra Functions onto the Highway......Page 554 Matrix Transposition......Page 555 Dot Product......Page 557 Vector Length and Normalization......Page 559 Matrix-Vector Multiplication......Page 561 Matrix-Matrix Multiplication......Page 564 Matrix Determinant......Page 568 Cross Product......Page 572 Matrix Division (Inverse)......Page 573 21 Kicking the Turtle: Approximating Common and Slow Functions......Page 580 Transcendental Function Evaluation......Page 581 Physical Model Approximation......Page 601 Appendixes......Page 606 Appendix A Notation and Conventions......Page 608 Appendix B Trigonometry......Page 610 Symmetry......Page 611 Pythagorean Identities......Page 614 Exponential Identities......Page 615 Cosine and Sine Laws......Page 617 Inverse Functions......Page 618 Appendix C Integral and Derivative Tables......Page 622 Appendix D What's on the CD......Page 628 Index......Page 630 Team DDU Mathematics for Game Developers 1 Cover 1 Contents 7 Introduction 14 Part I: The Basics 18 1 Equation Manipulation and Representation 20 Choosing a Coordinate System 21 Equation Representation 31 Using Polynomial Roots to Solve Equations 35 Substitution 42 2 Baby Steps: Introduction to Vectors 46 O Vector, What Art Thou? 46 Basic Operations and Properties 48 Advanced Operations and Properties 53 Vector Spaces 62 3 Meet the Matrices 70 Meat, the Matrices 71 Basic Operations and Properties 72 Advanced Operations and Properties 81 Matrix Decomposition 98 Eigenvectors 106 Diagonalization 108 Vector Revision 109 4 Basic Geometric Elements 112 Creating Lines 113 Generating Planes 115 Constructing Spheres 118 When Elements Collide 120 Know Your Distances 132 3D File Formats 140 5 Transformations 142 It's All About the Viewpoint 143 Linear Transformations 145 Multiple Linear Transformations 155 Projections 161 Non-Linear Transformations 168 6 Moving to Hyperspace Vectors: Quaternions 170 Complex Numbers 171 Basic Quaternions 175 Advanced Operations on Quaternions 178 Part II: Physics 184 7 Accelerated Vector Calculus for the Uninitiated 186 The Concept of Limits 187 Derivatives (The Result of Differentiation) 192 Reversing: Integration 208 8 Gravitating Around Basic Physics 226 Move That Body.. 227 Physical Force 232 Energy 244 9 Advanced Physics 252 Angular Movement 253 Oscillations 259 Center of Mass 274 Angular Forces 276 10 And Then It Hits You: You Need Collision Detection 280 Environmental Collisions 281 Collisions of Objects Among Themselves 286 Picking 304 Part III: Playing with Numbers 310 11 Educated Guessing with Statistics and Probability 312 Basic Statistics Principles 313 Random Number Generation (Uniform Deviates) 319 Distributions 327 Intelligence Everywhere 336 12 Closing the Gap for Numerical Approximation 340 Solution Approximation 341 2D Function Approximation 344 Multivariable Function Approximation 375 13 Exploring Curvy Bodies 380 Splines 380 Surfaces 402 Part IV: Rendering and Lighting 406 14 Graphics-Generation Engines 408 Decals 409 Billboards 414 Applications 419 15 Visibility Determination: The World of the Invisible 422 GPU-Level Visibility Determination 423 CPU Culling 426 Grid Division 444 16 Space Partitioning: Cleaning Your Room 444 Quadtrees and Octrees 447 k-D Trees 448 Binary Space Partitioned (BSP) Trees 454 Portal Subdivision 458 17 Filling the Gaps with Rendering Techniques 464 Studying the 3D Pipeline 465 Texture Transformations 467 Cube Map Tricks 480 Cel Shading 483 Shadows 485 18 Building a Light Show 492 Studying the Rasterization Pipeline 493 Light a Ray Tracing Model 500 Light Sources 506 Lighting Models 509 Part V: Optimizations 518 19 The Quick Mind: Computational Optimizations 520 Fixed Points 521 IEEE Floating Points 534 Condition Arithmetic 541 20 Using SIMD to Move Linear Algebra Functions onto the Highway 554 Matrix Storage Format 555 Matrix Transposition 555 Dot Product 557 Vector Length and Normalization 559 Matrix-Vector Multiplication 561 Matrix-Matrix Multiplication 564 Matrix Determinant 568 Cross Product 572 Matrix Division (Inverse) 573 21 Kicking the Turtle: Approximating Common and Slow Functions 580 Transcendental Function Evaluation 581 Physical Model Approximation 601 Appendixes 606 Appendix A Notation and Conventions 608 Trigonometric Definitions 610 Appendix B Trigonometry 610 Symmetry 611 Pythagorean Identities 614 Exponential Identities 615 Cosine and Sine Laws 617 Inverse Functions 618 Appendix C Integral and Derivative Tables 622 Appendix D What's on the CD 628 Index 630 Team DDU 1 Mathematics for Game Developers is just that -- a math book designed specifically for the game developer, not the mathematician. As a game developer, you know that math is a fundamental part of your programming arsenal. In order to program a game that goes beyond the basics, you must first master concepts such as matrices and vectors. In this book, you will find some unique solutions for dealing with real problems you'll face when programming many types of 3D games. Not only will you learn how to solve these problems, you'll also learn why the solution works, enabling you to apply that solution to other problems. You'll also learn how to leverage software to help solve algebraic equations. Through numerous examples, this book clarifies how mathematical ideas fit together and how they apply to game programming. Book jacket A math manual designed specifically for game developers. This volume uses extensive examples to cover important math basics like vectors and matrices as well as more advanced, unique math solutions for game programming problems and how to leverage software to help solve algebraic equations. Mathematics and game programming are inseparably connected because mathematics is used to create real world models within game environments. This book helps developers successfully program games, and master and apply complex mathematic concepts.