ogre地形
2012-08-13 17:49
274 查看
1 首先
mTerrainGlobalOptions = new Ogre::TerrainGlobalOptions();
mTerrainGlobalOptions->setMaxPixelError(3);
mTerrainGlobalOptions->setCompositeMapDistance(2000);
mTerrainGlobalOptions->setLightMapDirection(lightdir);
mTerrainGlobalOptions->setCompositeMapAmbient(mSceneMgr->getAmbientLight());
mTerrainGlobalOptions->setCompositeMapDiffuse(l->getDiffuseColour());
2 实例化一个TerrainGroup对象
mTerrainGroup = OGRE_NEW Ogre::TerrainGroup(mSceneMgr, Ogre::Terrain::ALIGN_X_Z, mapSize, worldSize);
mTerrainGroup->setOrigin(Ogre::Vector3::ZERO);
mTerrainGroup->setResourceGroup("General");
////设置地形默认属性
Ogre::Terrain::ImportData& defaultimp = mTerrainGroup->getDefaultImportSettings();
defaultimp.terrainSize = TERRAINWORLDSIZE;
defaultimp.worldSize = TERRAINWORLDSIZE;
defaultimp.inputScale = 1;
defaultimp.minBatchSize = 33;
defaultimp.maxBatchSize = 65;
//设置纹理
defaultimp.layerList.resize(1);
defaultimp.layerList[0].worldSize = BLENDMAPWORLDSIZE;
defaultimp.layerList[0].textureNames.push_back("DefaultTexture.jpg");
defaultimp.layerList[0].textureNames.push_back(DEFAULTNORMALMAP);
3 定义地形块:
//name是后缀为.ogt的文件,或为0,表示平面数据,我觉得这个东西应该是高度数据。
mTerrainGroup->defineTerrain(pageX, pageY, name);
4 地形多层纹理混合:
//获取地形的第1一层纹理:
Ogre::TerrainLayerBlendMap* blendMap = terrain->getLayerBlendMap(l);
float* data = blendMap->getBlendPointer();
for (int h = 0;h<100;h++)
{
for (int 0;w<100;w++)
{
data[dataIndex] = 0.0f; //设置为不可见,
}
}
blendMap->dirty();
blendMap->update();
mTerrainGlobalOptions = new Ogre::TerrainGlobalOptions();
mTerrainGlobalOptions->setMaxPixelError(3);
mTerrainGlobalOptions->setCompositeMapDistance(2000);
mTerrainGlobalOptions->setLightMapDirection(lightdir);
mTerrainGlobalOptions->setCompositeMapAmbient(mSceneMgr->getAmbientLight());
mTerrainGlobalOptions->setCompositeMapDiffuse(l->getDiffuseColour());
2 实例化一个TerrainGroup对象
mTerrainGroup = OGRE_NEW Ogre::TerrainGroup(mSceneMgr, Ogre::Terrain::ALIGN_X_Z, mapSize, worldSize);
mTerrainGroup->setOrigin(Ogre::Vector3::ZERO);
mTerrainGroup->setResourceGroup("General");
////设置地形默认属性
Ogre::Terrain::ImportData& defaultimp = mTerrainGroup->getDefaultImportSettings();
defaultimp.terrainSize = TERRAINWORLDSIZE;
defaultimp.worldSize = TERRAINWORLDSIZE;
defaultimp.inputScale = 1;
defaultimp.minBatchSize = 33;
defaultimp.maxBatchSize = 65;
//设置纹理
defaultimp.layerList.resize(1);
defaultimp.layerList[0].worldSize = BLENDMAPWORLDSIZE;
defaultimp.layerList[0].textureNames.push_back("DefaultTexture.jpg");
defaultimp.layerList[0].textureNames.push_back(DEFAULTNORMALMAP);
3 定义地形块:
//name是后缀为.ogt的文件,或为0,表示平面数据,我觉得这个东西应该是高度数据。
mTerrainGroup->defineTerrain(pageX, pageY, name);
4 地形多层纹理混合:
//获取地形的第1一层纹理:
Ogre::TerrainLayerBlendMap* blendMap = terrain->getLayerBlendMap(l);
float* data = blendMap->getBlendPointer();
for (int h = 0;h<100;h++)
{
for (int 0;w<100;w++)
{
data[dataIndex] = 0.0f; //设置为不可见,
}
}
blendMap->dirty();
blendMap->update();
相关文章推荐
- 菜鸟也学Ogre-地形天空雾
- OGRE之地形跟踪
- [OGRE]基础教程来四发:来谈一谈地形系统
- Axiom3D:Ogre地形组件代码解析
- Ogre终于开始改进其对地形渲染的支持
- OGRE 地形碰撞检测
- 菜鸟也学Ogre-地形天空雾
- Axiom3D:Ogre地形组件代码解析
- [OGRE]基础教程来四发:来谈一谈地形系统
- OGRE地形初步
- OGRE根据高度图创建Terrain地形流程分析
- 修改ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)
- Ogre的分页大地形场景管理器PLSM2使用手记
- 整合OGRE和bullet的地形
- OGRE地形配置文件terrain.cfg简析
- Ogre的渲染优化心得(二) -- Renderable和渲染批次, MovableObject和摄像机裁剪, SimpleRenderable和地形
- Ogre 天龙八部地形 Heightmap(高度图)+GridInfo(地表信息)初步结果
- Ogre 地形管理
- Ogre1.8 地形天空盒生成
- ogre代码学习——地形 手工和cfg创建