Implemented perspective projection as a matrix (needs improvement).