Essential Mathematics for Games and Interactive Applications, 2nd edition presents the core mathematics necessary for sophisticated 3D graphics and interactive physical simulations. The book begins with linear algebra and matrix multiplication and expands on this foundation to cover such topics as color and lighting, interpolation, animation and basic game physics. Essential Mathematics focuses on the issues of 3D game development important to programmers and includes optimization guidance throughout.
The new edition Windows code will now use Visual Studio.NET. There will also be DirectX support provided, along with OpenGL - due to its cross-platform nature. Programmers will find more concrete examples included in this edition, as well as additional information on tuning, optimization and robustness.
The book has a companion CD-ROM with exercises and a test bank for the academic secondary market, and for main market: code examples built around a shared code base, including a math library covering all the topics presented in the book, a core vector/matrix math engine, and libraries to support basic 3D rendering and interaction.
--Simple game engine with math, rendering, and input libraries on the CD-ROM, so that game developers can immediately start applying the techniques they learn in a basic codebase.
--Exercises on the CD-ROM for educators to use for course material
--Code samples shown throughout the book for real-world application
The following gives a high-level table of contents. Starred chapters will change significantly from the current edition, with changes noted.
Chapter 1: Vectors and Points
This chapter covers basic linear algebra topics such as vectors, points, lines and planes. Most changes will be in presentation, not in topic.
Chapter 2: Matrices and Linear Transformations
This continues the linear algebra discussion and discusses the mathematical methods for changing the concepts presented in Chapter 1. Most modifications will be in presentation, not in topic.
*Chapter 3: Affine Transformations
This completes the algebra discussion and covers basic graphics transformations such as translation, rotation and scale. Most changes will be in presentation, not in topic, although there will be a small section added on skinning.
Chapter 4: Real-World Computer Number Representation
This chapter covers the problems of representing the infinite space of numbers in a finite computer. Most modifications will be in presentation, not in topic.
Chapter 5: Viewing and Projection
This chapter begins the graphics topics with a discussion of building virtual cameras. Most modifications will be in presentation, not in topic.
*Chapter 6: Lighting and Color
This new chapter collates the color topics from the original Chapter 6 and the non-shading aspects of the original Chapter 7. To be presented here are the more abstract notions of color, normals to a surface, direction to a light, and how a lit color value is generated without any reference to triangles or interpolation.
*Chapter 7: Geometry, Shading and Texturing
As with the previous chapter, this one will take mostly material from the original chapters 6 and 7, and some from Chapter 8. The chapter will conclude with a brief discussion of hardware vertex and pixel shaders, but as this is not a graphics book per se it will only be at an introductory level.
*Chapter 8: Rasterization and Antialiasing
The final graphics chapter will now focus on sampling the continuous functions discussed in the previous two so that they can be represented on discrete hardware. Both rasterization and texturing will lead into a discussion of antialiasing and solving the problems for both processes: mip-mapping, multi-sampling, and other approaches.
*Chapter 9: Animation of Position
The previous version of this chapter focused on curves, and the new one will be no exception. However, rather than attempting to be a general curve discussion it will focus more on the particular curve types that are most often used in an interactive application for animating cameras and object position.
*Chapter 10: Animation of Orientation
As with the previous chapter, this one will be retargeted to focus mainly on animation issues. There will also be more material dedicated to approximating slerp, as there have been a number of publications and debate on this topic since the original publication of the book.
Chapter 11: Intersection Testing
This chapter covers basic bounding object tests and some topics in collision detection and culling. There will be few changes.
*Chapter 12: Physical Simulation
The general structure of this one will remain the same with only a few additions and expansions of existing topics based on the author's participation in the Physics for Game Programmers GDC tutorial. First, symplectic Euler and its stability properties will be discussed. Secondly, more attention will be given to generating inertial tensors for triangle soups. Finally, simple constraints will be presented.
*Chapter 13: Random Numbers
This chapter was originally planned for the first edition and was requested by a number of reviewers. It will cover basic probability, three methods for generating pseudo-random numbers on a digital computer, and some applications of random numbers: Artificial intelligence routines, simulating die rolls and card draws, Perlin noise for procedural textures, and finally some basic presentation of stochastic sampling for anti-aliasing.