Shader所需数学基础
笛卡尔坐标系
1. 二维笛卡尔坐标系
- 一个原点(坐标系中心)
- 两个经过原点且互相垂直的矢量
2. 三维笛卡尔坐标系
- 一个原点(坐标系中心)
- 三个经过原点且互相垂直的矢量
三个坐标轴被称作该坐标系的基矢量。三个坐标轴相互垂直且长度为1,这样的基矢量被称为标准正交基。相互垂直但长度不为1,被称为正交基。
3. 左手坐标系和右手坐标系
4. 左右手法则
来确定旋转的正方向
5. Unity使用的坐标系
Scene视图中的坐标轴可以看出来,Unity使用的是左手坐标系。(模型空间)
以相机为原点的坐标系,是右手坐标系。(观察空间)
观察空间使用的是右手坐标系,摄像机的向前是z轴的负方向,向后是z轴正方向,物体深度越大离摄像机越远。
点和矢量
- 点:没有大小之分的空间中的位置
- 矢量:有模和方向但没有位置,模即长度
- 标量:有长度,没有方向
只要矢量的方向和长度相同,那么它就是同一个矢量。
1. 矢量乘除
相当于放大和缩小
2. 矢量的加减
3. 矢量的模
4. 单位矢量
单位矢量即模为1的矢量,也叫归一化矢量。所以将非0的矢量变成单位矢量的过程,交过归一化。
5. 矢量的点积(内积)
点积的几何意义很重要,其中的一个几何意义就是投影。
投影的值可能为负数
本文来源《unity shader入门精要》冯乐乐著