首页 > 编程之美 > Ogre中简单的AABB碰撞检测
2014
04-07

Ogre中简单的AABB碰撞检测

AABB(Axis Aligned Bounding Box)即轴向包围盒,每个物体都有一个包围盒,该包围盒完全罩住了物体,可利用该包围盒近似模拟物体形状,实现碰撞检测,如下图所示,可使用类似

的方法取得场景中某个物体,让物体绑定的场景节点的包围盒显示出来

Ogre中简单的AABB碰撞检测 - 第1张  | Jianchihu

当该物体的包围盒与其他要检测的物体的包围盒发生接触时,即表示发生了碰撞,由于包围盒不能完全模拟物体形状,所以该方法精度有限,只能适用于形状规则的简单物体,Ogre::AxisAlignedBoxSceneQuery 类封装了许多包围盒碰撞检测的方法,可利用该场景查询实现简单的碰撞检测,对于不需要应用该碰撞检测方法的物体,我们可以使用setQueryFlags()方法设置查询标识,场景查询使用setQueryMask()方法实现要与哪些标识的物体做碰撞检测。查询标识是一个很好用的东西,对于一些不需要做碰撞检测的物体,就可以通过设置查询标识过滤掉.下面是一个实现AABB场景查询的类,可以应用到自己程序中,实现一个简单的AABB碰撞检测。

CollisionAabb.h

CollisionAabb.cpp

最后编辑:
作者:Jianchihu
管理员——低调做事,低调做人

Ogre中简单的AABB碰撞检测》有 3 条评论

  1. Pingback 引用通告: nike blazer femme pas cher

  2. Pingback 引用通告: jordan 11 bred

  3. Pingback 引用通告: bred 11s

留下一个回复

你的email不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.