Today is the greatest time in history to be in the game business. We now have the technology to create games that look real! Sony's Playstation II, XBOX, and Game Cube are cool! But, all this technology isn't easy or trivial to understand - it takes really hard work and lots of Red Bull. The difficulty level of game programming has definitely been cranked up these days in relation to the skill set needed to make games. Andre LaMothe's follow-up book to Tricks of the Windows Game Programming Gurus is the one to read for the latest in 3D game programming. When readers are finished with Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization, they will be able to create a full 3D texture-mapped, lit video game for the PC with a software rasterizer they can write themselves. Moreover, they will understand the underlying principles of 3D graphics and be able to better understand and utilize 3D hardware today and in the future.
I. INTRODUCTION TO 3D GAME PROGRAMMING.1. Getting Started with 3D Game Programming.
A Brief Introduction. The Elements of a 2D/3D Game. General Game Programming Guidelines. Using Tools. A Sample 3D Game: Raiders 3D. Summary. Chapter 2 - A Crash Course in Windows and DirectX. The Win32 Programming Model. The Bare Minimum for a Windows Program. A Basic Windows Application. DirectX and COM Crash Course. Flash Introduction to COM. Summary.2. 3D Game Programming with a Virtual Computer.
Introduction to the Virtual Computer Interface. Building the Virtual Computer Interface. The T3DLIB Game Console. The T3DLIB1 Library. The T3DLIB2 DirectX Input System. The T3DLIB3 Sound and Music Library. The DirectMusic API Rapper. Building the Final T3D Game Console. Sample T3LIB Applications. Summary.
II. 3D MATH AND TRANSFORMATION.4. It's a Math, Math, Math World-Trigonometry, Vectors, Matrices, and Quaternions.
Mathematical Notation. 2D Coordinate Systems. 3D Coordinate Systems. 3D Cylindrical Coordinates. 3D Spherical Coordinates. Trigonometry. Vectors. Matrices and Linear Algebra. Computing the Inverse and Solving Systems. Basic Geometric Entities. Lines in 3D Space. Using Parametric Equations. Introduction to Quaternions. Basic Calculus. Summary.5. Building a Math Engine.
Brief Overview of the Math Engine. Data Structures and Types. Math Constants. Macros and Inline Functions. Prototypes. Globals. Math Engine API Listing. Floating-Point Unit Math Primer. Notes on Using the Math Engine. Comments on Math Optimization. Summary.6. Introduction to 3D Graphics.
3D Engine Philosophy. The Structure of a 3D Game Engine. 3D Coordinate Systems. Basic 3D Data Structures. 3D Tools. Loading Data from the Outside World. Basic Rigid Transformations and Animation. Review of the Viewing Pipeline. Types of 3D Engines. Integrating Everything into a Final Engine. Summary.7. Rendering Wireframe Worlds in 3D.
General Wireframe Engine Architecture. Writing a 3D File Loader. Building the 3D Pipeline. Rendering a 3D World. 3D Demos. Summary.
III. BASIC 3D RENDERING.8. Basic Lighting and Solid Modeling.
Basic Lighting Models for Computer Graphics. Lighting and Rasterizing Triangles. Shading in the Real World. Depth Sorting and the Painter's Algorithm. Working with New Model Formats. 3D Modeling Tools Review. Summary.9. Interpolative Shading Techniques and Affine Texture Mapping.
The New T3D Engine Features. Upgrading the T3D Data Structures and Design. Rewriting the Object Loaders. Polygon Rasterization Review. Implementing Gouraud Shading. Basic Sampling Theory. Updating the Lighting/Rasterization Engine for Textures. Final Thoughts on Optimization Strategies for 8- and 16-Bit Modes. Final Demos. Summary.10. Clipping in 3D++.
Introduction to Clipping. Theoretical Coverage of Clipping Algorithms. Practical View Frustrum Clipping. A Little Fun with Terrain. Summary.11. Depth Buffering and Visibility.
Introduction to Depth Buffering and Visibility. Z-Buffering Basics. Creating the Z-Buffer System. Possible Z-Buffer Optimizations. Problems with the Z-Buffer. The Software and Z-Buffer Demos. Summary.
IV. ADVANCED 3D RENDERING.12. Advanced Texturing Techniques.
Texturing-The Second Wave. Building a New Rasterizer Base. Gouraud-Shaded Texturing. Transparency and Alpha Blending. Perspective-Correct Texturing and 1/z-Buffering. Bilinear Texture Filtering. Mip Mapping and Trilinear Texture Filtering. Multiple Pass Rendering and Texturing. Wrapping Things Up with a Single Call. Summary.13. Spatial Partitioning and Visibility Algorithms.
The New Game Engine Module. Introduction to Spatial Partitioning and Visible Surface Determination. The Binary Space Partition. Potentially Visible Sets. Portals. Bounding Hierarchical Volumes and Octrees. Occlusion Culling. Summary.14. Shadows, Lighting, and Secrets of the id.
The New Game Engine Module. Introduction and Game Plan. The Simplified Physics of Shadows. Simulating Shadows with Projective Images and Billboards. Planar Mesh Shadow Mapping. Introduction to Light Mapping and Surface Caching. Putting Everything Together. Summary.
V. ADVANCED ANIMATION, PHYSICS MODELING, AND OPTIMAZATION.15. 3D Character Animation, Motion, and Collision Detection.
The New Game Engine Module. Introduction to 3D Animation. The Quake II .MD2 File Format. Simple Non-Character-Based Animation. 3D Collision Detection. Summary.16. Optimization Technologies.
Introduction to Optimization Technologies. Profiling Your Code with Microsoft Visual C++ and Intel Vtune. Using the Intel C++ Compiler. Single Instruction Multiple Data (SIMD) Programming Primer with SSE. General Optimization Tricks. Summary.
VI. CD-ROM APPENDIXES.Appendix A. About The CD-ROM.