shader中的常用矩阵变换

矩阵运算法则

(1)矩阵和标量的乘法

在这里插入图片描述

(2)矩阵和矩阵的乘法

在这里插入图片描述

矩阵相乘的条件 和 结果的行数和列数

在这里插入图片描述

变换的基本概念

(1)变换

我们把一些数据,如点、方向矢量甚至颜色等,通过某种方式进行转换的过程

(2)线性变换

线性变换指的是那些可以保留矢量加和标量乘的变换。例如:缩放、旋转、错切、镜像、正交投影等;

(3)平移变换

平移变换不是线性变换,它满足标量乘法,但不满足矢量加法。

(4)仿射变换

合并线性变换和平移变换的变换类型。3D的仿射变换可以使用一个4×4的矩阵来表示,即齐次坐标空间。

(5)齐次坐标

齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示;对于一个点,从三维坐标转换成齐次坐标是把其w分量设为1,而对于方向矢量来说,需要把其w分量设为0。

2D 矩阵变换

(1)绕坐标中心旋转 a 角度的变换矩阵

在这里插入图片描述

(2)沿坐标轴缩放的变换矩阵

在这里插入图片描述

(3) 沿任意N轴缩放的变换矩阵

在这里插入图片描述

3D 矩阵变换

(1)绕X轴旋转的变换矩阵

在这里插入图片描述

(2)绕Y轴旋转的变换矩阵

在这里插入图片描述

(3)绕Z轴旋转的变换矩阵

在这里插入图片描述

(4)3D缩放矩阵

在这里插入图片描述

平移矩阵

(1)2D平移矩阵

在这里插入图片描述

(2)3D平移矩阵

在这里插入图片描述

(3)在3D中绕Y轴先旋转,再平移

在这里插入图片描述

变换组合

(1)如何把物体从模型坐标变换到摄像机的投影坐标

第一步:把物体从模型坐标变换到世界坐标:使用物体在模型坐标空间中的顶点 X 模型坐标到世界坐标的矩阵,结果是物体在世界坐标空间中的顶点信息
在这里插入图片描述
第二步:把物体从世界坐标变化到摄像机的投影坐标:使用物体在时间空间中的顶点信息 X 世界坐标到投影坐标的变换矩阵,结果便是 物体在投影坐标空间中的顶点信息
在这里插入图片描述

当然,也可以不用这么麻烦,如果知道模型坐标空间到投影坐标空间的变换矩阵,可以直接使用物体在模型空间中的顶点信息 X 变换矩阵
在这里插入图片描述

透视投影(小孔成像)

在这里插入图片描述

透视投影矩阵

在这里插入图片描述
d是摄像机到投影平面的距离

上面的矩阵都是使用 mul(V,M),下面的是 mul(MT,V),

应用 mul(MT,V)

(1)把 点(x,y,z)平移 (tx,ty,tz)个单位
在这里插入图片描述
(2)旋转
在这里插入图片描述
(3)复合变换:从右向左依次是:缩放,旋转,平移
在这里插入图片描述
(4)同时绕3个轴进行旋转, 按照ZXY的顺序
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值