improved composite map, now adapts to the ambient/diffuse light

This commit is contained in:
scrawl 2012-02-28 22:04:44 +01:00
parent f2c3616638
commit be5555956c
3 changed files with 22 additions and 3 deletions

View file

@ -232,17 +232,17 @@ void RenderingManager::setAmbientMode()
{ {
case 0: case 0:
mRendering.getScene()->setAmbientLight(mAmbientColor); setAmbientColour(mAmbientColor);
break; break;
case 1: case 1:
mRendering.getScene()->setAmbientLight(0.7f*mAmbientColor + 0.3f*ColourValue(1,1,1)); setAmbientColour(0.7f*mAmbientColor + 0.3f*ColourValue(1,1,1));
break; break;
case 2: case 2:
mRendering.getScene()->setAmbientLight(ColourValue(1,1,1)); setAmbientColour(ColourValue(1,1,1));
break; break;
} }
} }
@ -297,11 +297,13 @@ void RenderingManager::skipAnimation (const MWWorld::Ptr& ptr)
void RenderingManager::setSunColour(const Ogre::ColourValue& colour) void RenderingManager::setSunColour(const Ogre::ColourValue& colour)
{ {
mSun->setDiffuseColour(colour); mSun->setDiffuseColour(colour);
mTerrainManager->setDiffuse(colour);
} }
void RenderingManager::setAmbientColour(const Ogre::ColourValue& colour) void RenderingManager::setAmbientColour(const Ogre::ColourValue& colour)
{ {
mRendering.getScene()->setAmbientLight(colour); mRendering.getScene()->setAmbientLight(colour);
mTerrainManager->setAmbient(colour);
} }
void RenderingManager::sunEnable() void RenderingManager::sunEnable()

View file

@ -73,6 +73,20 @@ namespace MWRender
OGRE_DELETE mTerrainGroup; OGRE_DELETE mTerrainGroup;
OGRE_DELETE mTerrainGlobals; OGRE_DELETE mTerrainGlobals;
} }
//----------------------------------------------------------------------------------------------
void TerrainManager::setDiffuse(const Ogre::ColourValue& diffuse)
{
mTerrainGlobals->setCompositeMapDiffuse(diffuse);
}
//----------------------------------------------------------------------------------------------
void TerrainManager::setAmbient(const Ogre::ColourValue& ambient)
{
mTerrainGlobals->setCompositeMapAmbient(ambient);
}
//---------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------

View file

@ -31,6 +31,9 @@ namespace MWRender{
TerrainManager(Ogre::SceneManager*); TerrainManager(Ogre::SceneManager*);
virtual ~TerrainManager(); virtual ~TerrainManager();
void setDiffuse(const Ogre::ColourValue& diffuse);
void setAmbient(const Ogre::ColourValue& ambient);
void cellAdded(MWWorld::Ptr::CellStore* store); void cellAdded(MWWorld::Ptr::CellStore* store);
void cellRemoved(MWWorld::Ptr::CellStore* store); void cellRemoved(MWWorld::Ptr::CellStore* store);
private: private: