diff --git a/apps/openmw/mwrender/renderingmanager.cpp b/apps/openmw/mwrender/renderingmanager.cpp index f9f1657ea4..1d136b703a 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -40,10 +40,7 @@ RenderingManager::RenderingManager (OEngine::Render::OgreRenderer& _rend, const mMwRoot->pitch(Degree(-90)); mObjects.setMwRoot(mMwRoot); mActors.setMwRoot(mMwRoot); - - //mSkyManager = 0; - mSkyManager = new SkyManager(mMwRoot, mRendering.getCamera()); - + //used to obtain ingame information of ogre objects (which are faced or selected) mRaySceneQuery = mRendering.getScene()->createRayQuery(Ray()); @@ -52,6 +49,9 @@ RenderingManager::RenderingManager (OEngine::Render::OgreRenderer& _rend, const Ogre::SceneNode *cameraYawNode = playerNode->createChildSceneNode(); Ogre::SceneNode *cameraPitchNode = cameraYawNode->createChildSceneNode(); cameraPitchNode->attachObject(mRendering.getCamera()); + + //mSkyManager = 0; + mSkyManager = new SkyManager(mMwRoot, mRendering.getCamera()); mPlayer = new MWRender::Player (mRendering.getCamera(), playerNode); mSun = 0; @@ -200,7 +200,7 @@ void RenderingManager::configureFog(ESMS::CellStore &mCell) Ogre::ColourValue color; color.setAsABGR (mCell.cell->ambi.fog); - float high = 4500 + 9000 * (1-mCell.cell->ambi.fogDensity); + float high = /*4500 + 9000 * */(1-mCell.cell->ambi.fogDensity); float low = 200; mRendering.getScene()->setFog (FOG_LINEAR, color, 0, low, high); diff --git a/apps/openmw/mwrender/sky.cpp b/apps/openmw/mwrender/sky.cpp index edc9770465..3e750a94fa 100644 --- a/apps/openmw/mwrender/sky.cpp +++ b/apps/openmw/mwrender/sky.cpp @@ -211,8 +211,9 @@ SkyManager::SkyManager (SceneNode* pMwRoot, Camera* pCamera) { mViewport = pCamera->getViewport(); mSceneMgr = pMwRoot->getCreator(); - mRootNode = pMwRoot->createChildSceneNode(); - mRootNode->setScale(100.f, 100.f, 100.f); + mRootNode = pCamera->getParentSceneNode()->createChildSceneNode(); + mRootNode->pitch(Degree(-90)); // convert MW to ogre coordinates + mRootNode->setInheritOrientation(false); mViewport->setBackgroundColour(ColourValue(0.87, 0.87, 0.87)); @@ -345,9 +346,6 @@ SkyManager::SkyManager (SceneNode* pMwRoot, Camera* pCamera) mAtmosphereMaterial->getTechnique(0)->getPass(0)->setDepthWriteEnabled(false); mAtmosphereMaterial->getTechnique(0)->getPass(0)->setSceneBlending(SBT_TRANSPARENT_ALPHA); mCloudMaterial->getTechnique(0)->getPass(0)->setSceneBlending(SBT_TRANSPARENT_ALPHA); - - mCamera = pCamera; - mCamera->setFarClipDistance(500000.f); } SkyManager::~SkyManager() @@ -358,11 +356,7 @@ SkyManager::~SkyManager() } void SkyManager::update(float duration) -{ - // Sync the position of the skydomes with the camera - /// \todo for some reason this is 1 frame delayed, which causes the skydome move funnily when the camera moves - mRootNode->_setDerivedPosition(mCamera->getParentSceneNode()->_getDerivedPosition()); - +{ // UV Scroll the clouds mCloudMaterial->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->setNamedConstantFromTime("time", 1); } diff --git a/apps/openmw/mwrender/sky.hpp b/apps/openmw/mwrender/sky.hpp index 447ab62e48..256d0b4235 100644 --- a/apps/openmw/mwrender/sky.hpp +++ b/apps/openmw/mwrender/sky.hpp @@ -99,7 +99,6 @@ namespace MWRender Moon* mMasser; Moon* mSecunda; - Ogre::Camera* mCamera; Ogre::Viewport* mViewport; Ogre::SceneNode* mRootNode; Ogre::SceneManager* mSceneMgr;