Introduction to 3D Game Programming with DirectX 10 presents an introduction to programming interactive computer graphics, with an emphasis on game development, using Direct3D 10. It teaches the fundamentals of Direct3D and shader programming, after which the reader will be prepared to go on and learn more advanced techniques. The book is divided into three main parts. Part I explains the mathematical tools that will be used throughout this book. Part II shows how to implement fundamental tasks in Direct3D, such as initialization, defining 3D geometry, setting up cameras, creating vertex, pixel, and geometry shaders, lighting, texturing, blending, and stenciling. Part III is largely about applying Direct3D to implement a variety of interesting techniques and special effects, such as working with meshes, terrain rendering, picking, particle systems, environment mapping, normal mapping, shadows, and rendering to textures. The book is designed for intermediate-level C++ programmers who are completely new to Direct3D and game programming, 3D programmers experienced with an API other than Direct3D (e.g., OpenGL), and programmers experienced with previous versions of Direct3D wishing to learn the latest version--Direct3D 10.