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

这篇具有很好参考价值的文章主要介绍了图形学、02 推导证明 | 任意一点经过透视投影后 z 坐标相对于之前有什么变化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

截取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}\)

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

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

\(n\leq z\leq f\)\(z*f(z) \geq 0\) ,故 \(f(z) \leq 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}\)

\(n\)\(- \sqrt{nf}\) 单调递增,从 \(- \sqrt{nf}\)\(f\) 单调递减


分数怎么求导

\(\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}\)文章来源地址https://www.toymoban.com/news/detail-710746.html

到了这里,关于图形学、02 推导证明 | 任意一点经过透视投影后 z 坐标相对于之前有什么变化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 相机系列——透视投影:针孔相机模型

    作者:木一 上文我们提到,三维相机是对 真实世界成像的模拟 ,为了让三维物体在计算机屏幕上呈现出来的图像符合人眼观察效果,通常采用 透视投影 方式模拟相机成像,为了简化计算,可以用 针孔相机模型 来描述 透视投影 成像过程。 针孔相机模型 是一种简化的光学

    2024年04月28日
    浏览(29)
  • 第五章 OpenGL ES 基础-透视投影矩阵与正交投影矩阵

    第一章 OpenGL ES 基础-屏幕、纹理、顶点坐标 第二章 OpenGL ES 基础-GLSL语法简单总结 第三章 OpenGL ES 基础-GLSL渲染纹理 第四章 OpenGL ES 基础-位移、缩放、旋转原理 第五章 OpenGL ES 基础-透视投影矩阵与正交投影矩阵 模型都是3D的,但屏幕是2D的。如何将3D空间投影到2D平面,还能保

    2024年03月09日
    浏览(31)
  • 伪3d原理解释 主要是透视投影

    当我们将图像投影到一个旋转的表面上时,我们需要考虑以下几个方面: 像素位置的计算:对于每个显示窗口中的像素,我们需要计算它在旋转表面上的位置。在代码中,使用了以下公式来计算旋转表面上的位置: px = x / z * sc py = y / z * sc 这里,x和y表示像素在显示窗口中的

    2024年02月16日
    浏览(32)
  • Three.js第三章——透视投影相机

            Threejs提供了正投影相机 OrthographicCamera (opens new window) 和透视投影相机 PerspectiveCamera (opens new window) 。         透视投影相机  PerspectiveCamera  本质上就是在模拟人眼观察这个世界的规律。         生活中用相机拍照,你相机位置不同,拍照结果也不同,

    2024年04月29日
    浏览(31)
  • Three.js——scene场景、几何体位置旋转缩放、正射投影相机、透视投影相机

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,正逐渐往全干发展 📃 个人状态: 研发工程师,现效力于中国工业软件事业 🚀 人生格言: 积跬步至千里,积小流成江海 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js🍒

    2024年04月14日
    浏览(30)
  • 投影矩阵推导【线性代数】

    如果两个向量垂直,那么满足。但如果两个向量不垂直,我们就将 b 投影到 a 上,就得到了二者的距离,我们也称为向量 b 到直线 a 的误差。这样就有出现了垂直:                (1) 投影向量 p 在直线上,不妨假设  ,那么误差 。带入式(1)中得到: 投影矩阵:  

    2024年02月06日
    浏览(47)
  • 视觉相机模型以及投影原理推导——(单目)

    参考文献:视觉SLAM十四讲、视觉惯性SLAM理论与源码分析、该博客、文中的公式直接引用上面的文章,如有侵权请联系本人删除 投影过程 三维世界中的物体(目标点)P反射光线,通过相机光心,投影到相机的感光平面(物理成像平面/像素成像平面),一个个的光线投影点汇

    2024年02月09日
    浏览(32)
  • GAMES101投影矩阵推导详解和分析

    之前推导过OpenGL的投影矩阵,学了GAMES101之后,发现老师的推导方式很有意思,且GAMES101的坐标系约定和OpenGL不一样。最近在填新坑URasterizer的过程中,发现了一些问题,比如透视投影在clip space做裁剪时为啥w必须取反,以及之前GAMES101作业中做深度测试时为啥z值要取反的问题

    2024年02月08日
    浏览(32)
  • 对数换底公式及推导证明

    在数学中,对数是对求幂的逆运算,正如除法是乘法的逆运算,反之亦然。如果 a 的 x 次方等于 N (a0,且a≠1),那么数 x 叫做以 a 为底 N 的对数(logarithm),记作 x = l o g a N x=log_a N x = l o g a ​ N 。其中, a 叫做对数的底数, N 叫做真数。 x = l o g a N x=log_a N x = l o g a ​ N 等

    2024年02月11日
    浏览(50)
  • 【数学基础知识】证明三角形的中线交于一点

    三角形的三条中线交于一点。 用初中基础知识进行证明。 已知: △ A B C triangle ABC △ A B C 中,F为BC的中点,E位AC的中点。AF,BE交于点G,直线CG交AB于D。 求证: A D = B D AD=BD A D = B D 。 证明:连接EF,交CD于H。 ∵ B F = C F , A E = C E , because BF=CF, AE=CE, ∵ B F = C F , A E = C E , ∴

    2024年02月05日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包