转载:透视投影变化
这系列的关于渲染流水的帖子十分实用:http://blog.csdn.net/popy007/article/details/1797121
这个帖子中,对于投影平面选择上,其实没有必要纠结,因为在乘以透视矩阵后进行透视除法后,所有在平截头体内的坐标都要变化到[-1,1] 之内。
这个帖子中介绍的透视变化矩阵M:向量和这个矩阵相乘后,得到

这只是一个过度坐标。不是一个点,要都除去-z才能变成点(这是齐次和非齐次的转化),才是最终的透视坐标。但是,在这个坐标形式下进行裁剪时可以避免除零错误。因为根据推导过程,当都除以-z后,得到的点坐标时在cvv中的坐标,此时,各个坐标范围都是[-1,1]。那么在除-z之前就是[-z,z],我们其实不是在标准cvv中裁剪,而是在[-z,z]下裁剪,成功的避免了除零错误。这就是为什么在一些推导过程中并没有和[-1,1]比较,都是和-w和w比较。
并且要注意上面根据fov和宽高比来推导left,right,top,bottom的过程,这个过程中fov其实是在摄像机zy平面上,而不是在zx平面上。

浙公网安备 33010602011771号