首页 > 其他分享 >图形学、02 推导证明 | 任意一点经过透视投影后 z 坐标相对于之前有什么变化

图形学、02 推导证明 | 任意一点经过透视投影后 z 坐标相对于之前有什么变化

时间:2023-10-16 11:15:46浏览次数:39  
标签:02 begin end 推导 图形学 nf bmatrix frac Rightarrow

齐次坐标知识点: \(\begin{bmatrix} x \\ y \\ z \\ 1 \\\end{bmatrix} \Rightarrow\begin{bmatrix} nx \\ ny \\ nz \\ n \\\end{bmatrix}\) 两个都表示同一个点

透视投影:先将远截面按一定规则缩放到跟近截面一样大,然后再正交投影

缩放规则:远截面缩放后\(z\)不变,缩放过后大小同近截面相同。

image-20231016101159983

截取yz平面,\(ZNear = n,ZFar = f\) ,则任意一点经过缩放后: \(y^{’} = \frac{n}{z}y\) (相似三角形)

xz平面同理: \(x^{’} = \frac{n}{z}x\) ,即 \(\begin{bmatrix} x \\ y \\ z \\ 1 \\\end{bmatrix} \Rightarrow\begin{bmatrix} \frac{n}{z}x \\ \frac{n}{z}y \\ unknown \\ 1 \\\end{bmatrix}\Rightarrow\begin{bmatrix}nx \\ ny \\ unknown \\ z \\\end{bmatrix}\)

如此可以确定一部分矩阵参数:

\(M_{persp\rightarrow ortho} = \begin{bmatrix} n & 0 & 0 & 0 \\ 0 & n & 0 & 0 \\ ... & ... & ... & ... \\ 0 & 0 & 1 & 0 \\\end{bmatrix}\)

对于近截面和远截面上的点,透视变换后z是不变的(缩放规则)

只看第三行的结果

\(\begin{bmatrix} A&B&C&D\\ \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \\\end{bmatrix} \Rightarrow z^2\)

显然 \(A = B = 0\) ,代入 \(Z = n ,Z = f\) 有

\(Cn+D = n^{2}\)

\(Cf+D = f^{2}\)

得到 \(C = n+f,D=-nf\)

最后求得

\(M_{persp\rightarrow ortho} = \begin{bmatrix} n & 0 & 0 & 0 \\ 0 & n & 0 & 0 \\ 0 & 0 & n+f & -nf \\ 0 & 0 & 1 & 0 \\\end{bmatrix}\)


课后问题:对于任意一个满足 \(n\leq z\leq f\) 的点,经过透视投影后, z 坐标相对于之前有什么变化

\(M_{persp\rightarrow ortho}\begin{bmatrix} x \\ y \\ z \\ 1 \\\end{bmatrix} \Rightarrow \begin{bmatrix} nx \\ ny \\ (n+f)z-nf \\ z\\\end{bmatrix}\Rightarrow \begin{bmatrix} \frac{n}{z}x \\ \frac{n}{z}y \\ \frac{(n+f)z-nf}{z} \\ 1\\\end{bmatrix}\)

比较 \(\frac{(n+f)z-nf}{z} - z\) 跟0的关系即可,不妨乘以一个 z 得到:

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

又 \(n\leq z\leq f\) ,故 \(f(z) \geq 0\) ,即透视投影后, z 坐标相对于以前离相机更远了

对 \(f(z) = \frac{(n+f)z-nf}{z} - z\) ,对 \(z\) 求偏导

\(\begin{array}{l} \frac{\partial f}{\partial z}=\frac{(n+f) z-(n+f) z+nf}{z^{2}}-1 \\ \frac{\partial f}{\partial z}=\frac{n f}{z^{2}}-1=\frac{nf-z^{2}}{z^{2}} \\ z^{2}=nf \quad z= \pm \sqrt{nf} \end{array}\)

\(z\) 从 \(n\) 到 \(- \sqrt{nf}\) 单调递增之后单调递减


分数求导

\(\begin{array}{l} g(x) \neq 0 , f(x) , g(x) \text { 均可导 } \\ {\left[\frac{f(x)}{g(x)}\right]^{\prime}=\frac{f^{\prime}(x) g(x)-g^{\prime}(x) f(x)}{[g(x)]^{2}}} \end{array}\)

标签:02,begin,end,推导,图形学,nf,bmatrix,frac,Rightarrow
From: https://www.cnblogs.com/linxiaoxu/p/17766887.html

相关文章

  • 2023香山杯
    2023香山杯move一眼栈溢出,然后三次栈迁移。expfromtoolsimport*context(os='linux',arch='amd64',log_level='debug')p,e,libc=load("./pwn")pop_rdi=0x401353ret=0x40101abss=0x4050A0leave_ret=0x40124bread=0x401230pop_rbp=0x4011......
  • 前台端分离 技术架构 系统架构图 20231016
       ......
  • solidworks 2024新功能之--保存为低版本 硕迪科技
    大家期盼已久的SOLIDWORKS保存低版本文件功能来了,从SOLIDWORKS2024开始,您可以将在最新版本的SOLIDWORKS中创建的SOLIDWORKS零件、装配体和工程图另存为SOLIDWORKS早期版本的全功能文档(完成的特征树与相关参数)。将文件另存为先前版本,即可与使用旧版本 SOLIDWORKS 的任何人进......
  • hadoop集群 大数据项目实战_电信用户行为分析_day02
    集群配置好后,运行一个小例子,统计单词1.hdfsdfs-put将本地系统的文件或文件夹复制到HDFS上2.hdfsdfs-ls/output  将所有的文件显示出来3.hdfsdfs-cat/output/ 将所有的文件读取出来 下载part-r-000000安装Redis1.下载Rediswgethttps://download.redis.i......
  • 20231015NOIP训练赛
    20231015NOIP训练赛时间安排7:50-8:10写T18:10-11:50写T2总结T2写了分段但是因为太过自信然后全删了题解T1板子题,建一个超级源点即可T2数学题,用组合数计算,然后再用前缀和优化T3先建出S到T的最短路图,然后在在这个DAG上进行DP,注意还要再建出T到S的最短路图再跑一遍。T......
  • 学期:2023-2024-1 学号:20231426 《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计第一周作业这个作业的目标通过教材内容了解计算机信息层作业正文(https://www.cnblogs.com/hhaxx/p/17766468.html)教材学习内容总结......
  • 2023.10.15——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午休息,下午校内算法比赛;我了解到的知识点:1.写对四道;明日计划:学习......
  • 2023-10-15 #73 就等待吧
    ——COP《雪来临时》如题,所以抱歉这次鸽了。511P8354[SDOI/SXOI2022]多边形三角剖分是我们已解决的经典问题,答案是卡特兰数。我们尝试通过一些手段去除题目中的限制,求出系数\(c_3,c_4,\cdots,c_m\),将问题规约至求若干次多边形的三角剖分数量,最后答案为\(\sum_ic_i\text{C......
  • 2023-2024-1 20231310《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/12999这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标计算机科学概论第2、3章,《C语言程序设计》第2章并完成云班课测试......
  • 代码大全阅读笔记02
    1、以解决问题为导向不仅仅是要完成一个任务;一切的一切都以实际的问题和需求为导向,最终的目的只有一个,而不是一直变换目标,就是解决真正的问题;2、把程序员当人看我们在项目中要记得,这是一个项目团队,团队由不同的个体组成,总是需要磨合的,所以,这就需要我们不仅仅将成员当人看,也要......