深入解析投影矩阵的数学方法
- 齐次空间
要理解3d的齐次空间,我们先理解2d的齐次空间。
2d的齐次空间可以理解为三维空间上的向量在(x, y, 1)平面上的投影. 投影结果是(x/z, y/z, 1)
- 齐次矩阵
- 齐次矩阵能够对向量做仿射变换,也就是能够将平移加入到矩阵中,这是3*3矩阵做不到的。
- 而4*3矩阵虽然也能做仿射变换,但是不能求逆矩阵,因为不是方阵。
-齐次矩阵的透视投影
空间坐标与其投影到投影平面上的坐标的关系:
我们构造齐次矩阵来实现这样的计算
- 平截头体
这样构造矩阵,得到齐次向量,然后用x,y,z分量除以w分量就得到真实的(x,y,z).
真正的投影也是在这一步发生的。这个在shader里面做。
- 计算缩放系数
fov为90°的时候,就相当于透视投影的比例为1:1.当fov变动的时候,投影的比例也会跟着变动。
焦距越大,fov就越小,像在投影平面的比例就越大,这就是长焦镜头。
缩放系数和视场角有关系,最终会提现在x方向和y方向的缩放分量上。
计算缩放系数
透视投影矩阵
先看看构造好的投影矩阵
x,y方向的缩放:主要是将相机坐标系下的坐标
zoomx 在x方向的缩放值
zoomy 在y方向的缩放值z方向缩放:主要是为了将z值归一化到-1到1之间
(f+n)/(f-n) 在z方向的缩放量
z方向平移:主要是为了将z值归一化到-1到1之间
-2nf/(f-n) 在z方向的平移量- 设备空间
深入解析投影矩阵的数学方法相关推荐
- OpenGL中投影矩阵(Projection Matrix)详解
在游戏开发中,一个物体模型从它自身的坐标系转换至我们在屏幕上所见的样子,需要进行一系列的坐标变换以及其他的操作.该过程称为渲染管线.以OpenGL为例: 该过程在以前是被封装的,不能访问.但是现在我们 ...
- 三维投影总结:数学原理、投影几何、OpenGL教程、我的方法
如果要得到pose视图,除非有精密的测量方法,否则进行大量的样本采集时很耗时耗力的.可以采取一些取巧的方法,正如A Survey on Partial of 3d shapes,描述的,可以利用已得到 ...
- (数学)最小二乘的几何意义及投影矩阵
主要内容: 什么是最小二乘 最小二乘的几何意义 正交投影矩阵 什么是最小二乘? 假设我们手上有n组成对的数据,{(xi,yi):i=1-n},为了探究y变量与x变量的关系,我们希望用一个多项式来匹配它 ...
- QGIS基本功 | 17 地图投影——数学解析投影
解析投影又叫非几何投影,这类投影不借助辅助投影面,用数学解析法求出公式来确立地面与地图上点的函数关系,常见的解析投影有伪方位投影.伪圆柱投影(pseudocylindrical map project ...
- (数学概念)矩阵的逆、伪逆、左右逆,最小二乘,投影矩阵
主要内容: 矩阵的逆.伪逆.左右逆 矩阵的左逆与最小二乘 左右逆与投影矩阵 一.矩阵的逆.伪逆.左右逆 1.矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: A ...
- 压缩感知中的数学知识:投影矩阵(projection matrix)
题目:压缩感知中的数学知识:投影矩阵(projection matrix) ========================背景======================== 关注于投影矩阵主要是看 ...
- 看图说OpenGL之二之投影矩阵求法
在数学上来说,下面这个算法可以说是再精准不过,但是为何OpenGL的计算者并不采用呢.这是因为要进行裁剪,要进行归一化.注意到投影坐标xp(投影坐标)与xe(人眼),关于ze(人眼)是线性关系.就假设 ...
- 3D 投影矩阵学习1
先看一下名词: 在矩阵数学中,也有一个名词叫投影矩阵,其定义为: 若矩阵A既是对称矩阵,又是幂等矩阵,则称A为投影矩阵. 这里说的是3D世界中的投影矩阵:其作用是帮助把3D物体显示在2维计算机 ...
- 【转】投影矩阵的推导
[转]投影矩阵的推导 原文:https://www.cnblogs.com/wonderKK/p/5695116.html 博主: 这篇文章写得非常好,对投影矩阵的推导清晰明了,但有个错误:推导的全程 ...
最新文章
- CUDA Samples: Image Process: BGR to Gray
- java.net.uri,java.net.uri
- LeetCode35.搜索插入位置
- 云计算竞争愈发激烈,2019年云计算运维前景怎么样?
- 让struts2和servlet共存
- 由二分查找算法学习算法的时间复杂度
- HDUOJ3549 - Flow Problem(网络流+最大流最小割+模板)
- IE不支持 Promise 解决办法
- python定时任务contrib_python定时任务的实现
- 读书笔记1:《C++沉思录》
- 数学作图工具_推荐工作学习中用到的三款在线作图神器!
- CC1310开发笔记
- Turbo C 2.0的下载地址
- Unity 给物体加贴图
- 面向对象分割:结合eCognition与python
- 计算机 无法 访问共享网络打印机,“无法连接到网络共享打印机”的常见原因和解决方法:...
- Java 程序员不得不会的 124 道面试题(含答案)
- Elasticsearch(ES)简介及基本使用
- 山东大学移动信息门户04
- 微信小程序原生开发 记录