Introduction to 3D Game Programming with DirectX 9 by Frank D. Luna