Beginning 3d Game Programming by Tom Miller