3D Game Engine Design by David H. Eberly & David Eberly