I need to use .material on Ogre::Terrain to make a fog of war.
My problem is to change .material after terrain loading.
1) First I saw this post on TerrainMaterialGenerator:
http://www.ogre3d.org/tikiwiki/tiki-ind ... +Generator
I don't know how use this sub-classe to apply .material on my Terrain.
I tried like this:
A) I set my defaultMaterialGenerator BEFORE having defined and loaded Terrain:
Code: Select all
Ogre::TerrainGlobalOptions::getSingleton().setDefaultMaterialGenerator(Ogre::TerrainMaterialGeneratorPtr(new TerrainMaterialGenerator))
Code: Select all
Ogre::MaterialPtr mat = Ogre::MaterialManager::getSingleton().getByName("PlainTexture");
Ogre::TerrainGlobalOptions::getSingleton().getDefaultMaterialGenerator()->updateParams(mat, _terrainGroup->getTerrain(0, 0));
Ogre::TerrainGlobalOptions::getSingleton().getDefaultMaterialGenerator()->generate(_terrainGroup->getTerrain(0, 0));
Ogre::TerrainGlobalOptions::getSingleton().getDefaultMaterialGenerator()->_markChanged();
_terrainGroup->getTerrain(0, 0)->update();
2) I saw this post:
http://www.ogre3d.org/forums/viewtopic.php?f=5&t=72455
A) I set my defaultMaterialGenerator BEFORE having defineed and loaded Terrain
Code: Select all
Ogre::TerrainMaterialGeneratorPtr terrainMaterialGenerator;
TerrainMaterial *terrainMaterial = OGRE_NEW TerrainMaterial("TextureModColor", true, false);
terrainMaterialGenerator.bind(terrainMaterial);
_terrainGlobals->setDefaultMaterialGenerator(terrainMaterialGenerator);
B) BUT when i try to change .material AFTER having defined and loaded terrain, like this:
Code: Select all
terrainMaterial->setMaterialByName("TextureModSimple");
Code: Select all
_terrainGroup->getTerrain(0, 0);
My Question:
How can i apply .material on JUST 1 Terrain after having loaded my terrains?
Thank,