关于透视校正

使用如下的矩阵进行透视投影:
proj=[n0000n0000n+fnf00−10] \mathrm{proj}=\begin{bmatrix} n&0&0&0\\0&n&0&0\\0&0&n+f&nf\\0&0&-1&0 \end{bmatrix} proj=n0000n0000n+f100nf0

假设有两个点 P(x1,y1,z1,w1),Q(x2,y2,z2,w2)P(x_1,y_1,z_1,w_1),Q(x_2,y_2,z_2,w_2)P(x1,y1,z1,w1),Q(x2,y2,z2,w2),进行变换后得到的点为 P′(nx1,ny2,(n+f) z1+nfw1,−z1),Q′(nx2,ny2,(n+f) z2+nfw2,−z2)P'(nx_1,ny_2,(n+f)\,z_1+nfw_1,-z_1),Q'(nx_2,ny_2,(n+f)\,z_2+nfw_2,-z_2)P(nx1,ny2,(n+f)z1+nfw1,z1),Q(nx2,ny2,(n+f)z2+nfw2,z2).

对于变换卡后的 x,yx,yx,y 坐标,他们的之间的差呈现正比关系,但是对于 zzz 坐标,呈现出非正比的关系,即 z2/w2−z1/w1∝̸−(n+f)−nfw2/z2+(n+f)+nfw1/z1z_2/w_2-z_1/w_1\not\propto -(n+f)-nfw_2/z_2+(n+f)+nfw_1/z_1z2/w2z1/w1(n+f)nfw2/z2+(n+f)+nfw1/z1.

但是我们注意到对于变换后的 zzz 坐标,其差为
(w1z1−w2z2) nf \left(\cfrac{w_1}{z_1}-\cfrac{w_2}{z_2}\right)\,nf (z1w1z2w2)nf

正比于变换之前的坐标倒数之差
w1z1−w2z2 \cfrac{w_1}{z_1}-\cfrac{w_2}{z_2} z1w1z2w2

这是一个重要的性质。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐