从x轴开始,视域体中的点的x坐标范围在[l, r],想把它变换到范围在[-1, 1]:
现在,准备把范围缩小到我们期望的,各项减去l,这样,最左边的项变为0。...见图4:
图4: 透视投影
正如你所看见的,视域体的近平面从(l,b, n)延伸至(r, t, n)。远平面范围是从原点发射穿过近平面四个点的射线直至与平面z=f相交。...第2步: 使用你在正交投影中学会推导的公式,把x坐标从[l, r]映射到[-1, 1],把y坐标范围从[b, t]映射到[-1, 1]。
听上去很棒吧?...看一看图5:
图5: 使用相似三角形投影一个点到z=n平面
在这个图中,你从点(x, y, z)到原点画了条直线,注意直线与z=n平面相交的那个点——用黑色标记的那个。...根据勾股定理,从(x, y, z)相对于z轴做的垂线具有以下长度:
如果你知道了从你的投影点到z轴的垂线的长度,那么你就可以计算出该点的x和y坐标。长度怎么求?那太简单了!