Shader学习 数学基础

 

一、数学概念

1.左右坐标系和右手坐标系

如何判断左手坐标系和右手坐标系?

答:侧面伸出右手为x方向,头部为y方面,面对的方向为z方向,则为左手坐标系,右手坐标系z轴方向为相反反向。坐标轴具有旋向性。

Unity中使用的坐标系?

答:模型空间和世界空间使用左手坐标系,观察空间使用右手坐标系。

2.正交基、标准正交基

三个矢量像坐标轴一样两两垂直称为正交基。三个矢量都为单位矢量且两两垂直则称为标准正交基。

二、矢量运算

  1. 矢量和标量相乘。几何意义:表示缩放。

  2. 矢量的加法。几何意义:矢量a+矢量b 表示a、b首尾相连,从a尾指向b首的矢量。

  3. 矢量的减法。几何意义:矢量a-矢量b表示 a b尾部相连从b首指向a首的矢量,即a相对于b的偏差。

  4. 矢量的点乘。 几何意义:矢量dot(a,b)表示a在b方向上的投影大小缩放|b|倍。或者b在a的方向上的投影缩放|a|倍。其值是个标量。

  5. 矢量的叉乘。 几何意义:叉乘的结果是一个矢量。矢量的大小为|a||b|sinX 其中X为矢量a、b之间的夹角。矢量的方向为垂直a和b所在的平面。叉乘常用来判断三角面片的朝向。

三、矩阵的运算

  1. 矩阵的乘法不满足交换律满足结合律
  2. 常见的特殊矩阵:方块矩阵、对角阵、单位矩阵、转置矩阵
  3. 逆矩阵:逆矩阵几何上被用来做变换的还原。M*M-1 = I
  4. 正交矩阵:M*(M)T = I . 对于正交矩阵来说:正交矩阵的转置矩阵为等于逆矩阵。转置矩阵比较好求得,因此使用正交矩阵的转置矩阵可以方便的做逆变换。
  5. 如何判断矩阵是正交的?条件1:行矢量都为单位向量 条件2:三个行矢量两两垂直即点乘值为0.
  6. Unity中使用左乘变换矩阵的方式做变换。

四、几大空间

1.模型空间

省略。

2.世界空间

省略

3.观察空间

需要注意的是观察空间使用的右手坐标系。三维空间。

4.裁剪空间

为什么要使用裁剪空间?

答:对于视椎体来说,判断一个顶点是否处于范围内,比较麻烦。于是就根据视椎体的参数做了一个简单矩阵变化,得到的裁剪空间的坐标(x,y,z,w),通过判断x,y,z与w的关系确定顶点是否在视椎体范围内。

其实质就是将x,y,z坐标做了不同程度的缩放。

5.屏幕映射

将裁剪空间的坐标想x,y,z除以w得到NDC坐标(归一化坐标)。归一化坐标在一个立方体内 其范围为(-1,1)。将-1,1映射到(0,1)再分别乘以屏幕的宽高,得到顶点在屏幕上的位置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值