Model View transformation(模型视图变换)
注意到定义一个相机我们需要三个矢量:
- 位置 \(\vec{e}\)
- 视线方向 \(\hat{g}\)
- 向上方向 \(\hat{t}\)
注意到我们的目标就是将相机固定到原点,并使 \(\hat{g},\hat{t}\) 和坐标轴对齐。
约定
我们最终让相机的向上方向 \(\hat{t}\) 为 \(y\) 轴,视线方向 \(\hat{g}\) 为 \(-z\) 轴。
移动 \(\vec{e}\) 至原点
\[T_{view}=\begin{bmatrix} 1 & 0 & 0 & -x_e\\ 0 & 1 & 0 & -y_e\\ 0 & 0 & 1 & -z_e\\ 0 & 0 & 0 & 1 \end{bmatrix} \]将 \(\hat{g},\hat{t}\) 与坐标轴对齐
考虑其逆矩阵:
\[R^{-1}_{view}=\begin{bmatrix} x_{\hat{g}\times\hat{t}} & x_{\hat{t}} & x_{-\hat{g}} & 0\\ y_{\hat{g}\times\hat{t}} & y_{\hat{t}} & y_{-\hat{g}} & 0\\ z_{\hat{g}\times\hat{t}} & z_{\hat{t}} & z_{-\hat{g}} & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} \]注意到 这是一个正交矩阵,其逆矩阵为其转置,故有:
\[R_{view}=(R^{-1}_{view})^\mathbf{T}= \begin{bmatrix} x_{\hat{g}\times\hat{t}} & y_{\hat{g}\times\hat{t}} & z_{\hat{g}\times\hat{t}} & 0\\ x_{\hat{t}} & y_{\hat{t}} & z_{\hat{t}} & 0\\ x_{-\hat{g}} & y_{-\hat{g}} & z_{-\hat{g}} & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} \]则有 \(M_{view}=R_{view}T_{view}\);让所有物体和相机一起做同样的变换,即得到结果。
Projection View(投影变换)
TODO...
标签:end,图形学,times,相机,Viewing,bmatrix,hat,Transformation,view From: https://www.cnblogs.com/watware-cym/p/17213354.html