1

我想在执行透视除法后恢复同质变换。更具体地说,我正在使用保守光栅化实现基于 GPU 的体素化算法。概述一下,这些是我迄今为止实施的步骤(VS=顶点着色器,GS=几何着色器):

  1. 将模型变换应用于顶点 (VS)。
  2. 对每个顶点 (GS) 的副本应用正交投影变换。
  3. 将视图变换应用于副本 (GS)。
  4. 对副本 (GS) 执行透视分割。
  5. 根据屏幕坐标 (GS) 平移复制的顶点。

接下来,我想从 (3) 恢复视图变换,并使用不同的视图矩阵变换顶点。现在,我的问题是它是否像应用逆视图矩阵一样简单?当我只使用正交投影和仿射(旋转、平移、缩放)变换时,我是否需要担心齐次坐标?在我看来,只有正常的变换我才需要担心它,因为转置的逆不是仿射变换。我既找不到关于这个主题的网络资源也找不到反例,所以我在这里问。

4

1 回答 1

4

当查看如下正交投影矩阵时,

     2/(r - l)    0        0       tx
        0     2/(t - b)    0       ty
M =     0         0    -2/(f - n)  tz 
        0         0        0       1

可以注意到,最后一行是 [0,0,0,1]。这意味着,当 M 与向量 [x1,y1,z1,1] 相乘时,结果将是 [x2,y2,z2,1]。因此,在执行透视分割时,系统将始终除以 1。实际上这意味着,只要您只使用正交投影,您就不必担心透视分割。

于 2014-11-17T08:08:24.967 回答