By MulinB
最近项目需要模拟一个3D场景飞机飞行的简单演示,主要功能就是提供一个比较大的地形高程图和一个飞机飞行路线,能在三维下显示演示飞机飞行。感觉以前自己见过不少类似的游戏,这无非是第一个人称射击类或者模拟飞行类的游戏的简化版,所以从避免重复制造轮子的角度决定查一下开源游戏引擎,看看有没有类似的可以很快开发出第一人称射击类游戏的引擎。经过查看了一些网上的评论和对比文章决定使用三维图形渲染引擎OGRE来开发。
OGRE的演示Demo里有个Terrain的演示,直接是一个由地形高程图生成三维地形场景的例子,其使用的是OGRE内置的TerrainSceneManager(下面简称TSM)场景管理器,《Pro OGRE 3D Programming》里面对这个场景管理器的使用介绍的相当详细,无非就是如何配置一个terrain.cfg的配置文件进行映射。更详细的介绍可以从官方wiki得到:http://www.ogre3d.org/wiki/index.php/Terrain_Scene_Manager 。用这个场景管理器载入比较小的地形高程图时效果还比较理想,不过载入比较大一点的地形高程图时,速度就明显慢了下来,打开程序时的等待时间变得很长,帧频也变得比较低。
到网上查了一下关于支持大地形的场景管理器的资料,发现OGRE的一个AddOn插件PLSM2(Paging Landscape SceneManager)可以将大的地形高程图分成小的page载入,无奈关于这个场景管理器的用法网上资料并不多,使用起来有些困难。经过一番痛苦的折磨调试,终于还算成功的在OGRE1.6版本下把PLSM2使用了起来,效果还不错,载入速度明显快了很多,只是仍然有些问题,就是在地形漫游时,地形会自己变形,郁闷……这个暂留作TODO吧,估计是有些设置没设置好,或者是这个场景管理器依然不完善。下面把使用PLSM2的过程记录一下备忘。
环境:Windows XP, MS Visual Studio 2005 + SP1。
//--------------------------------------------------------------------------
关于PLSM2的使用的官方wiki:http://www.ogre3d.org/wiki/index.php/Paging_Scene_Manager 。
其中有关于PLSM2的安装、使用、配置文件如何配置的详细说明。但是按照这些官方wiki一步一步进行并不能让Demo程序顺利跑起来,你需要根据报错的提示信息将可执行文件相对于media文件夹的路径。而且这其中比较让人疑惑的是,会有两套media文件夹,一套是