Camera Position from View matrix

某些应用中可能需要由已经变换得到的View,Projection矩阵来反推当前的Camera信息,比如摄像机的位置、远近平面的设置等。这些操作在一些效果的渲染,比如Water reflection、refraction等中可能会被用到。首先,View Matrix的作用是将世界坐标系下的点变换到摄像机坐标系中,如些一来摄像机在世界坐标系中的位置就会被变换到视图坐标系中的原点处:

此时,反之即可得。鉴于P' 的特殊性,因而原始Camera在世界坐标系中的位置就可以直接Mv的逆中取出平移分量(注意左右手坐标系的区别)来获得。
此外,为了获得对应的投影矩阵,需要传入远近平面以及视口的长宽参数来进行构造,这些信息最终也都保存到了相应的投影矩阵里:
Camera Position from View matrix_第1张图片

如此一来原始各个参数与Mp中的各分量的对应关系就很明确了,直接使用w、h 就可以得到视口的相关信息,而利用另外两个非0分量的组合即可求得nf

你可能感兴趣的:(Matrix)