forked from teamnwah/openmw-tes3coop
fixed the sky elements positioning delay (nodes are now children of the camera node)
This commit is contained in:
parent
2d8b0a4ac0
commit
10ca67c0a5
3 changed files with 9 additions and 16 deletions
|
@ -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<MWWorld::RefData> &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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -99,7 +99,6 @@ namespace MWRender
|
|||
Moon* mMasser;
|
||||
Moon* mSecunda;
|
||||
|
||||
Ogre::Camera* mCamera;
|
||||
Ogre::Viewport* mViewport;
|
||||
Ogre::SceneNode* mRootNode;
|
||||
Ogre::SceneManager* mSceneMgr;
|
||||
|
|
Loading…
Reference in a new issue