work towards getting the materiallist generated by things like preload to spit out most if not all to-be-used variants for a given used material. ostensibly add reflection and deferred variants. will take a bit more doing to cook up mats for all the shadow variants, since it looks like that ends is more light-type based for some oddball reason (think i'm probably be misreading that end, since mats there should really just be as simnple as an occludes-or-doesn't based on alphatesting case with very few variations on that theme indeed...)

This commit is contained in:
AzaezelX 2019-12-20 23:27:44 -06:00
parent f007700646
commit 9ae1af645c
2 changed files with 15 additions and 0 deletions

View file

@ -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;

View file

@ -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<AdvancedLightManager*>(LIGHTMGR);
lightMgr->getDeferredRenderBin()->getDeferredMaterial(matInst);
}
}
}