青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Ogre中的碰撞檢測(轉)

Posted on 2008-07-23 15:28 RichardHe 閱讀(2137) 評論(1)  編輯 收藏 引用 所屬分類: OGRE

原創 韓舉
http://www.hjpdiy.com

Ogre采用樹樁管理場景中的各種"元素"(攝像機、燈光、物體等),所有的東西都掛在"樹"上,不在"樹"上的東西不會被渲染。
Ogre::SceneManager就是"樹"的管理者,Ogre::SceneNode是從SceneManager中創建的(當然BSP和8*樹的管理也和這兩個類有關,這暫時不討論)。

AABB(軸對齊包圍盒)

這個東西是碰撞檢測的基礎(怎么總想起JJYY呢),和它類似的還有OBB(有向包圍盒),由于OBB創建復雜,所以Ogre采用了AABB。

最簡單的碰撞檢測:


過Ogre::SceneNode::_getWorldAABB()可以取得這個葉子節點的AABB(Ogre::AxisAlignedBox),
Ogre::AxisAlignedBox封裝了對AABB的支持,該類的成員函數Ogre::AxisAlignedBox::intersects
()可以判斷一個AABB和"球體、點、面以及其他面"的相交情況(碰撞情況)。

    m_SphereNode樹的葉子,掛了一個"球"
    m_CubeNode樹的葉子,掛了一個"正方體"

    AxisAlignedBox spbox=m_SphereNode->_getWorldAABB();
AxisAlignedBox cbbox=m_CubeNode->_getWorldAABB();
if(spbox.intersects(cbbox))
{
     //相交

}

區域查詢:

簡單的講就是,查詢某一區域中有什么東西,分為AABB、球體、面查詢。

   //創建一個球體查詢,這里的100是m_SphereNode掛著的那個球體的半徑
   SphereSceneQuery * pQuery=m_SceneMgr->createSphereQuery(Sphere(m_SphereNode->getPosition(),100));
   //執行這個查詢
   SceneQueryResult QResult=pQuery->execute();
   //遍歷查詢列表找出范圍內的物體
   for (std::list<MovableObject*>::iterator iter = QResult.movables.begin(); iter != QResult.movables.end();++iter)
   {
    MovableObject* pObject=static_cast<MovableObject*>(*iter);
    if(pObject)
    {
     if(pObject->getMovableType()=="Entity")
     {
      Entity* ent = static_cast<Entity*>(pObject);
      //這里簡化了操作,由于只有一個"球體"和一個"正方體",
      //所以只判斷了球體和正方體的相交

      if(ent->getName()=="cube")
      {
       //改變位置防止物體重疊
       vtl=-vtl;
       m_SphereNode->translate(vtl);
       break;
      }
     }
    }
   }

相交查詢

遍歷所有的對象,找到一對一對的相交物體(廢話呀,相交當然至少兩個物體)。

    //創建相交檢測
    IntersectionSceneQuery* pISQuery=m_SceneMgr->createIntersectionQuery();
    //執行查詢
    IntersectionSceneQueryResult QResult=pISQuery->execute();
    //遍歷查詢列表找出兩個相交的物體
    for (SceneQueryMovableIntersectionList::iterator iter = QResult.movables2movables.begin();
     iter != QResult.movables2movables.end();++iter)
    {
    
     SceneQueryMovableObjectPair pObject=static_cast<SceneQueryMovableObjectPair>(*iter);
     //if(pObject)
     {
      String strFirst=pObject.first->getName();
      String strSecond=pObject.second->getName();
      //下面加入你自己的兩個物體相交判斷代碼,或者簡單的用AABB的判斷方法,
     }
    }

Feedback

# re: Ogre中的碰撞檢測(轉)[未登錄]  回復  更多評論   

2009-02-10 13:06 by hunter
不錯,學習

posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩久久久久久| 日韩视频精品| 久久国产精品久久久久久电车| 欧美亚洲网站| 亚洲成色精品| 国产精品欧美在线| 久久综合九色欧美综合狠狠| 亚洲大胆av| 欧美一区二区三区四区夜夜大片| 国产综合久久久久久鬼色| 欧美日韩高清在线| 久久天天综合| 午夜欧美理论片| 99riav国产精品| 欧美激情偷拍| 看欧美日韩国产| 欧美一区在线视频| 亚洲婷婷免费| 中文国产成人精品| 一二美女精品欧洲| 亚洲精品五月天| 亚洲乱码久久| 9色国产精品| 亚洲一区亚洲| 香蕉久久夜色精品国产使用方法| 亚洲视频中文| 一区二区三区欧美成人| 99re热这里只有精品视频| 黄色av日韩| 亚洲人成在线播放| 亚洲精品一区二| 亚洲伦理久久| 亚洲私拍自拍| 久久精品99| 欧美成人免费视频| 亚洲国产欧美一区二区三区同亚洲 | 亚洲大片精品永久免费| 在线免费观看成人网| 在线电影一区| 99爱精品视频| 久久五月天婷婷| 亚洲国产二区| 香蕉久久夜色精品国产| 女人香蕉久久**毛片精品| 国产精品a久久久久| 韩国一区二区在线观看| 亚洲欧洲中文日韩久久av乱码| 中国av一区| 欧美成人小视频| 午夜久久资源| 欧美日韩在线播放三区四区| 国内精品久久久久久久97牛牛| 亚洲精品一区二区三区樱花 | 国产欧美日本一区二区三区| 曰韩精品一区二区| 久久九九免费视频| 一区二区三区 在线观看视频| 久久―日本道色综合久久| 欧美色视频一区| 亚洲盗摄视频| 久久亚洲免费| 西瓜成人精品人成网站| 欧美日韩日韩| 日韩视频在线一区二区| 亚洲第一搞黄网站| 久久久7777| 亚洲成人在线视频播放| 久久国产精彩视频| 亚洲免费一区二区| 国产精品久久久久久福利一牛影视| 亚洲人体大胆视频| 亚洲国产精品传媒在线观看 | 国产一区二区三区四区老人| 欧美一区日韩一区| 欧美一区激情视频在线观看| 国产欧美一区二区三区国产幕精品 | 欧美成人精品在线播放| 99成人免费视频| 99一区二区| 国产欧美日韩三级| 久热国产精品| 欧美日韩国产精品一区二区亚洲| 99视频在线精品国自产拍免费观看 | 精品粉嫩aⅴ一区二区三区四区| 久久国产一二区| 欧美成人国产一区二区| 亚洲香蕉网站| 久久久精品国产免费观看同学| 亚洲第一精品在线| 国产精品99久久久久久宅男| 国产农村妇女精品一二区| 欧美大片一区二区| 国产精品国产三级国产普通话蜜臀 | 黄色精品网站| 中文网丁香综合网| 亚洲电影免费观看高清| 亚洲少妇一区| 一区二区三区视频在线 | 国产伦精品一区二区三区照片91| 免费在线欧美视频| 国产偷久久久精品专区| 亚洲精品视频一区| 亚洲福利视频专区| 欧美在线高清| 久久久www| 国产欧美日韩视频在线观看| 亚洲高清资源| 91久久久精品| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美一区二区三区在| 国产精品毛片在线| 99精品热6080yy久久| 99精品久久久| 国产精品美腿一区在线看| av成人福利| 香蕉久久久久久久av网站| 国产精品卡一卡二| 中文网丁香综合网| 久久精品二区三区| 亚洲高清自拍| 欧美久久久久免费| 一区二区免费在线播放| 欧美一区二区三区另类| 国内精品伊人久久久久av一坑| 久久久精品性| 日韩午夜电影av| 欧美亚洲网站| 亚洲理论在线观看| 国产精品欧美日韩久久| 久久久久久久久久久久久女国产乱 | 好吊妞**欧美| 欧美剧在线观看| 久久精品人人做人人爽| 亚洲国产日韩欧美在线99| 久久爱www久久做| 91久久在线| 国产精品日韩欧美大师| 欧美成黄导航| 欧美一区日韩一区| 亚洲人体偷拍| 亚洲国产日本| 毛片一区二区三区| 久久成人一区二区| 在线中文字幕不卡| 亚洲免费观看高清在线观看| 国产亚洲制服色| 国产农村妇女精品一二区| 欧美日韩国产bt| 欧美成人黑人xx视频免费观看| 性欧美xxxx视频在线观看| 在线亚洲一区观看| 亚洲国产精品成人va在线观看| 久久综合色影院| 欧美1区2区| 亚洲第一在线视频| 欧美高清视频免费观看| 中文在线资源观看网站视频免费不卡 | 欧美激情精品| 欧美日韩在线免费视频| 国产精品久久二区| 国产免费成人在线视频| 国产主播一区二区三区| 伊人夜夜躁av伊人久久| 亚洲成色www8888| 一区二区av在线| 欧美在线综合视频| 美女黄毛**国产精品啪啪| 亚洲国产成人精品视频| 日韩一级成人av| 欧美一区二区视频在线观看2020| 六月婷婷久久| 国产精品一区二区你懂的| 亚洲国产成人在线播放| 一区二区精品在线观看| 噜噜爱69成人精品| 99国产欧美久久久精品| 久久久久久欧美| 国产精品久久久久久久午夜片 | 国产精品久久久久77777| 精品白丝av| 欧美在线免费观看视频| 亚洲人成在线观看网站高清| 久久精品一本久久99精品| 欧美日韩在线免费| 亚洲精品小视频| 欧美成人自拍| 久久天堂成人| 一区二区在线不卡| 蜜桃精品久久久久久久免费影院| 国产精品99久久久久久宅男| 欧美全黄视频| 日韩视频一区二区在线观看| 麻豆精品一区二区综合av| 久久国产视频网| 黄色资源网久久资源365| 老司机亚洲精品| 久久综合久久综合九色| 一区二区三区无毛| 亚洲电影第三页| 欧美午夜宅男影院在线观看|