This textbook emphasises the fundamentals and the mathematics underlying computer graphics. The minimal prerequisites, a basic knowledge of calculus and vectors plus some programming experience in C or C++, make the book suitable for self study or for use as an advanced undergraduate or introductory graduate text. The author gives a thorough treatment of transformations and viewing, lighting and shading models, interpolation and averaging, Bézier curves and B-splines, ray tracing and radiosity, and intersection testing with rays. Additional topics, covered in less depth, include texture mapping and colour theory. The book covers some aspects of animation, including quaternions, orientation, and inverse kinematics, and includes source code for a Ray Tracing software package. The book is intended for use along with any OpenGL programming book, but the crucial features of OpenGL are briefly covered to help readers get up to speed. Accompanying software is available freely from the book's web site.