图形学中透视投影矩阵推导
透视投影矩阵是图形学一道重要的坎,他是将世界空间转到屏幕空间,再将屏幕放进裁剪空间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
图形学中透视投影矩阵推导相关推荐
- 计算机图形学中的矩阵转换
文章目录 前言 数学背景 矩阵变换 2D/3D的平移与仿射变换 绕任意轴旋转的罗德里格旋转公式 坐标变换 附录 如何快速入门学习 虎书封面的由来 前言 刷的视频:GAMES101:现代计算机图形学入门 ...
- 【转载+补充】“最简单的” 相机透视投影矩阵推导与解析
原文链接 作者:大其心宏其量扩其识 链接:https://www.jianshu.com/p/09fef48e7b0f 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. ...
- Cesium 透视投影矩阵推导
一.透视投影 透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为.在算 ...
- 【OpenGL】透视投影矩阵推导
项目场景: 系统:ubuntu glad + glfw + opengl3.3 复习games101MVP变换,在使用OpenGL检验推导透视投影矩阵时,发现得出结果的Z坐标与把不符合目标预期.可以看 ...
- 图形学中4x4矩阵的理解
计算机图形学中矩阵往往是4x4的: 如何理解4x4矩阵呢,不妨拆开这个矩阵: 可以看见,只有左上角的3x3的矩阵参与了线性变换,如果,想要将平移放到这个矩阵当中,并且添加的一列不参与线性变换,则需要添 ...
- 硬件损伤下beamforming优化中的矩阵推导
对论文Beamforming Optimization for IRS-Aided Communications With Transceiver Hardware Impairments中寻找代函数 ...
- 3D透视投影矩阵推导,内含推导细节
- 计算机图形学中需要掌握的数学基础知识有哪些?
计算机图形学中使用了大量数学知识,尤其是矩阵和线性代数.虽然我们倾向于认为3D图形编程是紧跟最新技术的领域之一(它在很多方面确实是),但它用到的很多技术实际上可以追溯到上百年前,其中一些甚至是由文艺复 ...
- 3D数学-裁剪空间与透视投影矩阵的推导
3D数学-裁剪空间与透视投影矩阵的推导 透视投影矩阵的变换本质,是将视锥体变换到裁剪空间中 视锥体的具有六个面,近裁剪面,远裁剪面,左裁剪面,右裁剪面,上裁剪面,下裁剪面 所有超出视锥体的都会被舍弃, ...
最新文章
- R语言ggplot2可视化小提琴图(violin plot)并使用ggsignif添加分组显著性(significance)标签
- 斯坦福大学、DARPA与硅谷公司共同分析前沿科技发展趋势
- codevs 2639 约会计划
- 使用webpack-dev-server设置反向代理解决前端跨域问题
- 当React Native 遇到了Google reCAPTCHA
- nyoj1311勤奋的涟漪
- vue替换全部符合’字符串_技术成长日记-Vim实用技巧-4.7查找替换
- MIX 2008与ASP.NET MVC框架的Road-Map
- 用户登录功能:说简单也困难
- odoo12 启动过程中出现的问题解决
- java继承的范例_Java范例中的继承
- Android ImageButton示例
- JS替换、删除指定字符
- 渗透测试国内外研究_《混凝土与水泥制品》2020第8期——“混凝土研究”栏目...
- 服务器故障与主板维修,服务器主板故障
- 《道德经》全文 (马王堆出土帛书版)
- 推荐5款干净又实用的软件
- PCB+SMT线上报价系统,数字化建设如何获取现金流?
- 特征选择(一)-维数问题与类内距离
- vue vue-seamless-scroll 无缝滚动依赖