一些数学基础

【1】线性代数

[1.1] 向量

向量相等

向量加法

向量与数量乘法

向量的数量积(点积):投影

向量的向量积(叉积):平面的方向向量

[1.2] 矩阵

矩阵加法

数与矩阵相乘

矩阵的乘法

矩阵的转置

逆矩阵

[1.3] 矩阵和向量在游戏中的应用

二维变换

三维变换:三维变换都可以统一表示成矩阵的形式。对空间中的某个点进行变换,也就是对这个点的向量和变换矩阵相乘,得到的结果就是变换后的点。由于矩阵相乘有结合律,所有的变换都可以在施加到向量之前进行相乘,得到一个单独的矩阵。这个矩阵包含了所有变换信息,大大提高了效率并简化了运算过程。

[1.4] 欧拉角

物体在三维空间的有限转动,可依次用三个相对转角表示,这三个转角统称为欧拉角。

欧拉角有多种表示方式,游戏引擎中最常用的可能是roll(横滚角)、pitch(俯仰角,也作tilt)、yaw(偏航角,也作pan),分别对应于右手笛卡尔坐标系的x、y和z轴的旋转。

欧拉角的万向节死锁(Gimbal Lock)会导致位置上连续变化 在数值表示上确是非连续的。给定的两个关键帧之间无法平滑过渡。

[1.5] 四元数

四元数是最简单的超复数,是由实数加上三个虚数单位i、j、k组成,而且它们有如下关系:i^2=j^2=k^2=ijk=-1。也可将四元数看成由实部和虚部组成。

四元数运算:

1.四元数的加法与减法

2.加法逆元素

3.四元数相乘

4.共轭四元数

5.单位四元数

6.四元数的逆(也称为倒数)

用四元数表示旋转:

轴-角对(n,Θ)定义了一个角位移:绕向量n所指定的轴旋转Θ角。

四元数可以被解释为角位移的轴-角对方式:q=[cos(Θ/2)  sin(Θ/2)n]=……

使用四元数表示旋转的一个最大好处就是可以实现SLERP插值(球面线性插值),可以解决欧拉角表示旋转带来的万向节死锁问题。

[1.6]

旋转矩阵、欧拉角和四元数比较

它们都可以用来对一个点、向量或者物体完成旋转的操作,它们之间是可以互相转化的。

【2】几何

[2.1]直线方程

[2.2]平面方程

[2.3]点在三角形内部的判断:

检测是否共面;

判断待检测点是否位于三角形内部,有三种方法。

[2.4]直线与三角形相交检测

这是游戏引擎中常见的问题,最典型的应用就是拾取(Picking),即判断鼠点了三维场景中的哪个物体。

最常见的两种方法:

直接求解法,解方程求直线与三角形所在平面的交点,再判断交点是否在三角形内;

参数化求解法,过程略。

[2.5]曲线

常用的参数曲线有贝塞尔曲线和B样条曲线。

【3】数学在游戏引擎中的高级应用

本节我们主要讨论游戏引擎当中遇到的物理学问题,及其数学求解方法。

[3.1]速度的积分运算

[3.2]差分的应用

显式欧拉方法

隐式欧拉方法

龙格-库塔方法

[3.3]流体方程

由于计算量大,游戏应请中通常采用简单的粒子系统来表现流体。

随着硬件的发展,计算机的计算能力逐渐加强,特别是GPU的不断发展和一些新的流体仿真算法的出现,纳维-斯托克斯方程的求解是关键所在。目前主要有三类方法:欧拉网络;玻尔兹曼格子机;基于粒子的方法,如SPH(光滑粒子动力学)。这三类方法从本质上来说是一致的,只是原理有所不同,都可以推导出纳维-斯托克斯方程。

纳维-斯托克斯方程通常由两部分组成:

(1)质量方程(连续性方程),

(2)动量方程。

[3.4]有限元变形计算

模拟柔软的物体效果,这些物体在外力的作用下会变形。质量弹簧模型的计算速度较快,但精确度较差。使用有限元方法可以得到更为精确的软体变形,多用于工程计算中,在游戏的应用中很少见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值