OGRE碰撞检测之射线查询地形
来源:互联网 发布:正规淘宝刷平台会费20 编辑:程序博客网 时间:2024/04/26 15:01
//场景射线类:场景射线查询,全局指针变量,
RaySceneQuery* raySceneQuery = 0;
//在侦听器"FrameListener"类(继承于ExampleFrameListener)中,
//在侦渲染"FreameRendering"中执行场景射线一些列动作。
//射线类 静态:用于更新射线。
static Ray updateRay;
//设置射线起点。
updateRay.setOrigin(mCamera->getPosition());
//设置射线方向。
updateRay.setDirection(Vector3::NEGATIVE_UNIT_Y);
//将updateRay射线设置为场景查询射线。
raySceneQuery->setRay(updateRay);
//typedef std::vector<RaySceneQueryResultEntry> RaySceneQueryResult
//执行场景射线查询,并将结果存于qryResult容器中。
RaySceneQueryResult& qryResult = raySceneQuery->execute();
//遍历qryResult容器中的射线查询。
RaySceneQueryResult::iterator i = qryResult.begin();
if (i != qryResult.end() && i->worldFragment)
{ //把摄像机定在地形10个单位高的地方(y值)。
mCamera->setPosition(mCamera->getPosition().x,
i->worldFragment->singleIntersection.y + 10,
mCamera->getPosition().z);
}
//应用"Application"类中析构函数中,删除射线场景查询
delete raySceneQuery;
//在创建场景函数createScene中,定义raySceneQuery,定义为场景中的场景射线查询,
//射线起点为相机原点,方向Y轴负方向,即垂直向下。
raySceneQuery = mSceneMgr->createRayQuery(
Ray(mCamera->getPosition(), Vector3::NEGATIVE_UNIT_Y));
//选择场景管理器,这里我们需要使用地形场景管理器
//场景管理器置于根节点
//TerrainSceneManager在terrainscenemanager.h中定义的一个类
//多场景管理器能支持场景管理器把自己的类型注册为字符串ID
//(比如“OctreeSceneManager”或“TerrainSceneManager”)。
//这样你就可以使用迭代的方法在管理器中找到自己所需要的具体实现,
//亦或者可以简单的使用最后一个被注册进来的管理器类型。
//Ogre自身提供两个场景管理器类型:OctreeSceneManager和TerrainSceneManager。
//OctreeSceneManager是一个通用的场景管理器。TerrainSceneManager是
//一个为高度场场景优化的场景管理器。
mSceneMgr = mRoot->createSceneManager("TerrainSceneManager");
//在创建场景函数createScene中
//将地形置于场景中,地形数据存储于.cfg文件中(默认为terrain.cfg)
//地形数据的制作,通过高度图heightmap的运用。下面语句等同mSceneMgr -> setWorldGeometry("myterrain.cfg");
string terrain_cfg("myterrain.cfg");
mSceneMgr -> setWorldGeometry(terrain_cfg);
- OGRE碰撞检测之射线查询地形
- OGRE 地形碰撞检测
- 射线与地形的碰撞检测
- ue4碰撞检测及射线查询
- OGRE 碰撞检测之球体检测
- Ogre中场景查询和碰撞检测
- 射线使用-碰撞检测
- 射线使用-碰撞检测
- Unity 碰撞检测、射线
- unity3D 射线碰撞检测
- Unity 射线检测碰撞
- ogre射线场景查询
- Ogre射线场景查询
- Ogre射线精确查询
- Ogre射线精确查询
- Ogre射线精确查询
- Ogre射线精确查询
- Unity3d·射线·射线检测碰撞
- 几种图像显示的编码方式
- php中图片文字混合水印与缩略图
- Lazy Request Parameter Parser
- 程序编辑
- Hibernate几个易混淆方法解析及对象状态解析
- OGRE碰撞检测之射线查询地形
- ubuntu apt-get命令详解
- 郁闷
- aptitude 命令详解
- Apt-get 和 aptitude 命令对比参考
- JavaBean获取文件绝对路径
- Ruby快速入门(五):字符串和正则表达式
- 看了我的心涼一半,我們的孩子天賦,就是這樣糟蹋的
- 换个工作