3D图形:透视投影
2016-10-20 本文已影响979人
神经骚栋
概述
在3D图形:矩阵与线性变换中,曾经简单的说过关于正交投影和透视投影的简单区别,这一篇博客将对透视投影做进一步的了解与深入.
如下图所示,两种投影方式,一种是平行投影也叫作正交投影,正交投影的特点是所有的投影线都是平行的,另外一种则是今天的主题,透视投影,透视投影的特点是投影线是相交于一点的,相交于这个点叫做投影中心.
几何原理解释
如图所示,假设原点O为投影中心,点A = [x y z]为投射之前的点,点H为投射之后的点,假如说投射平面在投射点的左侧,投影平面距离投影中心的距离为d.
上面在3D环境显得有些杂乱,我们就把它放在2D环境中,如下所示.
那么我们可以通过比例计算出z = -d的时候,投影坐标H的具体坐标,如下所示.
那么,上面的是在投影中左边的投影,下面我们看一下,在投影中心的右边的投影是如何的.
我们仍然还是把整体放在一个2D环境中,如下所示.
那么我们依然可以根据比例关系推导出z =d投射点G的坐标.
使用4X4矩阵进行投影变换
上一篇博客中,我写到了如何使用4X4矩阵进行平移变换,那么4X4矩阵可不可以进行投影变换呢?这还用说,肯定是可以的了,就拿上一个模块中投射平面在投射中心的右边(z = d),假设投射之前的点A的w=1,那么A= [x,y,z,1],那么投射完成的点,我们可以给它改成如下所示.
那么A= [x,y,z,1]如何通过矩阵变换到G = [x,y,z,z/d],然后就出现了如下形式了.
总结
这一篇文章只是简单地介绍了透视投影,到后面我将会专门的写一篇关于透视投影的博客,下面一篇博客将对欧拉角与四元数进行研究.欢迎继续关注骚栋.
最后还是要附上<<3D数学基础 图形与游戏开发>>的pdf版的传送门.