顾名思义,观察矩阵的作用就是将一个点从世界坐标系转换到观察坐标系,这个点的实际位置并不发生变化。参考上一篇文章,问题就转化成了,假设任意点,它在世界坐标系下的坐标为,求在观察坐标系下的坐标。套用公式,可得:
其中为坐标系的原点坐标。将上述基向量看作世界坐标系下的向量,可以写成矩阵形式:
其中,是观察坐标系的基向量和原点在世界坐标系的表示。一般来说,建立观察矩阵提供的参数是摄像机的世界坐标,摄像机观察的目标点的世界坐标,代表世界up方向的向量。分别求出上面矩阵的各个向量:
注意要将它们进行归一化。归一化之后,可以得到
这就是我们最终要求的观察矩阵。