forked from mirror/openmw-tes3mp
Make projectiles receive lighting
This commit is contained in:
parent
258f7a2b42
commit
67a6a8f5d4
4 changed files with 11 additions and 1 deletions
|
@ -227,6 +227,11 @@ namespace MWRender
|
||||||
return mResourceSystem;
|
return mResourceSystem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
osg::Group* RenderingManager::getLightRoot()
|
||||||
|
{
|
||||||
|
return mLightRoot.get();
|
||||||
|
}
|
||||||
|
|
||||||
void RenderingManager::setNightEyeFactor(float factor)
|
void RenderingManager::setNightEyeFactor(float factor)
|
||||||
{
|
{
|
||||||
if (factor != mNightEyeFactor)
|
if (factor != mNightEyeFactor)
|
||||||
|
|
|
@ -65,6 +65,8 @@ namespace MWRender
|
||||||
|
|
||||||
Resource::ResourceSystem* getResourceSystem();
|
Resource::ResourceSystem* getResourceSystem();
|
||||||
|
|
||||||
|
osg::Group* getLightRoot();
|
||||||
|
|
||||||
void setNightEyeFactor(float factor);
|
void setNightEyeFactor(float factor);
|
||||||
|
|
||||||
void setAmbientColour(const osg::Vec4f& colour);
|
void setAmbientColour(const osg::Vec4f& colour);
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <components/resource/scenemanager.hpp>
|
#include <components/resource/scenemanager.hpp>
|
||||||
#include <components/sceneutil/controller.hpp>
|
#include <components/sceneutil/controller.hpp>
|
||||||
#include <components/sceneutil/visitor.hpp>
|
#include <components/sceneutil/visitor.hpp>
|
||||||
|
#include <components/sceneutil/lightmanager.hpp>
|
||||||
|
|
||||||
#include "../mwworld/manualref.hpp"
|
#include "../mwworld/manualref.hpp"
|
||||||
#include "../mwworld/class.hpp"
|
#include "../mwworld/class.hpp"
|
||||||
|
@ -96,6 +97,8 @@ namespace MWWorld
|
||||||
SceneUtil::DisableFreezeOnCullVisitor disableFreezeOnCullVisitor;
|
SceneUtil::DisableFreezeOnCullVisitor disableFreezeOnCullVisitor;
|
||||||
state.mNode->accept(disableFreezeOnCullVisitor);
|
state.mNode->accept(disableFreezeOnCullVisitor);
|
||||||
|
|
||||||
|
state.mNode->addCullCallback(new SceneUtil::LightListCallback);
|
||||||
|
|
||||||
mParent->addChild(state.mNode);
|
mParent->addChild(state.mNode);
|
||||||
|
|
||||||
state.mEffectAnimationTime.reset(new MWRender::EffectAnimationTime);
|
state.mEffectAnimationTime.reset(new MWRender::EffectAnimationTime);
|
||||||
|
|
|
@ -164,7 +164,7 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
mPhysics = new MWPhysics::PhysicsSystem(resourceSystem, rootNode);
|
mPhysics = new MWPhysics::PhysicsSystem(resourceSystem, rootNode);
|
||||||
mRendering = new MWRender::RenderingManager(viewer, rootNode, resourceSystem, &mFallback, resourcePath);
|
mRendering = new MWRender::RenderingManager(viewer, rootNode, resourceSystem, &mFallback, resourcePath);
|
||||||
mProjectileManager.reset(new ProjectileManager(rootNode, resourceSystem, mRendering, mPhysics));
|
mProjectileManager.reset(new ProjectileManager(mRendering->getLightRoot(), resourceSystem, mRendering, mPhysics));
|
||||||
|
|
||||||
mEsm.resize(contentFiles.size());
|
mEsm.resize(contentFiles.size());
|
||||||
Loading::Listener* listener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
|
Loading::Listener* listener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
|
||||||
|
|
Loading…
Reference in a new issue