3D图形:透视投影

111396375-e6843c8e4d33caad

概述


3D图形:矩阵与线性变换中,曾经简单的说过关于正交投影和透视投影的简单区别,这一篇博客将对透视投影做进一步的了解与深入.

如下图所示,两种投影方式,一种是平行投影也叫作正交投影,正交投影的特点是所有的投影线都是平行的,另外一种则是今天的主题,透视投影,透视投影的特点是投影线是相交于一点的,相交于这个点叫做投影中心.

121396375-cb143f1a9ab045c0

几何原理解释


如图所示,假设原点O为投影中心,点A = [x y z]为投射之前的点,点H为投射之后的点,假如说投射平面在投射点的左侧,投影平面距离投影中心的距离为d.

131396375-102889dfa2408d25

上面在3D环境显得有些杂乱,我们就把它放在2D环境中,如下所示.

141396375-88218092738583bd

那么我们可以通过比例计算出z = -d的时候,投影坐标H的具体坐标,如下所示.

151396375-6c38d2191113eeee

那么,上面的是在投影中左边的投影,下面我们看一下,在投影中心的右边的投影是如何的.

1661396375-413eec82d7a62d36

我们仍然还是把整体放在一个2D环境中,如下所示.

171396375-8a9730d06a0b5eee

那么我们依然可以根据比例关系推导出z =d投射点G的坐标.

181396375-02ac357158daf89d

使用4X4矩阵进行投影变换


上一篇博客中,我写到了如何使用4X4矩阵进行平移变换,那么4X4矩阵可不可以进行投影变换呢?这还用说,肯定是可以的了,就拿上一个模块中投射平面在投射中心的右边(z = d),假设投射之前的点A的w=1,那么A= [x,y,z,1],那么投射完成的点,我们可以给它改成如下所示.

191396375-51c0d5f002673328

那么A= [x,y,z,1]如何通过矩阵变换到G = [x,y,z,z/d],然后就出现了如下形式了.

201396375-d39a43442881a16c

总结


这一篇文章只是简单地介绍了透视投影,到后面我将会专门的写一篇关于透视投影的博客,下面一篇博客将对欧拉角与四元数进行研究.欢迎继续关注骚栋.

最后还是要附上<<3D数学基础 图形与游戏开发>>的pdf版的传送门.

–> <<3D数学基础 图形与游戏开发>>传送门🚪
1 1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部