关于Perspective Projection 中间点Z值变化的思考

前言

今日看完GAMES101-现代计算机图形学入门第四节留下的问题,做了一下自己的思考

b站传送门:GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili

思考

首先是已知条件

1.在frustum中任意点(x,y,z),其中z的范围为(f,n),因为参考的是右手坐标系,所以是近大远小。

参考:

2.位于z=n上的点,即近平面上的所有点,压缩后,并不会产生变化。

3.位于z=f上的点,即远平面上的所有点,压缩后,z值保持不变

4.点(0,0,f)压缩后不会变化。

推算

从数学角度讲,我们已知变化矩阵M_{ortho}M_{persp->ortho}

\begin{pmatrix} \frac{2}{r-l}&0 &0 &0 \\ 0&\frac{2}{t-b} &0 &0 \\ 0&0 &\frac{2}{n-f} &0 \\ 0 &0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1&0 &0 &-\frac{r+l}{2} \\ 0&1 &0 &-\frac{t+b}{2} \\ 0&0 &1 &-\frac{n+f}{2} \\ 0 &0 & 0 & 1 \end{pmatrix} \begin{pmatrix} n&0 &0 &0 \\ 0&n &0 &0 \\ 0&0 &n+f &-nf \\ 0 &0 & 1 & 0 \end{pmatrix}

其中M_{persp->ortho}

\begin{pmatrix} n&0 &0 &0 \\ 0&n &0 &0 \\ 0&0 &n+f &-nf \\ 0 &0 & 1 & 0 \end{pmatrix}

取点(x,y,z),叉乘M_{persp->ortho}

\begin{pmatrix} nx\\ ny\\ (n+f)z-nf\\ z \end{pmatrix}

{z}'=(n+f)z-nf

那么{z}'-z^{2其实就代表了z值的变化情况:

{z}'-z^{2}=(n+f)z-nf-z^{2}=-z^{2}+(n+f)z-nf

因为f<z<n<0,这个问题就变成了一元二次函数问题

\Delta =(n+f)^{2}-4nf=(n-f)^{2}>0,

说明此函数对应两个解

解a,b当然就是n和f,这下就豁然开朗了,因为A<0,所以在(f,n)区间内函数值大于0

结论就是z值变化的更大,即推远了

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值