我对齐次坐标在3D图形中应用的部分理解

齐次坐标是我之前一直不太理解的,之后有听到这句话

“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR。

如何来理解这句话呢?

这里不谈严格的其次坐标和齐次矩阵的严格数学定义(如有所需请找其他的相关资料),只谈我的理解之下的它的应用

1.基于3D空间的"平移矩阵"

普通的3D向量和点只需要 (x,y,z) 3个分量

但是我们没办法区分他是一个点,还是一个向量(在书面记法上可以用圆括号横写表示点,用方括号竖写表示向量),并且只能应用于线性变换(3X3矩阵)

如果需要进行平移操作(仿射变换),则需要4X4矩阵,这就需要让我们的向量、点从3个分量扩展到4个分量 (x,y,z,w)

我对齐次坐标在3D图形中应用的部分理解

 此时矩阵为

我对齐次坐标在3D图形中应用的部分理解

 可以将矩阵的第四个基向量l的 其中三个分量 △x,△y,△z 用作平移,这样我们就可以直接基于矩阵的运算法则,将平移操作的能力加入到对我们关心的3D空间中了。

2.区分点和向量

基于上面的4X4矩阵,若我们传入的向量(x,y,z,w)中的w分量等于0,则表示这是一个向量,有”关闭平移功能”的含义。

若w分量 不为0 ,表示是一个点,有“打开平移功能”的含义。

另外,在数学上的点和向量的一些定义:

  对于一个向量v,以及基oabc,可以找到一组坐标(v1,v2,v3),使得v = v1 a + v2 b + v3 c                   (1)在数学上研究向量时,默认是认为它的箭头尾部始终是起始于原点

    对于一个p,则可以找到一组坐标(p1,p2,p3),使得 p – o = p1 a + p2 b + p3 c                             2) 有的书中把这样的向量叫做位置向量

       对于(2)中的p,也可以转化成,在表达这个向量的同时用等价的方式表达出了点p:o + p1 a + p2 b + p3 c      (3)

所以,如果我给出 (1,2,3) 你不知道它是一个点还是向量,但如果我给出

(1,2,3,0) 你知道它是一个向量,因为它关闭了平移功能,满足(1)的定义,关闭了仿射变换,只可以用线性变换

(1,2,3,1) 你知道它是一个,因为它打开了平移功能,满足(3)的定义,打开了仿射变换

由于用了4个分量表达3D中的概念,且遵循线性代数中矩阵的运算法则,支持了平移及已延伸功能,如绕非原点旋转等,所以非常方便的完成了3D中更多的,常见的,只用3D向量表示的话比较麻烦的变换功能。

3.和3D透视投影的关系

另外齐次坐标在3D透视摄像机投影的计算中,往往用在最后一步:齐次化

代数上通过给出一个4分量的点,表示为我对齐次坐标在3D图形中应用的部分理解 齐次化为 我对齐次坐标在3D图形中应用的部分理解 的形式,这里主要的使用目的是:齐次化的操作,支持除法,而除法操作是透视投影中需要的

让 我对齐次坐标在3D图形中应用的部分理解 点,根据近大远小,相似三角形原理,齐次化为  我对齐次坐标在3D图形中应用的部分理解

总结

所以用4个分量表示的齐次坐标,来表达3D中的概念,扩展了一些功能

支持区分点还是向量的能力,支持仿射变换(平移)的能力,支持齐次化(除法)的能力