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

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悬挂的球

关于内存池的构建

使用2D公式汇总