Math for 3D Game Programming & Computer Graphics by Eric Lengyel