游戏使用的物理引擎是如何能够模拟出现实的情景变化?

首先物理引擎是不能够「确实」地模拟现实的物理情景变化,物理引擎只是对现实的物理情景进行非常粗略的「近似」模拟。

同时物理引擎和实际做出来的游戏还是有不小的差距的,可以理解为用3D工具制作出来的模型以及骨骼是木偶,物理引擎是就是拉动他们按照「近似」于现实的物理规律进行运动的线。

以2D物理引擎2DBox的命名为例,大部分的物理引擎都会包含这些基本的概念

World(模拟世界)World可以理解为一个舞台,在这个舞台的边界范围内,你可以设置各种各样的物理参数,也只有在这个舞台内物理引擎才会生效。

Fixture(定制器)Fixture定义了物体的碰撞边界,密度,摩擦系数,恢复系数等等的内容,你可以理解为一个标签,贴在了模型上,赋予了他们在World中的物理属性。

其中Sensor(传感器)算是一种特殊的Fixture,因为它本身不带有碰撞或者密度等物理特性,但对于进入它的边界中的物体可以施加作用。

Constraint(约束)Constraint的名字其实就很好的说明了它的性质,它可以是施加在一个物体上,限制这个物体的转动角度,速度等等物理特性的(或者说是移除了一定的自由度)。

也可以是连接多个物体,并同时限制与多个物体相关的物理特性的,这的Constraint称为Joint(关节),Joint有很多不同的类型,比如Joint limit,Joint motor,都有各自不同的功能。