3D Computer Graphics: A Mathematical Introduction with OpenGL