diff --git a/Engine/source/lighting/advanced/advancedLightManager.h b/Engine/source/lighting/advanced/advancedLightManager.h index ca747d8a0..ae3945876 100644 --- a/Engine/source/lighting/advanced/advancedLightManager.h +++ b/Engine/source/lighting/advanced/advancedLightManager.h @@ -71,6 +71,7 @@ public: /// Return the lightBinManager for this light manager. AdvancedLightBinManager* getLightBinManager() { return mLightBinManager; } + RenderDeferredMgr* getDeferredRenderBin() { return mDeferredRenderBin; } // LightManager virtual bool isCompatible() const; diff --git a/Engine/source/materials/materialList.cpp b/Engine/source/materials/materialList.cpp index 4ddb75bbb..8a75cbcad 100644 --- a/Engine/source/materials/materialList.cpp +++ b/Engine/source/materials/materialList.cpp @@ -35,6 +35,11 @@ #include "core/volume.h" #include "console/simSet.h" +#include "scene/reflectionManager.h" +#include "renderInstance/renderDeferredMgr.h" +#include "lighting/advanced/advancedLightManager.h" +#include "lighting/advanced/advancedLightBinManager.h" + MaterialList::MaterialList() { @@ -412,6 +417,15 @@ void MaterialList::initMatInstances( const FeatureSet &features, matInst->init( MATMGR->getDefaultFeatures(), vertexFormat ); mMatInstList[ i ] = matInst; } + else + { + REFLECTMGR->getReflectionMaterial(matInst); + + // Hunt for the pre-pass manager/target + + AdvancedLightManager* lightMgr = static_cast(LIGHTMGR); + lightMgr->getDeferredRenderBin()->getDeferredMaterial(matInst); + } } }