|
|
发表于 2007-4-19 17:55:00
|
显示全部楼层
Re: 关于挡住与穿过的问题!
在摄像机位置捆绑一个AABB, 创建一个AxisAlignedBoxSceneQuery, 例如:
const unsigned int LIGHT_QUERY_MASK = 0x00000001; //掩码定义
Light* light1 = mSceneMgr->createLight("Light1");
Light* light2 = mSceneMgr->createLight("Light2");
light1->setPosition(12, 12, 12);
light2->setPosition(5, 5, 5);
light1->setQueryFlags(LIGHT_QUERY_MASK);
light2->setQueryFlags(LIGHT_QUERY_MASK);
AxisAlignedBoxSceneQuery* lightQuery =
mSceneMgr->createAABBQuery(AxisAlignedBox(0, 0, 0, 10, 10,10, LIGHT_QUERY_MASK);
SceneQueryResult& results = lightQuery->execute(); //查询
SceneQueryResultMovableList::iterator it = results.movables.begin();
for (; it != results.movables.end(); it++)
{
assert ((*it)->getQueryFlags() & LIGHT_QUERY_MASK) != 0);
}
mSceneMgr->destroyQuery(lightQuery);
|
|