• 齐次空间
    要理解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方向的平移量

    • 设备空间

深入解析投影矩阵的数学方法相关推荐

  1. OpenGL中投影矩阵(Projection Matrix)详解

    在游戏开发中,一个物体模型从它自身的坐标系转换至我们在屏幕上所见的样子,需要进行一系列的坐标变换以及其他的操作.该过程称为渲染管线.以OpenGL为例: 该过程在以前是被封装的,不能访问.但是现在我们 ...

  2. 三维投影总结:数学原理、投影几何、OpenGL教程、我的方法

    如果要得到pose视图,除非有精密的测量方法,否则进行大量的样本采集时很耗时耗力的.可以采取一些取巧的方法,正如A Survey on Partial of 3d shapes,描述的,可以利用已得到 ...

  3. (数学)最小二乘的几何意义及投影矩阵

    主要内容: 什么是最小二乘 最小二乘的几何意义 正交投影矩阵 什么是最小二乘? 假设我们手上有n组成对的数据,{(xi,yi):i=1-n},为了探究y变量与x变量的关系,我们希望用一个多项式来匹配它 ...

  4. QGIS基本功 | 17 地图投影——数学解析投影

    解析投影又叫非几何投影,这类投影不借助辅助投影面,用数学解析法求出公式来确立地面与地图上点的函数关系,常见的解析投影有伪方位投影.伪圆柱投影(pseudocylindrical map project ...

  5. (数学概念)矩阵的逆、伪逆、左右逆,最小二乘,投影矩阵

    主要内容: 矩阵的逆.伪逆.左右逆 矩阵的左逆与最小二乘 左右逆与投影矩阵 一.矩阵的逆.伪逆.左右逆 1.矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: A ...

  6. 压缩感知中的数学知识:投影矩阵(projection matrix)

    题目:压缩感知中的数学知识:投影矩阵(projection matrix) ========================背景======================== 关注于投影矩阵主要是看 ...

  7. 看图说OpenGL之二之投影矩阵求法

    在数学上来说,下面这个算法可以说是再精准不过,但是为何OpenGL的计算者并不采用呢.这是因为要进行裁剪,要进行归一化.注意到投影坐标xp(投影坐标)与xe(人眼),关于ze(人眼)是线性关系.就假设 ...

  8. 3D 投影矩阵学习1

    先看一下名词: 在矩阵数学中,也有一个名词叫投影矩阵,其定义为:     若矩阵A既是对称矩阵,又是幂等矩阵,则称A为投影矩阵. 这里说的是3D世界中的投影矩阵:其作用是帮助把3D物体显示在2维计算机 ...

  9. 【转】投影矩阵的推导

    [转]投影矩阵的推导 原文:https://www.cnblogs.com/wonderKK/p/5695116.html 博主: 这篇文章写得非常好,对投影矩阵的推导清晰明了,但有个错误:推导的全程 ...

最新文章

  1. CUDA Samples: Image Process: BGR to Gray
  2. java.net.uri,java.net.uri
  3. LeetCode35.搜索插入位置
  4. 云计算竞争愈发激烈,2019年云计算运维前景怎么样?
  5. 让struts2和servlet共存
  6. 由二分查找算法学习算法的时间复杂度
  7. HDUOJ3549 - Flow Problem(网络流+最大流最小割+模板)
  8. IE不支持 Promise 解决办法
  9. python定时任务contrib_python定时任务的实现
  10. 读书笔记1:《C++沉思录》
  11. 数学作图工具_推荐工作学习中用到的三款在线作图神器!
  12. CC1310开发笔记
  13. Turbo C 2.0的下载地址
  14. Unity 给物体加贴图
  15. 面向对象分割:结合eCognition与python
  16. 计算机 无法 访问共享网络打印机,“无法连接到网络共享打印机”的常见原因和解决方法:...
  17. Java 程序员不得不会的 124 道面试题(含答案)
  18. Elasticsearch(ES)简介及基本使用
  19. 山东大学移动信息门户04
  20. 微信小程序原生开发 记录

热门文章

  1. 百面深度学习:基于度量学习的元学习模型
  2. Thinkpad x13 锐龙安装 Archlinux 记录
  3. 班章管家讲解固收理财有危险吗?固收理财有什么危险?
  4. 【巴比伦周报】2019第13周
  5. 初级程序员应该看一看的,还是不错的
  6. Gitolite 构建 Git 服务器
  7. 微信支付接口开发流程
  8. Java数据结构入门以及数据结构和算法的关系
  9. 【储存】个人储存空间介绍和说明
  10. python十年高考录取率表_全国各地历年高考人数及录取率盘点,家长:考生近千万,录取太难...