第12章 调试绘图(Debug Drawing)实现 b2DebugDraw 可得到物理世界的细部图,这里是可用的实体: • 形状轮廓 • 关节连通性 • 核心形状(用于连续碰撞) • broad-phase的AABB,包括世界的AABB • polygon oriented bounding boxes (OBBs) • broad-phase pairs (potential contacts) • 质心 这是绘制这些物理实体的首先方法,比直接访问数据要好。因为很多的必要信息只能在内部访问并时有变更。 testbed使用debug drawing和接触监听器来绘制物理实体。它本身就是个好例子,演示了怎样去实现debug drawing以及怎样会绘制接触点。 Box2D使用了一些数值近似来让模拟更高效。这就带来一些限制。 这是当前的限制: 1. 将重的物体放到相对很轻的物体上面,会不稳定。当质量比到10:1时,稳定性就会降低。 2. Polygons may not slide smoothly over chains of edge shapes or other polygon shapes that are aligned. For this reason, tile-based environments may not have smooth collision with box-like characters.这个问题在将来会被修复。 3. 用关节将body链接起来,如果是较轻的body吊着较重的物体,body链接有可能被拉伸。比如,一条很轻的锁链吊着个很重的球,就可能不稳定。当质量比超过10:1时,稳定性就会降低。 4. 通常还有约0.5cm的间隙,就检测到形状与形状碰撞。 5. 连续碰撞是按顺序处理的。在发生撞击事件时,body会向后移动,并在剩余的时间步内停留在那里。这可能会使得快速移动的物体,移动起来不太平滑。 Erin Catto 的 GDC 教程: http://code.google.com/p/box2d/downloads/list 3D交互环境下的碰撞检测(Collision Detection in Interactive 3D Environments), Gino van den Bergen, 2004 实时碰撞检测(Real-Time Collision Detection), Christer Ericson, 2005 |
Box2D v2.1.0用户手册翻译 - 第12, 13, 14章
最新推荐文章于 2021-04-21 16:20:42 发布