Procházet zdrojové kódy

should only need to set the brdf texture the once

Azaezel před 6 roky
rodič
revize
7a8dd96808

+ 4 - 0
Engine/source/renderInstance/renderProbeMgr.cpp

@@ -35,6 +35,7 @@
 #include "shaderGen/shaderGenVars.h"
 #include "shaderGen/shaderGenVars.h"
 #include "materials/shaderData.h"
 #include "materials/shaderData.h"
 
 
+#include "gfx/gfxTextureManager.h"
 IMPLEMENT_CONOBJECT(RenderProbeMgr);
 IMPLEMENT_CONOBJECT(RenderProbeMgr);
 
 
 ConsoleDocClass( RenderProbeMgr, 
 ConsoleDocClass( RenderProbeMgr, 
@@ -243,6 +244,8 @@ RenderProbeMgr::RenderProbeMgr()
    mLastShader(nullptr),
    mLastShader(nullptr),
    mLastConstants(nullptr)
    mLastConstants(nullptr)
 {
 {
+   String brdfPath = Con::getVariable("$Core::BRDFTexture", "core/art/pbr/brdfTexture.dds");
+   mBrdfTexture = TEXMGR->createTexture(brdfPath, &GFXTexturePersistentProfile);
 }
 }
 
 
 RenderProbeMgr::RenderProbeMgr(RenderInstType riType, F32 renderOrder, F32 processAddOrder)
 RenderProbeMgr::RenderProbeMgr(RenderInstType riType, F32 renderOrder, F32 processAddOrder)
@@ -786,6 +789,7 @@ void RenderProbeMgr::render( SceneRenderState *state )
 
 
             GFX->setCubeArrayTexture(3, mCubemapArray);
             GFX->setCubeArrayTexture(3, mCubemapArray);
             GFX->setCubeArrayTexture(4, mIrradArray);
             GFX->setCubeArrayTexture(4, mIrradArray);
+            GFX->setTexture(5, mBrdfTexture);
 
 
             matParams->set(probePositionSC, probePositions);
             matParams->set(probePositionSC, probePositions);
             matParams->set(probeWorldToObjSC, probeWorldToObj.address(), probeWorldToObj.size());
             matParams->set(probeWorldToObjSC, probeWorldToObj.address(), probeWorldToObj.size());

+ 1 - 0
Engine/source/renderInstance/renderProbeMgr.h

@@ -280,6 +280,7 @@ protected:
       GFXShaderConstHandle *probeLocalPosSC,
       GFXShaderConstHandle *probeLocalPosSC,
       GFXShaderConstBuffer *shaderConsts);
       GFXShaderConstBuffer *shaderConsts);
 
 
+      GFXTextureObject * mBrdfTexture;
 public:
 public:
    RenderProbeMgr();
    RenderProbeMgr();
    RenderProbeMgr(RenderInstType riType, F32 renderOrder, F32 processAddOrder);
    RenderProbeMgr(RenderInstType riType, F32 renderOrder, F32 processAddOrder);