【MVP矩阵】投影矩阵推导与实现

相机空间和NDC空间示意图(来自奇乐编程学院)

相机坐标系一般都是右手坐标系, 相机朝向是 z 的负半轴
在这里插入图片描述

裁剪空间和NDC空间示意图

在这里插入图片描述

投影矩阵推导

【本文仅用于自身备忘】
正交投影推导结果如下
在这里插入图片描述

透视投影推导结果如下
在这里插入图片描述

备注

一般情况下,透视投影我们使用的是下面的矩阵,因为视锥体的r、l、t、b信息一般不好拿到
在这里插入图片描述
这个第三行三列和三行四列和上面一样,一行一列和二行二列不一样,怎么来的?
这里推导一下
首先aspect是横高比,aspect = r / t,一般也等于渲染窗口的横宽比,比如webgl中就是拿div的width/height计算
r = aspect * t(公式一)
还有tan(fovy/2) = t/n(公式二)这里fovy指的是y方向锥体的边和垂直视线的夹角
根据公式一和公式二可以得到
最终的结果

games101投影矩阵推导结果和上面那个为啥不一样

1.games101中相机空间是右手坐标系,这个一样,但是NDC也是右手坐标系,上面列的那个投影矩阵是Opengl用的,opengl NDC坐标系是左右坐标系,前提在这

相关推荐

  1. 正交投影矩阵(基变换过渡矩阵的例子)

    2023-12-06 15:14:02       26 阅读
  2. 【数学】矩阵矩阵乘法

    2023-12-06 15:14:02       17 阅读
  3. 矩阵(c++实现)

    2023-12-06 15:14:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 15:14:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 15:14:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 15:14:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 15:14:02       20 阅读

热门阅读

  1. restful风格在springmvc中的例子和简介

    2023-12-06 15:14:02       36 阅读
  2. C/c++源代码qt软件 svn版本管理开发如何防泄密?

    2023-12-06 15:14:02       36 阅读
  3. Apache HTTP 安装和配置下载

    2023-12-06 15:14:02       36 阅读
  4. OracleRac跨网段修改Public IP/VIP/Private IP/Scan IP

    2023-12-06 15:14:02       32 阅读
  5. 【WPF】隐藏一个XAML的view视图

    2023-12-06 15:14:02       35 阅读
  6. HTML-1

    2023-12-06 15:14:02       35 阅读
  7. android 13.0 设置第三方浏览器app为默认浏览器

    2023-12-06 15:14:02       39 阅读
  8. 如何在VSCode中打包Vue项目?

    2023-12-06 15:14:02       33 阅读
  9. js对象转换为数组的两种方法

    2023-12-06 15:14:02       38 阅读
  10. MySQL数据库基础

    2023-12-06 15:14:02       24 阅读