我想在执行透视划分后恢复同质转换。更具体地说,我正在使用conservative rasterization实现基于GPU的体素化算法。总的来说,这些是我到目前为止实现的步骤(VS =顶点着色器,GS =几何着色器):
接下来,我想从(3)恢复视图变换,并使用不同的视图矩阵变换顶点。现在,我的问题是它是否像应用逆视图矩阵一样容易?当我只使用正交投影和仿射(旋转,平移,缩放)变换时,我是否需要担心齐次坐标?在我看来,只有正常的变换,我需要担心它,因为转置的逆不是仿射变换。我既没有找到关于这个主题的网络资源也没有找到反例,所以我在这里问。
答案 0 :(得分:3)
当查看正交投影矩阵时,
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.在实践中,这意味着,只要您仅使用正交投影,就不必担心透视偏差。