刚体
September 10, 2020About 1 min
刚体
什么是刚体?
一个物体表面很结实,它没有形变
刚体模拟
更新不同时间点物体的状态
刚体运动
只允许刚体平移和旋转
TODO 刚体模拟过程
旋转矩阵
优点:
- 可以很方便的旋转任意向量
缺点:
- 有冗余:矩阵有九个元素,旋转只有三个方向
- 不直观且复杂
- 计算时间微分也就是求角速度不是那么容易
欧拉角旋转
优点:
- 直观
缺点:
- 万象锁
- 计算时间微分也就是求角速度不是那么容易
四元数旋转
最开始是用来定义一个三维空间中一个点,前一个数为实数s
,后一个数v
为向量即三个虚数。
在Unity中 s
为 w
,v
为 x,y,z

如何使用四元数表示旋转
我们需要绕 v 向量旋转Θ角度,可以写成下面这样,于此同时也约束了旋转向量的长度。

角速度
力矩
距离函数
检测是否产生碰撞

Penalty
当发生碰撞了过后,就对物体施加一个力。
速度、位移下一帧更新。
Impulse
发生碰撞后,速度、位移马上更新。
阅读
https://graphics.pixar.com/pbm2001/
Witkin and Baraff. 2001. Physically Based Modeling – Rigid Body Dynamics. SIGGRAPH Courses.