mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-25 15:19:30 +00:00
adds wetness
cliffsnotes: $Core::WetnessTexture = "core/rendering/images/wetMap.png"; //for the influence degree map probes/skylight have a new canDamp boolean, set to off for probes, on for skylight by default. :levelinfo has a dampness multiplier (0-1) kicked up numTextures from 8 to 16 for shaderdata and postfx since that hit the 8 texture-in prior limit, and we've already adopted apis that can handle the higher count
This commit is contained in:
parent
e16351605b
commit
d23ee397e6
31 changed files with 352 additions and 100 deletions
|
|
@ -58,7 +58,8 @@ MaterialManager::MaterialManager()
|
|||
|
||||
mDt = 0.0f;
|
||||
mAccumTime = 0.0f;
|
||||
mLastTime = 0;
|
||||
mLastTime = 0;
|
||||
mDampness = 0.0f;
|
||||
mWarningInst = NULL;
|
||||
|
||||
GFXDevice::getDeviceEventSignal().notify( this, &MaterialManager::_handleGFXEvent );
|
||||
|
|
|
|||
|
|
@ -105,7 +105,10 @@ public:
|
|||
F32 getTotalTime() const { return mAccumTime; }
|
||||
F32 getDeltaTime() const { return mDt; }
|
||||
U32 getLastUpdateTime() const { return mLastTime; }
|
||||
|
||||
|
||||
F32 getDampness() const { return mDampness; }
|
||||
F32 getDampnessClamped() const { return mClampF(mDampness, 0.0, 1.0); }
|
||||
void setDampness(F32 dampness) { mDampness = dampness; }
|
||||
/// Signal used to notify systems that
|
||||
/// procedural shaders have been flushed.
|
||||
typedef Signal<void()> FlushSignal;
|
||||
|
|
@ -163,6 +166,7 @@ protected:
|
|||
F32 mDt;
|
||||
F32 mAccumTime;
|
||||
U32 mLastTime;
|
||||
F32 mDampness;
|
||||
|
||||
BaseMatInstance* mWarningInst;
|
||||
|
||||
|
|
|
|||
|
|
@ -319,8 +319,9 @@ bool ProcessedCustomMaterial::setupPass( SceneRenderState *state, const SceneDat
|
|||
if (pm)
|
||||
pm->setProbeInfo(this, NULL, sgData, state, pass, shaderConsts);
|
||||
|
||||
shaderConsts->setSafe(rpd->shaderHandles.mAccumTimeSC, MATMGR->getTotalTime());
|
||||
|
||||
shaderConsts->setSafe(rpd->shaderHandles.mAccumTimeSC, MATMGR->getTotalTime());
|
||||
shaderConsts->setSafe(rpd->shaderHandles.mDampnessSC, MATMGR->getDampnessClamped());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ void ShaderConstHandles::init( GFXShader *shader, CustomMaterial* mat /*=NULL*/)
|
|||
mEyeMatSC = shader->getShaderConstHandle(ShaderGenVars::eyeMat);
|
||||
mOneOverFarplane = shader->getShaderConstHandle(ShaderGenVars::oneOverFarplane);
|
||||
mAccumTimeSC = shader->getShaderConstHandle(ShaderGenVars::accumTime);
|
||||
mDampnessSC = shader->getShaderConstHandle(ShaderGenVars::dampness);
|
||||
mMinnaertConstantSC = shader->getShaderConstHandle(ShaderGenVars::minnaertConstant);
|
||||
mSubSurfaceParamsSC = shader->getShaderConstHandle(ShaderGenVars::subSurfaceParams);
|
||||
mDiffuseAtlasParamsSC = shader->getShaderConstHandle(ShaderGenVars::diffuseAtlasParams);
|
||||
|
|
@ -1097,6 +1098,7 @@ void ProcessedShaderMaterial::_setShaderConstants(SceneRenderState * state, cons
|
|||
|
||||
shaderConsts->setSafe( handles->mAccumTimeSC, MATMGR->getTotalTime() );
|
||||
|
||||
shaderConsts->setSafe(handles->mDampnessSC, MATMGR->getDampnessClamped());
|
||||
// If the shader constants have not been lost then
|
||||
// they contain the content from a previous render pass.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ public:
|
|||
GFXShaderConstHandle* mEyeMatSC;
|
||||
GFXShaderConstHandle* mOneOverFarplane;
|
||||
GFXShaderConstHandle* mAccumTimeSC;
|
||||
GFXShaderConstHandle* mDampnessSC;
|
||||
GFXShaderConstHandle* mMinnaertConstantSC;
|
||||
GFXShaderConstHandle* mSubSurfaceParamsSC;
|
||||
GFXShaderConstHandle* mDiffuseAtlasParamsSC;
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ protected:
|
|||
|
||||
enum
|
||||
{
|
||||
NumTextures = 8
|
||||
NumTextures = 16
|
||||
};
|
||||
|
||||
String mSamplerNames[NumTextures];
|
||||
|
|
@ -134,4 +134,4 @@ public:
|
|||
DECLARE_CONOBJECT(ShaderData);
|
||||
};
|
||||
|
||||
#endif // _SHADERTDATA_H_
|
||||
#endif // _SHADERTDATA_H_
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue