Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

游戏物理公式总结

在讲解物理引擎工作原理前,我们快速复习一下相关的物理知识。在游戏开发中,物理模拟涉及很多方面,比如物体的碰撞,特效的粒子,液体,烟雾等。为了描述这些效果,我们通常基于不同的力学体系,下面简单介绍一下。

质点运动学(Particle Kinematics)

描述的对象用质点描述,质点无大小、无形状、不可旋转,仅描述运动轨迹,不考虑力的作用。在游戏中应用:特效粒子系统、动画轨迹等。物理量包括:

位置:

速度:

加速度:

质点动力学(Particle Dynamics)

描述对象是质点,不考虑旋转和形状影响,与质点运动学区别是考虑外力作用。通过牛顿第二定律更新状态,涉及的物理量包括:位置,速度,外力,质量,加速度。游戏中,考虑重力、风力、弹簧的质点效果。

刚体动力学(Rigid Body Dynamics)

对象具有形状,但是不可变形。考虑旋转影响。通过线速度和角度描述运动状态。外力和力矩可以改变运动状态。可以描述碰撞和约束情况。在游戏中多数可交互的物体,例如角色、车辆、道具。

随时间可以变换的物理状态量:位置,姿态(四元数),线速度,角速度

不随时间变化的物理量:质量,碰撞形状,局域坐标下的惯性张量

由上面变量推导出其他变量:

线动量

角动量

线加速度和角加速度

主要涉及的方程:

平移运动:

旋转运动:

冲量改变速度和角速度:

弹性体 / 柔体动力学(Deformable Body Dynamics)

对象通过网格来表示形变,通过内部应力和应变关系来改变运动状态。可模拟游戏中布料,绳子,果冻类软体角色和道具。主要涉及的物理量: 网格点位置和速度

内部应力,弹性模量、泊松比

使用的物理方程:

流体力学(Fluid Dynamics)

研究对象为连续介质,通过速度场、压力场和密度场来描述,通过下面微分方程进行求解。流体可以通过粒子和网格两种方法进行求解。在游戏中,液体和河流的模拟经常使用。 连续性方程:

Navier-Stokes 方程:

多体系统动力学(Multibody Dynamics)

多个刚体,通过关节和约束连接,组成一个系统。在系统的运动状态变化时,通过刚体动力学和约束求解器。主要涉及的物理量包含:刚体的状态量,约束位置和约束力,以及约束推导出的冲量。游戏中载具,连接的关节等。主要原理方程是: 其中为约束雅可比矩阵。

现代游戏引擎

现代的游戏物理引擎,主要是建立在多体系统动力学基础上,通过约束求解器求解系统运动状态变化的。