前言
今日看完GAMES101-现代计算机图形学入门第四节留下的问题,做了一下自己的思考
b站传送门:GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili
思考
首先是已知条件:
1.在frustum中任意点(x,y,z),其中z的范围为(f,n),因为参考的是右手坐标系,所以是近大远小。
参考:
2.位于z=n上的点,即近平面上的所有点,压缩后,并不会产生变化。
3.位于z=f上的点,即远平面上的所有点,压缩后,z值保持不变
4.点(0,0,f)压缩后不会变化。
推算
从数学角度讲,我们已知变化矩阵为
其中为
取点(x,y,z),叉乘得
那么其实就代表了z值的变化情况:
因为f<z<n<0,这个问题就变成了一元二次函数问题
,
说明此函数对应两个解
解a,b当然就是n和f,这下就豁然开朗了,因为A<0,所以在(f,n)区间内函数值大于0
结论就是z值变化的更大,即推远了