有三个原因:
0)后面投影之后的光栅化阶段,要通过x'和y'对z进行线性插值,
以求出三角形内部片元的z,进行z缓冲深度测试。
在数学上,投影后的x'和y',与z不是线性关系,与1/z才是线性关系。
而正是1/z的线性关系,即-a+b/z。
用这个1/z的线性组合值和x'、y'进行插值才是正确的。
(2013年11月补充条目。对此感到迷惑的读者可以参考《深入探索透视纹理映射》,里面从细节上说明了这个问题。)
1) P’的3个代数分量统一地除以分母-z,易于使用齐次坐标变为普通坐标来完成,使得处理更加一致、高效。
2) 后面的CVV是一个x,y,z的范围都为[-1,1]的规则体,便于进行多边形裁剪。
而我们可以适当的选择系数a和b,使得这个式子在z = -N的时候值为-1,而在z = -F的时候值为1,从而在z方向上构建CVV。