3D引擎的基础数学知识

本文介绍了3D引擎中的基础数学知识,包括左右手坐标系、向量运算(如点积、叉积)、矩阵(如逆矩阵、正交矩阵)以及变换(线性、仿射变换)和法线变换。特别指出在Unity中,法线变换需要使用变换矩阵的逆转置以保持垂直性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 左右手坐标系

   

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

                       

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

2. 向量(vector)

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


2.2. 向量加减法: 

2.3. 向量的模(magnitude)

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

几何意义
性质
a. 交换率: 
b. 结合标量乘法: 
c. 结合律:  
d. 点积自身为模的平方: 

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

几何意义两个向量进行叉积会得到一个同时垂直于这两个向量的新向量,向量方向根据左右手法则确定(根据所在的是左手还是右手坐标系)。

性质
a. 反交换律:

3. 矩阵(matrix)

3.1 与标量相乘

3.2 与矩阵相乘


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行。
性质
a.
b.

4.5. 逆矩阵(inverse matrix)

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

4.6. 正交矩阵(orthogonal matrix)

如果一个方阵M和它的转置矩阵的乘积是单位矩阵的话,我们就说M是正交的。

性质:
a. 如果一个矩阵是正交的,那么它的转置矩阵和逆矩阵是一样的:
b. 如果一个矩阵是正交的,它的每一行都是单位向量且互相垂直(同样适用于每一列,因为如果M是正交矩阵的话,它的转置也是正交的)。
c. 只包含旋转的变换矩阵是正交矩阵。

4. 变换(transform)

4.1. 线性变换(linear transform)

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


4.2. 仿射变换(affine transform)

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

4.3. 常用变换矩阵

平移变换(translation )

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



5. 法线变换

  • 需要用变换顶点的变换矩阵的逆转置矩阵来变换法线,才能确保法线的垂直性。
  • 如果变换矩阵是正交矩阵(只包含旋转变换的矩阵是正交矩阵),可以用变换顶点的矩阵变换法线。
  • 如果变换只包含旋转和统一缩放,可以使用来变换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值