Implement a camera to replace the OpenGL matrix stack.