Transformations and Projections in Computer Graphics by David Salomon