Direct3d And 3d Engine Programming by Stefan Zerbst