透视投影矩阵是图形学一道重要的坎,他是将世界空间转到屏幕空间,再将屏幕放进裁剪空间ndc映射

我们从侧视图看

我们的已知条件

1.aspect:屏幕宽高比

2.n:近截面z轴坐标
3.f :远截面z轴坐标

4.fov角度

我们可以求出t的长度

t=n*tan(fov/2)

b = -t

k = r + l / 2t (k是宽高比系数)

2t * k = 2l

t * k = l

r = -l

图中投影的点可以看成相似三角形

X1 / X = Y1 / Y =  Z 1 /Z

因为 Z1 是-N

因为用的是opengl的右手坐标系(实际上OpenGL并不是分左手右手,右手使我们成俗的习惯)

Z1 = -N

X1 / X = -N / Z

X1 = N * X / -Z

Y1 = N * Y /- Z

我们最终要得到归一化的齐次坐标

X / W , Y / W

W = - Z1

X1 =  N * X

Y1 = N * Y

因为投影矩阵最终的都是在做线性变换,所以它满足 y = kx + b

k = 2 / r - l

我们求b ,也就是ndc上的x

x = r

y = 1 代入

1 = 2 / r - l * r  + b

b = 2 / r - l - 1

b =(2 / r - l ) - ( r - l /  r- l)

b = r + l / r - l

ndc中y也同理

b =  t + b / t - b

我们用推导构建了透视矩阵的x y

Xndc =  2 / r - l * X

X 为 N * X

2n / r - l

构建矩阵

2n/r-l       0      r+l/r-l   0

0       2n/t -b    t+b/t-b  0

?    ?    ?      ?

0      0     -1           0

按道理来说Z轴是完全可以舍弃的,因为我们已经得到了投影了

实际上opengl会把Z轴n 与 f做深度映射 到-1 - 1区间做近大远小效果

Z我们可以理解为摄像机与物体距离,W理解为缩放

矩阵中x y没有作用我们把它给 0

2n/r-l       0      r+l/r-l   0

0       2n/t -b    t+b/t-b  0

0        0    Z      W

0      0     -1           0

Zndc = -1   z = n

-1 = Z * n + w / Z

- n = Z * n + w

Zndc = 1  z = f

1 = Z * f + w / Z

f =  Z * f + w

解二元一次方程得

- f+n/f-n

-2fn/f-n

我们得到了透视投影矩阵的终极级形态

2n/r-l       0      r+l/r-l           0

0       2n/t -b    t+b/t-b          0

0         0          - f+n/f-n      -2fn/f-n

0         0              -1              0

图形学中透视投影矩阵推导相关推荐

  1. 计算机图形学中的矩阵转换

    文章目录 前言 数学背景 矩阵变换 2D/3D的平移与仿射变换 绕任意轴旋转的罗德里格旋转公式 坐标变换 附录 如何快速入门学习 虎书封面的由来 前言 刷的视频:GAMES101:现代计算机图形学入门 ...

  2. 【转载+补充】“最简单的” 相机透视投影矩阵推导与解析

    原文链接 作者:大其心宏其量扩其识 链接:https://www.jianshu.com/p/09fef48e7b0f 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. ...

  3. Cesium 透视投影矩阵推导

    一.透视投影 透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为.在算 ...

  4. 【OpenGL】透视投影矩阵推导

    项目场景: 系统:ubuntu glad + glfw + opengl3.3 复习games101MVP变换,在使用OpenGL检验推导透视投影矩阵时,发现得出结果的Z坐标与把不符合目标预期.可以看 ...

  5. 图形学中4x4矩阵的理解

    计算机图形学中矩阵往往是4x4的: 如何理解4x4矩阵呢,不妨拆开这个矩阵: 可以看见,只有左上角的3x3的矩阵参与了线性变换,如果,想要将平移放到这个矩阵当中,并且添加的一列不参与线性变换,则需要添 ...

  6. 硬件损伤下beamforming优化中的矩阵推导

    对论文Beamforming Optimization for IRS-Aided Communications With Transceiver Hardware Impairments中寻找代函数 ...

  7. 3D透视投影矩阵推导,内含推导细节

  8. 计算机图形学中需要掌握的数学基础知识有哪些?

    计算机图形学中使用了大量数学知识,尤其是矩阵和线性代数.虽然我们倾向于认为3D图形编程是紧跟最新技术的领域之一(它在很多方面确实是),但它用到的很多技术实际上可以追溯到上百年前,其中一些甚至是由文艺复 ...

  9. 3D数学-裁剪空间与透视投影矩阵的推导

    3D数学-裁剪空间与透视投影矩阵的推导 透视投影矩阵的变换本质,是将视锥体变换到裁剪空间中 视锥体的具有六个面,近裁剪面,远裁剪面,左裁剪面,右裁剪面,上裁剪面,下裁剪面 所有超出视锥体的都会被舍弃, ...

最新文章

  1. R语言ggplot2可视化小提琴图(violin plot)并使用ggsignif添加分组显著性(significance)标签
  2. 斯坦福大学、DARPA与硅谷公司共同分析前沿科技发展趋势
  3. codevs 2639 约会计划
  4. 使用webpack-dev-server设置反向代理解决前端跨域问题
  5. 当React Native 遇到了Google reCAPTCHA
  6. nyoj1311勤奋的涟漪
  7. vue替换全部符合’字符串_技术成长日记-Vim实用技巧-4.7查找替换
  8. MIX 2008与ASP.NET MVC框架的Road-Map
  9. 用户登录功能:说简单也困难
  10. odoo12 启动过程中出现的问题解决
  11. java继承的范例_Java范例中的继承
  12. Android ImageButton示例
  13. JS替换、删除指定字符
  14. 渗透测试国内外研究_《混凝土与水泥制品》2020第8期——“混凝土研究”栏目...
  15. 服务器故障与主板维修,服务器主板故障
  16. 《道德经》全文 (马王堆出土帛书版)
  17. 推荐5款干净又实用的软件
  18. PCB+SMT线上报价系统,数字化建设如何获取现金流?
  19. 特征选择(一)-维数问题与类内距离
  20. vue vue-seamless-scroll 无缝滚动依赖

热门文章

  1. java微服务项目简历_Spring Cloud及微服务简介
  2. word显示计算机没有内存不足,Word提示内存或磁盘空间不足【解决方法】
  3. 联发科MT6589参考设计,MT6589芯片原理设计资料下载
  4. 常用的渗透测试工具总结
  5. 手机收费看高清电影能否成为趋势?
  6. 2021年下半年信息系统项目管理师上午客观题参考答案及解析(二)
  7. 冷眼看中国IT20年发展史
  8. 我在 ipad mini 里都装了些什么软件
  9. 黑社会交易用计算机,遭遇网络黑社会亲们都是怎么处理的
  10. 2022 最新 955 不加班的公司名单