Impuse2D 项目描述
项目描述
这是一个2D的物体引擎,目前支持刚体碰撞,支持常见的约束求解。使用的优化技术包括:内存池、动态树、休眠。
2D测试场景说明
Impuse2D物理引擎,后面会满足以下场景:
01 基本测试
- 自由落体(Free Fall):使用不同质量物体,从不同高度释放,无空气阻力,验证重力和基础积分。
- 静止堆叠(Stack Test):金字塔堆叠。测试睡眠系统,静摩擦力。
- 弹性碰撞(Bounce Test):不同恢复系数(0.0, 0.5, 0.8, 1.0)的球体,从高处掉落。
- 摩擦力测试(Friction Test): 在不同斜面(15,30,45度),不同摩擦系数(0.0, 0.3,0.6, 1.0)的测试。
02 碰撞检测
- 基本形状碰撞(Shape Collision Matrix): Circle, Box, Polygon的两两组合。
- 连续碰撞检测(CCD Test):子弹穿墙。
- 宽相测试(Broad Phase): 随机分布的压力测试。
- 接触点测试(Multi-Contact):Box在地面滑动,多边形在地面,
03 约束和关节测试
- 距离关节(Distance Joint):单个物体悬挂,5个物体串联
- 旋转关节(Revolute Joint):布娃娃系统
04 性能测试
- 粒子爆炸(Particle Explosion):从中心出100-500小碎片,与墙壁碰撞。
- 多米诺骨牌(Domino): 100-1000骨牌排列,推到第一块,观察连锁反应和睡眠机制。
- 牛顿摆(Newton’s Cradle):5-7悬挂的球