基于扫掠的 CCD 是用于连续 (Continuous) 和连续动态 (Continuous Dynamic) 模式的 CCD 算法。
对仅与静止的静态碰撞体(即没有刚体的游戏对象)碰撞的物理体使用连续模式。对与移动的动态碰撞体(即具有动态刚体的游戏对象)碰撞的物理体使用连续动态模式。
连续和连续动态模式是最准确的碰撞检测模式。但是它们的计算要求也最高。此外,它们仅适用于由线性移动导致的碰撞,而无法检测由物理体旋转导致的碰撞(例如,弹球杆在绕轴旋转时与球相碰撞)。
基于扫掠的 CCD 使用撞击时间 (TOI) 算法来计算可能的碰撞。为此,算法会以对象的当前速度沿着对象的向前轨迹“扫掠”或检测。
在上图中:
如果沿对象的移动方向上发生了接触,该算法会计算撞击时间并移动对象直至达到该时间。该算法可以从该时间开始执行子步骤;最重要的是,它可以重新计算碰撞后的速度,然后在新轨迹上重新扫掠。
在上图中:
基于扫掠的 CCD 会对性能产生重大影响,尤其是在广泛用于项目中时。如果附近有大量启用了基于扫掠的 CCD 的高速对象,CCD 的开销将快速增加,因为物理引擎不得不执行更多的扫掠和更多的 CCD 子步骤。
基于扫掠的 CCD 的一个局限性是只能执行线性(或定向)扫掠,而不能执行角度(或旋转)扫掠,这意味着它无法预测物理体旋转时可能发生的碰撞。例如,弹球机上的弹球杆固定在一端并围绕一个固定点旋转;它仅发生旋转运动,没有线性运动。如果还需要考虑对象的旋转,请使用推断性 CCD。