1. 左右手坐标系

   3D引擎的基础数学知识

Unity使用的是左手坐标系,但是它的观察空间使用的是右手坐标系

3D引擎的基础数学知识      3D引擎的基础数学知识                3D引擎的基础数学知识 3D引擎的基础数学知识

           (Unity场景中)                                               (Unity视图空间)

2. 向量(vector)

2.1. 向量和标量(scalar)乘法: 

3D引擎的基础数学知识


2.2. 向量加减法: 

3D引擎的基础数学知识

3D引擎的基础数学知识

2.3. 向量的模(magnitude)

3D引擎的基础数学知识

2.4. 向量的点积(dot product)或内积(inner product)

3D引擎的基础数学知识
3D引擎的基础数学知识
几何意义
3D引擎的基础数学知识
性质
a. 交换率: 3D引擎的基础数学知识
b. 结合标量乘法: 3D引擎的基础数学知识
c. 结合律:  3D引擎的基础数学知识
d. 点积自身为模的平方: 3D引擎的基础数学知识

2.5. 向量的叉积(cross product)或外积(outer product)

3D引擎的基础数学知识
3D引擎的基础数学知识
几何意义两个向量进行叉积会得到一个同时垂直于这两个向量的新向量,向量方向根据左右手法则确定(根据所在的是左手还是右手坐标系)。
3D引擎的基础数学知识
性质
a. 反交换律: 3D引擎的基础数学知识

3. 矩阵(matrix)

3.1 与标量相乘

3D引擎的基础数学知识

3.2 与矩阵相乘

3D引擎的基础数学知识

3.3. 性质

a. 不满足交换率
b. 满足结合律: (AB)C = A(BC)

3.4.1 方块矩阵、方阵(square matrix)

3.4.2 对角矩阵(diagonal matrix)

3.4.3 单位矩阵(identity matrix)

一个特殊的对角矩阵。

3.4 转置矩阵(transposed matrix)

翻转原矩阵,原矩阵第i行变成了第i列,第j列变成了第j行。
3D引擎的基础数学知识
性质
a. 3D引擎的基础数学知识
b. 3D引擎的基础数学知识

4.5. 逆矩阵(inverse matrix)

不是所有的矩阵都可逆,如果一个方阵的行列式(determinant)不为0,那么它是可逆的。逆矩阵可以做针对于原矩阵的反向变换。
可逆(invertible)、非奇异的(nonsingular)。不可逆(noninvertible)、奇异的(singular)。
性质:
a. 逆矩阵的逆矩阵是原矩阵本身:3D引擎的基础数学知识
b. 单位矩阵的逆矩阵是它本身:3D引擎的基础数学知识3D引擎的基础数学知识
c. 转置矩阵的逆矩阵是逆矩阵的转置:3D引擎的基础数学知识
d. 3D引擎的基础数学知识

4.6. 正交矩阵(orthogonal matrix)

如果一个方阵M和它的转置矩阵的乘积是单位矩阵的话,我们就说M是正交的。
3D引擎的基础数学知识
性质:
a. 如果一个矩阵是正交的,那么它的转置矩阵和逆矩阵是一样的:3D引擎的基础数学知识
b. 如果一个矩阵是正交的,它的每一行都是单位向量且互相垂直(同样适用于每一列,因为如果M是正交矩阵的话,它的转置也是正交的)。
c. 只包含旋转的变换矩阵是正交矩阵。

4. 变换(transform)

4.1. 线性变换(linear transform)

指那些可以保留矢量加和标量乘的变换,旋转(rotate)缩放(scale)错切(shear)镜像(mirroring、reflection)正交投影(orthographic projection)等。
平移(translation)不是线性变换。
3D引擎的基础数学知识

4.2. 仿射变换(affine transform)

合并线性变换和平移变换的变换类型,需要使用4x4的矩阵来表示,为此,我们需要把矢量扩展到四维空间下,这就是齐次空间坐标(homogeneous space)
3D引擎的基础数学知识

4.3. 常用变换矩阵

平移变换(translation )

3D引擎的基础数学知识
旋转变换(rotate)
3D引擎的基础数学知识
3D引擎的基础数学知识3D引擎的基础数学知识
放缩变换(scale)
3D引擎的基础数学知识
透视变换(perspective projection transformation)
3D引擎的基础数学知识
坐标系变换,存在2个空间,P父空间,C子空间,C的3个坐标轴在P下的表示为Xc、Yc和Zc,C的原点在P下的表示为Oc,点A在C下的坐标为Ac(a,b,c)。
3D引擎的基础数学知识
如果变换向量,可以用3x3矩阵表示:
3D引擎的基础数学知识
再如果Mc-p是正交矩阵,则

3D引擎的基础数学知识
3D引擎的基础数学知识

5. 法线变换

  • 需要用变换顶点的变换矩阵的逆转置矩阵来变换法线,才能确保法线的垂直性。3D引擎的基础数学知识3D引擎的基础数学知识
  • 如果变换矩阵是正交矩阵(只包含旋转变换的矩阵是正交矩阵),可以用变换顶点的矩阵变换法线。
  • 如果变换只包含旋转和统一缩放,可以使用3D引擎的基础数学知识3D引擎的基础数学知识来变换。

相关文章:

  • 2021-12-15
  • 2021-08-21
  • 2021-09-25
  • 2021-12-13
  • 2022-01-04
猜你喜欢
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2021-09-20
  • 2022-12-23
  • 2021-07-04
相关资源
相似解决方案