Unity中Rigidbody的Continuous Speculative模式

本节为Rigidbody的附加章节,主要是说明刚体连续的碰撞的第四种模式——Continuous Speculative模式,书上已经很多资料都没有过多描述这一个模式的,所以我特意总结了一番!


Continuous Speculative: 使用推测式连续碰撞检测,这是唯一的CDD模式,CDD模式能够确保快速的移动

                                       的物体与物体进行碰撞,而不是穿过这样物体,Unity提供了两种CCD方法。

1.基于扫频的CCD

基于扫描的CCD使用时间影响(TOI)算法来计算潜在的碰撞,碰撞通过使用当前速度扫描其前向轨迹,查看对象

如果沿对象的移动方向存在接触,则算法计算影响的时间并将对象移动到该时间。

该算法可以执行从那时起的子步骤,在TOI之后计算速度然后重新扫描,代价是更多的CPU周期。   

但是,由于此方法依赖于线性扫描,因此忽略了物体的角运动,当物体以高速旋转时,这会导致隧道效应。

例如,弹球机中的鳍状板固定在一端并绕固定点旋转。鳍状肢仅具有角运动而没有线性运动。

因此,很容易错过与弹球的碰撞:此方法的另一个问题是性能,如果你有大量的高速物体与CCD非常接近

由于额外的扫描,物理引擎中必须执行更多CCD子步骤,CCD开销会迅速增加。



2.投机的CCD

推测CCD的工作原理是根据物体的线性和角度运动增加物体的宽相轴对齐最小边界框(AABB)。该算法是推测性的

因为它在下一个物理步骤中选择所有潜在的接触,然后将所有接触点馈送到求解器中,这确保满足所有接触约束

以便对象不会穿过任何碰撞。下图显示了如果在路径中没有墙,则从t0移动的球体如何在t1处具有预期位置

通过用其目标姿势使AABB膨胀,推测算法获得具有n1和n2法线的两个接触。然后算法告诉求解器存储那些接触,

这样球体就不会穿过墙壁。



基于当前速度的充气AABB有助于检测沿着移动轨迹的所有潜在接触,这使得求解器能够防止隧穿,

推测CCD通常比基于扫描的方法更加节省性能,因为接触仅在碰撞检测阶段期间计算

而不是在求解和碰撞阶段期间计算,此外,由于推测CCD基于物体的线性和角度运动扩展了AABB

因此它找到了基于扫描的CCD可能遗漏的触点


但是,推测性CCD可能会导致重影碰撞,其中物体的运动受到投机接触点的影响。这是因为推测CCD基于最近点算法

收集所有潜在接触,因此接触法线不太准确。这通常可以使高速物体沿细分的碰撞特征滑动并跳起,

即使它们不应该,例如,在下图中,球体从t0开始并向右水平移动,在连续碰撞后t1处的预测位置

膨胀的AABB与方框b0和b1重叠,CCD在c0和c1处产生两个推测接触。因为推测CCD使用最近点算法生成接触,

所以c0具有非常倾斜的法线,这似乎是求解器的斜坡


这种非常倾斜的法线会导致t1在连续碰撞后向上跳跃,而不是直接向前移动


 推测CCD也可能导致隧穿,因为仅在碰撞检测阶段计算推测接触。在接触求解期间,

如果一个物体从求解器获得太多能量,它可能在积分后最终在初始膨胀的AABB之外。

如果在AABB外面存在碰撞,则该对象将通过隧道。


例如,下图显示了一个球体在顺时针旋转时从t0向左移动。如果球体从撞击中获得太多能量,

,它可能最终在t1处退出膨胀的AABB(红色虚线矩形)。如果在AABB外面发生碰撞,如下面的蓝框所示,

球体可能最终通过它进行隧道掘进。这是因为求解器仅计算充气AABB内的触点,

并且在求解和积分阶段不执行碰撞检测。




以上就是对Continuous Speculative模式的全部描述,如有不当之处欢迎评论指出!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容