games101_Lecture4_视频最后的思考题_个人梳理

【完全的个人理解,梳理给自己看的。如果有错希望有大佬可以说一下。后续看情况自己改正】

 

通过第二张图,当将平面挤压时,可得到x,y的对应位置(相似三角形),但是在(n,f)范围内的Z坐标(假设为w)在挤压过程中会变动,所以不能确定具体位置,由此可以得到在(n,f)范围内,压缩后的坐标为:

\begin{pmatrix} xn/w\\ yn/w\\ unknow\\ 1\\ \end{pmatrix}== \begin{pmatrix} xn\\ yn\\ unknow\\ w\\ \end{pmatrix}(同时乘以w,点的位置没有变化,不知道xn/w怎么得到的话再看看视频)

1.列出待求解方程

想要知道怎么从原坐标\begin{pmatrix} x\\ y\\ w\\ 1\\ \end{pmatrix}压缩为\begin{pmatrix} xn/w\\ yn/w\\ unknow\\ 1\\ \end{pmatrix},就要求解M:M^{(4*4)}\begin{pmatrix} x\\ y\\ w\\ 1 \end{pmatrix}=\begin{pmatrix} xn/w\\ yn/w\\ unknown\\ 1 \end{pmatrix}==\begin{pmatrix} xn\\ yn\\ unknown\\ w \end{pmatrix}(※这里同时乘以了w,最后的时候需要除回去。w是未知数,取值范围在(n,f)之间)

2.求解过程

1.通过这个需要求解的方程本身,可以得到M=\begin{pmatrix} w & 0 & 0 & 0\\ 0 & w & 0 & 0\\ ? & ? & ? & ?\\ 0 & 0 & 1 & 0 \end{pmatrix}(视频也是讲了为何可以得到,挺容易听懂)

2.通过特殊点来求解,一个是n平面上的点(所有值都不变,不会被压缩)。一个远平面f的中心点(0,0,f,1),同样不会变化。

2.(1)在n平面上,w=n。此时不是unknown,因为已知在n平面上点的位置不变,为\begin{pmatrix} x\\ y\\ n\\ 1 \end{pmatrix},为了方便,同时乘n,所以此时unknown=n^{2}

\begin{pmatrix} n & 0 & 0 & 0\\ 0 & n & 0 & 0\\ ? & ? & ? & ?\\ 0 & 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} x\\ y\\ n\\ 1 \end{pmatrix}=\begin{pmatrix} xn\\ yn\\ n^{2}\\ n \end{pmatrix}-> \begin{pmatrix} n & 0 & 0 & 0\\ 0 & n & 0 & 0\\ 0 & 0 & A & B\\ 0 & 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} x\\ y\\ n\\ 1 \end{pmatrix}=\begin{pmatrix} xn\\ yn\\ n^{2}\\ n \end{pmatrix}

推出:nA+B=n^{2}

2.(2)同理,在f平面的中心点,w=f。

\begin{pmatrix} f & 0 & 0 & 0\\ 0 & f & 0 & 0\\ ? & ? & ? & ?\\ 0 & 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} 0\\ 0\\ f\\ 1 \end{pmatrix}=\begin{pmatrix} 0\\ 0\\ f^{2}\\ f \end{pmatrix}-> \begin{pmatrix} f & 0 & 0 & 0\\ 0 & f & 0 & 0\\ 0 & 0 & A & B\\ 0 & 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} 0\\ 0\\ f\\ 1 \end{pmatrix}=\begin{pmatrix} 0\\ 0\\ f^{2}\\ f \end{pmatrix}

推出:fA+B=f^{2}

3.方程答案

联立两个公式\left\{\begin{matrix} nA+B=n^{2}\\ fA+B=f^{2} \end{matrix}\right.,解得:\left\{\begin{matrix} A=n+f\\ B=-nf \end{matrix}\right.

同时再多代几个(n,f)之间的值,可以得到,x与y轴的w=n。

所以:M^{(4*4)}=\begin{pmatrix} n & 0 & 0 & 0\\ 0 & n & 0 & 0\\ 0 & 0 & n+f & -nf\\ 0 & 0 & 1 & 0 \end{pmatrix}

4.z压缩后的位置

在压缩前,中间位置为\frac{n+f}{2}。压缩后的位置通过方程\begin{pmatrix} n & 0 & 0 & 0\\ 0 & n & 0 & 0\\ 0 & 0 & n+f & -nf\\ 0 & 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} x\\ y\\ w\\ 1 \end{pmatrix}得到。

w=\frac{n+f}{2}时:

\begin{pmatrix} n & 0 & 0 & 0\\ 0 & n & 0 & 0\\ 0 & 0 & n+f & -nf\\ 0 & 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} x\\ y\\ (n+f)/2\\ 1 \end{pmatrix}=\begin{pmatrix} nx\\ ny\\ (n^{2}+f^{2})/2\\ (n+f)/2 \end{pmatrix}

所以解出z的位置为\frac{n^{2}+f^{2}}{2} ,同时之前是为了方便计算额外乘以了w=\frac{n+f}{2},所以z的实际位置为:\frac{n^{2}+f^{2}}{n+f}

5.对比位置

因为是面朝-z轴,所以 f<n<0.

\frac{n^{2}+f^{2}}{n+f}-\frac{n+f}{2}=\frac{(n-f)^{2}}{2(n+f)}<0

所以z的实际位置数值更小,所以说更偏向f

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值