Physx减少碰撞检测的优化
来源:互联网 发布:php设计模式 编辑:程序博客网 时间:2024/06/08 07:02
首先说明这里的碰撞检测(Collision Detection)包括的内容:
1. 接触 Collision
2. 触发 Trigger
3. 射线检测 Raycast
4. 范围检测 Overlap
检测过程:
首先Physx本身并不是每次都遍历所有2v2组合,判断是否需要判断。而是自动把Shape根据区域进行了划分。每个shape只会与自己附近的Shape进行碰撞检测。
另外Shape所属的Actor必须至少有一个是Dynamic的。其次默认情况下joint的shape之间是不会碰撞的,如果需要添加碰撞需要修改初始化参数NX_COLL_VETO_JOINTED
除此之外,还提供了两种用户可以设置的检测标志,用来判断是否需要进行校验。一种无效就无效
1.Shape分组
一共有0-31组,默认Shape都在Group 0
Shape提供了设置组的方法 NxShape::setGroup(NxColGroup)
Scene提供了设置分组之间碰撞标志的方法 NxScene::setGroupCollisionFlag(NxColGroup1, NxColGroup2, bool)
2.Actor分组. 比第一种方法多了可以设置具体的碰撞事件。而不是所有的事件
一共有0x7fff个分组, 默认所有Actor都在分组0
NxActor提供了设置组的方法 NxActor::setGroup(NxColGroup)
Scene提供了设置分组之间碰撞标志的方法 NxScene::setActorGroupPairFlags(NxColGroup1, NxColGroup2, NX_NOTIFY_XXX)
3.专门的Pair对
NxScene::setActorPairFlags(NxActor&, NxActor&, NxU32 flag)
NxScene::setShapePairFlags(NxShape&, NxShape&, NxU32 flag)
4.Contact Filtering
Shape保留GroupMask
Scene保留Const0, Const1, Op0, Op1, Op2, boolValue
通过 ((Mask0 Op0 Const0) Op2 (Mask1 Op1 Const1)) == boolValue 来判定是否碰撞。如果true,则碰撞
void NxScene::setFilterOps(NxFilterOp op0, NxFilterOp op1, NxFilterOp op2);
void NxScene::setFilterBool(bool flag);
void NxScene::setFilterConstant0(const NxGroupsMask& mask);
void NxScene::setFilterConstant1(const NxGroupsMask& mask);
void NxShape::setGroupsMask(const NxGroupsMask& mask);
const NxGroupsMask NxShape::getGroupsMask() const;
- Physx减少碰撞检测的优化
- PhysX 3.2中碰撞过滤的实现
- 四叉树优化碰撞检测
- 四叉树碰撞检测算法优化
- CharacterControllerr的碰撞检测
- 理论上的碰撞检测
- QGraphicsScene的碰撞检测
- Physx范围伤害检测
- 超强的不规则碰撞检测
- 碰撞检测的资源连接
- xna像素的碰撞检测
- 带碰撞检测的摄像机
- Tiled碰撞检测的实现
- Unity3D里的碰撞检测
- 碰撞检测函数的区别
- cocos2d-x的碰撞检测
- 带碰撞检测的摄像机
- 坑爹的碰撞检测
- VC 托盘编程及弹出菜单
- iOS静态库管理
- Code Sign error: a valid provisioning profile matching the application's Identifier '***' could not
- 我的读取hadoop Sequence格式的文件的代码
- 37、Java IO流
- Physx减少碰撞检测的优化
- Linux学习笔记2
- Android 摇一摇功能的实现
- 网络编程Server端 --- Linux版
- A prepared statement is generated from a nonconstant String
- Alexa图参数说明
- 日本人談qemu的內存訪問的文章
- Linux中fork同时创建多个子进程的方法(二)
- 变化检测算法