OGRE地形配置文件terrain.cfg简析

    技术2022-05-20  66

    看到教程中生成地形只需家在terrain.cfg这个文件,然后就打开这个文件看看,对如何生成地形很好奇,在网上搜索了一下,找到下面的内容还不错,对这个文件有一个简要介绍:

    OGRE通过配置文件生成地形,极大提高了地形生成的灵活性。下面对地形配置文件(terrain.cfg)各配置项的意义进行简要分析。

    WorldTexture=terrain_texture.jpg  //地形纹理DetailTexture=terrain_detail.jpg  //地形细节纹理(相机距离地面很近时采用细节纹理)DetailTile=3                      //细节纹理在一个地形小块中的平铺数PageSource=Heightmap              //高度图数据源Heightmap.image=terrain.png       //高度图名称(灰度图文件名),符合2^n+1PageSize=513                      //高度图大小TileSize=65                       //地形小块大小MaxPixelError=3                   //决定使用层次细节时充许误差PageWorldX=1500                   //地形在世界中的范围x方向PageWorldZ=1500                   //z方向MaxHeight=100                     //世界中地形最大映射高度MaxMipMapLevel=5                  //层次细节上限#VertexNormals=yes                //在缓冲中计算顶点法线,计算机光照或GPU程序用到时打开#VertexColors=yes         //在缓冲中设置顶点颜色,假如有GPU程序需要时打开#UseTriStrips=yes                 //对于现在的硬件,建议关掉VertexProgramMorph=yes         //使用顶点程序进行LOD融合处理LODMorphStart=0.2                 //LOD融合开始点:高,低LOD之间距离之比

    下列参数用于提供自己的着色程序时使用,这会提供自己定义的material,那么先前定义的WorldTexture DetailTexture的设置不再用到。

    MorphLODFactorParamName=morphFactor //假设VertexProgramMorph被设为yes,定制的material中包括一个高级顶点程序。它指定了一个顶点//程序的参数名,这个参数用于融合LOD,参数值从010表示不调整,1表示完全调整到下一级LODMorphLODFactorParamIndex         //用于materail中包含低级顶点程序的情况,意义同上CustomMaterialName               //指定的materail名字

    上述配置文件定义了基于高度图的地形。

    这些参数定义可概括为两类:Ogre使用第一类从高度图产生地形mesh与材质。

    第二类是定制材质与GPU顶点程序,这可以代替ogre自动产生的着色程序。另外的说明:TerrainScenceManager会把高度图分为多个page,每个page由几个tile组成.它们都定义了在产生的mesh中一组构成正方形的顶点集。WorldTexture定义的纹理不必与目标地形一样大。PageWorldXPageWorldZ可以缩放世界中的地形。MaxHeight Y方向缩放地形。DetailTexture 只使用一个纹理,如使用多层纹理,应该使用自定义materail从程序加载地形setWorldGeometry()有重载形式,一种用于加载配置文件,另一种我们可在程序中使用,以达到手工加载的功能。这里,SceneData typedef std:map,它存储了如我们在terrain.cfg中看到那些值对。假设我们已经从某个二进制文件读入我们想要的内容到SceneData中。我们要做的就是把读入的内容转换成setWorldGeometry()需要的类型。


    最新回复(0)