百人计划 图形1.2.3 MVP矩阵运算

1、为什么要学变换矩阵

        1、将3d物体转换到2d平面

        2、为各个空间的运算做准备

2、什么是MVP矩阵

        

 MVP矩阵在整个过程中将模型的顶点坐标从local space经过一系列矩阵变换(local space->world space->view space->clip space->screen space)映射到Screen Space。

        1、model transformation(模型空间->世界空间)

                步骤:缩放->旋转->平移(顺序不可变!)以此得到模型变换矩阵;下图是绕y轴旋转。

模型空间下的顶点坐标乘以该矩阵就可以得到世界空间下的顶点坐标。

         2、View transformation(世界空间->视觉空间)

                视觉空间:以摄像机为中心的空间坐标系

                步骤:平移整个观察空间,将摄像机原点、坐标轴与世界坐标原点、坐标轴重合。摄像机在世界空间中先旋转平移,最后对z取反(因为unity是右手坐标系)。(可以理解为把摄像机移动到世界坐标原点,得到的矩阵的逆矩阵(正交矩阵的逆矩阵=矩阵的转置)就是View矩阵)

       

         3、perspective projection(透视投影)

                透视投影是由正交投影(orthographic projection)矩阵*挤压矩阵(persp->ortho)得到。

                正交投影:先平移到世界坐标原点,再将边长缩放为长度2。

                        

                 挤压矩阵:

                       如何挤压?预先知道:近平面上和远平面上Z不变,远平面中心点不变。

        

                         上图可得到点坐标与n、f(z)的关系。

                      

                       通过齐次坐标变换可得到挤压矩阵的前两行和最后一行

         

                      利用近平面上和远平面上Z不变,远平面中心点不变求出第三排。

                           

                              

                                得出A=n+f,B=-nf

 ​​​​​​​     ​​​​​​​        

3、模型空间、世界空间、视野空间区别 

         模型空间:局部概念,可以理解为一个抽象物体的世界空间(例如太阳系中的地球上的坐标空间)。

        世界空间:全局概念,可理解为此坐标系是最终坐标系(太阳系)。

        视野空间:局部概念,可以理解为特殊的模型空间。是一个虚拟摄像机位于空间坐标原点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值