zhouqijie

碰撞过滤

多数物理引擎可以根据游戏具体的需求,决定碰撞体之间的接触是否成立。称为碰撞过滤(collision filtering)



1.碰撞掩码和碰撞层

最常见的过滤方式就是对物体进行分类,用一个查找表判断某类碰撞体能否与另一类碰撞。

Havok中每个碰撞体属于唯一一个碰撞层,每个一碰撞层维护一个32位的掩码,掩码每一位指定某碰撞层是否能与另一个碰撞层碰撞。
Cre:Unity的GameObject也属于唯一的碰撞层,每个碰撞层也维护一个32位掩码。



2.碰撞回调

另一种过滤技术。当碰撞检测到时调用回调函数。回调函数检查碰撞信息,可以按需求决定接受或者拒绝碰撞。

Ye:提高了应用程序自由度,但效率会较低。



3.碰撞材质

另一种分类方法是使用碰撞材质。可以用来控制碰撞过滤,也可以用来控制其他效果,例如弹力摩擦系数、音效、粒子特效等。

典型做法是碰撞原型以8、16、32位整数指定碰撞材质。此整数用于索引至某数据结构数组,内含详细碰撞属性。

Cre:Unity可以指定物理材质PhysicsMaterial。

(END)