迈克老狼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2009年11月20日

摘要: 前面的碰撞检测都是基于AABB的,并不精确, MOC利用射线场景查询,通过遍历Mesh的三角片,求得Mesh级别的碰撞检测,是个很好的轻量级碰撞检测工具。而且支持ETM和TSM两种地形。下载地址:http://www.artifexterra3d.com/另外该作者编写的编辑器也不错。 阅读全文
posted @ 2009-11-20 17:02 迈克老狼 阅读(247) 评论(0) 推荐(0) 编辑

摘要: 通过运行时类型识别(RTTI), 我们能够使用基类的指针或引用来判定这些指针或引用实际指向对象的类型。这要求基类中至少要有一个虚函数。判定的方法包括dynamic_cast和typeid: 1、dynamic_cast 动态转化 它的格式为:dynamic_cast<T*>(basestr) 或 dynamic<T&>(basetype)basestr必须是0( 此... 阅读全文
posted @ 2009-11-20 15:12 迈克老狼 阅读(232) 评论(0) 推荐(0) 编辑

摘要: 在3中,我提到检测到碰撞时候,后移一个单位,摄像机会抖动,现在通过记录摄像机上步移动偏移量,如果检测到碰撞则反移回来,可以解决这个问题。下面是修改后的代码:[代码] 阅读全文
posted @ 2009-11-20 09:39 迈克老狼 阅读(178) 评论(0) 推荐(0) 编辑

摘要: [代码] 程序会输出什么呢?A:tt2,而不是B:tt2,就是说B 虽然覆盖了tt1, 但B调用tt2时候,仍会调用A中tt2。 阅读全文
posted @ 2009-11-20 09:29 迈克老狼 阅读(156) 评论(0) 推荐(0) 编辑

2009年11月19日

摘要: 当使用场景查询时还有一件事要考虑。假设你在场景里加入了一个公告板或者粒子系统,并且想要移动它。你会发现查询不会返回你点击的公告板。这是因为SceneQuery还存在另外一个Mask,查询类型Mask(QueryTypeMask),它限制了你只能选择这个标记指定的类型。默认情况是,当你作一个查询时,它只返回实体类型的物体。 在你的代码里,如果想要查询返回公告板或者粒子系统,则你要在执行查询之前这么... 阅读全文
posted @ 2009-11-19 16:14 迈克老狼 阅读(477) 评论(0) 推荐(0) 编辑

摘要: CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--CEGUI::PointmousePos=CEGUI::MouseCursor::getSingleton().getPosition();RaymouseRay=mCamera->getC... 阅读全文
posted @ 2009-11-19 15:36 迈克老狼 阅读(516) 评论(0) 推荐(0) 编辑

摘要: 相交查询,就是遍历所有的对象,找到一对一对的相交物体,不过感觉不太实用。下面是网上找出来的相关代码:[代码] 阅读全文
posted @ 2009-11-19 14:22 迈克老狼 阅读(153) 评论(0) 推荐(0) 编辑

摘要: 通过设置不同的掩码,可以实现有选择的碰撞检测,下面的代码中,ogre头能被查询器检测到,而机器人由于掩码不同,不能被检测到。[代码] 阅读全文
posted @ 2009-11-19 14:18 迈克老狼 阅读(242) 评论(0) 推荐(0) 编辑

摘要: 在Ogre中,可以创建一个查询器,比如球体查询器,AABB查询器,面查询器等。下面我们以最常用的球形查询器为例来说明:如下面的代码,我们首先创建一个球形查询器,它需要定义一个球体,我们把它的位置,设置为摄像机的位置,半径为10,掩码为第二个参数,默认为-1,通过掩码,可以把碰撞的物体分成不同的组,比如我们设置球形场景查询器的掩码为0x1,则它只检测和它掩码相同物体的碰撞。该摄像机检测到entity... 阅读全文
posted @ 2009-11-19 14:03 迈克老狼 阅读(934) 评论(0) 推荐(0) 编辑

摘要: Ogre 中,每个节点有AABB(轴对齐包围盒),通过包围盒,可以实现碰撞检测判断。具体实现过程如下: 通过Ogre::SceneNode::_getWorldAABB()可以取得这个叶子节点的AABB(Ogre::AxisAlignedBox),Ogre::AxisAlignedBox封装了对AABB的支持,该类的成员函数Ogre::AxisAlignedBox::intersects()可以判... 阅读全文
posted @ 2009-11-19 13:44 迈克老狼 阅读(781) 评论(0) 推荐(0) 编辑