Skip to content

Projection Transformation ​

正交投影(Orthographic projection) ​

shear

有:

Mortho =[2r−l00002t−b00002n−f00001][100−r+l2010−t+b2001−n+f20001]

透视投影(Perspective projection) ​

shear

Mpersp→ortho=[n0000n0000n+f−fn0010]Mpersp=Mortho⋅Mpersp→ortho=[2nr−l0l+rl−r002nt−bb+tb−t000n+fn−f−2nfn−f0010]

推导 ​

shear

  1. 对于视椎体内部,上平面上的任意点 (x,y,z)

    根据相似三角形,有:

    y′=nzy,x′=nzx

    在齐次坐标系下做恒等变换:

    Mpersp→ortho⋅[xyz1]=[nzxnzy?1]

    由于在齐次坐标系下: (x,y,z,1)⊤ 与 (kx,ky,kz,k)⊤ 都表示同一个点,有:

    Mpersp→ortho⋅[xyz1]=[nxny?z]

    即:

    Mpersp→ortho=[n0000n00????0010]
  2. 近平面上的点变换前后 z 值不变

    把近平面的点带入(近平面上的点 z=n)

    [xyz1]⇒[xyn1]=[nxnyn2n]

    观察矩阵 Mpersp→ortho 的第三行,显然有:

    Mpersp→ortho=[n0000n0000??0010]

    假设两个未知量为 A 和 B:

    An+B=n2
  3. 远平面上的点变换前后 z 值不变

    同理可得:

    Af+B=f2

    求解 A 和 B,最终可得:

    Mpersp→ortho=[n0000n0000n+f−fn0010]