- Hardcover: 624 pages
- Publisher: A K Peters/CRC Press; 3 edition (August 26, 2015)
- Language: English
- ISBN-10: 1482250926
- ISBN-13: 978-1482250923
- Product Dimensions: 7.8 x 1.2 x 9.5 inches
- Shipping Weight: 1.6 pounds (View shipping rates and policies)
- Average Customer Review: 12 customer reviews
- Amazon Best Sellers Rank: #432,980 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Essential Mathematics for Games and Interactive Applications 3rd Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently bought together
Customers who bought this item also bought
Praise for Previous Editions:
"It’s the book with all the math you need for games."
―Neil Kirby, Researcher, Alcatel-Lucent
"Even though I’ve worked with these systems for years, this book showed me new ways of looking at several topics that make them easier to remember and use. For someone new to 3D programming, it is extremely useful―it gives them a solid background in pretty much every area they need to understand."
―Peter Lipson, Toys for Bob, Inc.
About the Author
James M. Van Verth is a software engineer at Google, where he works on GPU support for the Skia 2D Graphics Library. He has worked for Insomniac Games, NVIDIA, and Red Storm Entertainment and, for the past 17 years, he has been a regular speaker at GDC, teaching the tutorials "Math for Game Programmers" and "Physics for Game Programmers." He received a BA in math/computer science from Dartmouth College, an MS in computer science from the State University of New York at Buffalo, and an MS in computer science from the University of North Carolina at Chapel Hill.
Lars M. Bishop is an engineer in the Handheld Developer Technologies group at NVIDIA. Prior to joining NVIDIA, he was the chief technology officer at Numerical Design Limited, leading the development of the Gamebryo3D cross-platform game engine. He received a BS in math/computer science from Brown University and an MS in computer science from the University of North Carolina at Chapel Hill.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
The book starts with an overview of computer number representations, and goes into detail with the IEEE 754 floating-point standard. At first I assumed this was unnecessary detail, but actually it’s pretty useful to understand and a good base to build on. They continue with vectors and points, linear transformations and matrices, affine transformations, orientation (including matrices, Euler angles, axis-angle, and quaternions), and interpolation (linear and curved). In the next section they transition to more graphic oriented topics such as: viewing and projection, geometry and programmable shading, lighting, rasterization, then a random chapter on… random numbers, and finish off with intersection testing and rigid-body dynamics.
Just looking at the table of contents is sometimes not enough to get a feel for the quality of the text, so I will reveal more. The beginning parts are really exactly what you’d expect for a game math book. The basics of vectors, matrices, quaternions, etc. are the bread and butter for a 3D programmer. The coverage here is solid and great for a beginner. Advanced readers may not find any surprises, but it’s still a good refresher. The interpolation chapter I found interesting, especially the detail into different types of curves and splines . This could be immediately useful for coding a skinned character or animating a camera in a game. Viewing and projection were given adequate coverage and are essential to anyone wishing to code a graphics engine themselves. The next chapter was particularly long and explained the programmable shader pipeline to great effect. The authors explained everything from color representation, vertex attributes, drawing geometry, fixed-function versus programmable, vertex and fragment shaders (aka pixel shaders), and texture mapping. Really a great introduction for anyone wanting to learn to code shaders themselves. Then they move onto lighting and go into the basic types (point, spot, directional, and ambient), surface materials, per-vertex and per-fragment lighting, combining with textures, and a few small sections of more advanced topics like normal mapping, physically based lighting, HDR, and deferred shading.
Next up is rasterization, which was an awesome chapter that explained (in epic detail) how rasterizers work which I feel does help when you know what’s going on behind the scenes. I don’t know of many other books that explain this part of the pipeline so well, so this was much appreciated. The random number chapter was also quite informative. It’s easy to just call a function that spits out a number and not actually understand what’s happening. I found this portion of the book to be a nice surprise. Intersection testing was covered near the end, and it was one of the longer chapters. Almost anything you could think of was here: finding distances from lines and points, sphere/ray/plane intersections, axis-aligned bounding boxes (AABBs), swept spheres, object-oriented boxes, triangle intersection, and a simple collision system. Finally the book closes with a chapter on rigid-body dynamics. I actually purchased my copy mostly for the rigid-body material and I felt I learned a few useful things. Of course, it was only one chapter but some of the explanation was better than whole books I’ve read on physics. Certainly it gave me a few things to research further, and I appreciate that.
Overall I would say that Essential Mathematics for Games and Interactive Applications is an almost flawless textbook. I may be a great place to start for a beginner, and even intermediate to advanced readers may learn a thing or two. Some of the other game math books I recommend I read so long ago it’s hard to make a direct comparison. But this title is certainly up there with the best. I would wholeheartedly recommend.
I spent a few months working through this tome on nights and weekends this past fall, 2016. I've had a number of months now to let the book sink in.
If you're like me and don't have much of a formal math background, you'll definitely find much of the book challenging. I took not-infrequent breaks to deep-dive into a subject outside of the book (I ended up needing to learn the basics of calculus at the start of the Interpolation chapter, for example). But that's the real strength of the book -- it shows you what you ought to know. It says that these certain areas are important, and these other things are not. It ended up being an excellent starting point for a deeper understanding of the various subjects that are important when programming games.
What prompted me to pick up this book was a month or so wasted working through a number of Khan Academy videos on linear algebra. I found myself lost in the weeds of arcane math, without any grounding at all in actual application of that math. (Most of those videos are useless to a practical-minded game designer, and it's extremely difficult to know what's useful and what isn't.) This book is absolutely not theoretical -- it is grounded in the practical. You will not waste your time.
At first I thought that this book would only really be helpful if I wanted to write my own game engine from scratch -- which is what I worked on while I was working through the book. But recently I've been getting back into Unity, and finding myself drawing upon basically every aspect of the book -- transformations, interpolation, geometry and shading, etc. It's helped make Unity feel much, much less complex -- I find myself being able to imagine precisely what's happening under the hood, and that's helped me not just write better scripts, but also just query the API documentation more efficiently. Finally, I feel like I know what I'm doing.
The author of the book, James Van Verth, has done an excellent job not just with this text, but also with the community -- I had a number of questions about the text, and he was totally willing to answer my questions on Twitter. I was even able to discover a few small errors in the text, which he included in an Errata available on the website, which I'd recommend to any readers.
My only suggestion to the authors would be to, in a fourth edition, include exercises at the end of each chapter to make it more suitable as a pedagogical tool.
All the math you'll ever need in 3D and Games Programming will be explained clearly, along with the best solution of the domains, with pro/cons each time.
And Associated web site full of very very interesting links, along with demo/source code : http://www.essentialmath.com/
I just refer to it any junior programmer lost as the "math compass" when I see them googling all day long trying to figure the maths behind 3D/game programming. Sometimes they get correct result, often not understanding what they copy/past, but it's rarely the best/good anwser each time, with all reference and explanations... I really wish it to be mandatory to read that when they were students...