new camera implemented with matrix