您的位置:首页 > 产品设计 > UI/UE

Havok_2014-1-0_Pc_Xs_User_Guide(2.3.1-碰撞过滤)

2015-08-14 07:46 579 查看
2.3 与仿真交互

在前一章中,我们探讨了如何设置仿真世界和仿真对象。Havok建立这个通过提供一些工具和特性与仿真交互并自定义其行为。本章将研究如下:

•碰撞过滤:一个强大而灵活的系统定制哪些碰撞被引擎处理。

•一般监听器:监听器提供关于每一个重要事件可能发生的信息在一次Havok仿真中(如添加和删除一个对象,或失活模拟岛)。

•碰撞监听器:当发生时这些监听器提供碰撞和接触点的信息,允许用户修改物理行为或触发游戏逻辑。

•响应修改器:这些允许如何约束和解决接触点进行选择性行为调整。

•hkpWorld和hkpPhantom类的查询方法:这些使用碰撞检测器异步执行查询(如射线投向、线性投向和低级碰撞查询)。

2.3.1 碰撞过滤

碰撞过滤允许用户决定哪些实体可以相互碰撞,相反, 哪些碰撞应该被忽略。有许多过滤用例:您可能希望在约束物体间禁用碰撞(比如布娃娃上下臂之间的碰撞);或您可能希望报告幽灵之间的重叠,只有某些类型的身体。碰撞过滤将允许您轻松和灵活定义哪些碰撞被处理,哪些被忽视。

Havok的过滤系统依赖于两个重要的信息:

•碰撞过滤器:过滤器决定是否允许任何两个物体之间的碰撞。hkpCollisionFilter类定义过滤器接口。

物理世界最多只能有一个碰撞过滤器,筛选影响世界中的所有碰撞。设置过滤器,调用hkpWorld::setCollisionFilter()方法。  

•碰撞过滤信息:每个刚体、形状和碰撞查询提供了一个32位的“碰撞过滤器信息”,which is used by the collision filter to decide whether each collision involving that object is allowed.

碰撞过滤系统当然是可以忽略对象碰撞的碰撞过滤信息, 但在实践中,它将需要使用这些信息(或其他shape-specific信息)来决定是否过滤或允许碰撞。

这个系统的对象提供全球指定的信息过滤器实现  强大而灵活。一家名为Havok物理2012提供了一个默认的过滤器的实现,这是“组”   建议对于大多数用例。这个实现是在下面详细描述。我们还将描述  如何实现一个自定义的一些细节过滤器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: