
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.
The book starts with little more than plotting a pixel on the screen. By the end you'll have a complete lit, shaded, 3D game engine that you've written entirely from scratch. And in the process you will learn absolutely everything that goes into it.
And one thing I'd add is that this might sound somewhat overwhelming but it's really not. The book is extremely well written and clearly was a labor of love. If you get some pleasure out of math and code, you'll have no technical troubles working your way through the book and in the end will be rewarded with an intimate, flexible understanding of graphics development that won't be hamstrung by dependence on a specific API.
[1] - https://www.amazon.com/Tricks-Programming-Gurus-Advanced-Gra...
[1] - https://www.amazon.com/Tricks-Programming-Gurus-Advanced-Gra...
The book teaches you how to write a 3D software rasterizer from first principles. The first part of the book is nothing but a well written linear algebra primer. The book then assumes you have nothing but a C++ compiler and a pointer to the frame buffer like you might get using SDL.
Unfortunately the book appears to be out of print, and the APIs used are a bit out of date at this point (Win32 and old DirectX used to set up a window w/ a frame buffer ptr).
All the same, I would still highly recommend it to anyone who wants to understand the foundations of 3D math and fixed function rendering pipelines.
The book is nice but LaMothe needed an editor badly, not only there are endless reams of source code in the book (despite coming with a CD-ROM), he was also often incredibly verbose to the point where by the time i finished some section i forgot how it all began. IIRC the book was so big that it couldn't all be put in print and the last chapter (or chapters) were on CD-ROM. And the parts that were printed were still so physically big that i had a hard time reading it.
Also i think his focus was a bit too lopsided, he spent way too much on some things but barely on others. For example he spent a lot of time for various ways to do slightly different rasterizations (e.g. bilinear filtering - which, ok, it is the only gamedev related book or tutorial i know that mixed software rendering and bilinear filtering) but on the part about optimizing the renderer to not render invisible stuff (which at least IMO would be more important than doing bilinear filtering for a software rendering engine) he largely handwaved things.