Skip to content

Projection Transformation

正交投影(Orthographic projection)

shear

有:

Mortho =[2rl00002tb00002nf00001][100r+l2010t+b2001n+f20001]

透视投影(Perspective projection)

shear

Mpersportho=[n0000n0000n+ffn0010]Mpersp=MorthoMpersportho=[2nrl0l+rlr002ntbb+tbt000n+fnf2nfnf0010]

推导

shear

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

    根据相似三角形,有:

    y=nzy,x=nzx

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

    Mpersportho[xyz1]=[nzxnzy?1]

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

    Mpersportho[xyz1]=[nxny?z]

    即:

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

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

    [xyz1][xyn1]=[nxnyn2n]

    观察矩阵 Mpersportho 的第三行,显然有:

    Mpersportho=[n0000n0000??0010]

    假设两个未知量为 AB

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

    同理可得:

    Af+B=f2

    求解 AB,最终可得:

    Mpersportho=[n0000n0000n+ffn0010]