mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 16:44:36 +00:00
preliminary glowmap+glowmul feature augmentation math
This commit is contained in:
parent
f284524dd0
commit
070a9845a2
6 changed files with 22 additions and 2 deletions
|
|
@ -103,6 +103,21 @@ void PBRConfigMapHLSL::processPix( Vector<ShaderComponent*> &componentList, cons
|
||||||
}
|
}
|
||||||
meta->addStatement(new GenOp(" @ = @.g;\r\n", new DecOp(ao), pbrConfig));
|
meta->addStatement(new GenOp(" @ = @.g;\r\n", new DecOp(ao), pbrConfig));
|
||||||
meta->addStatement(new GenOp(" @ = @.a;\r\n", new DecOp(metalness), pbrConfig));
|
meta->addStatement(new GenOp(" @ = @.a;\r\n", new DecOp(metalness), pbrConfig));
|
||||||
|
|
||||||
|
if (fd.features[MFT_GlowMap])
|
||||||
|
{
|
||||||
|
Var* glowMul = new Var("glowMul", "float");
|
||||||
|
glowMul->uniform = true;
|
||||||
|
glowMul->constSortPos = cspPotentialPrimitive;
|
||||||
|
|
||||||
|
ShaderFeature::OutputTarget targ = ShaderFeature::DefaultTarget;
|
||||||
|
if (fd.features[MFT_isDeferred])
|
||||||
|
targ = ShaderFeature::RenderTarget1;
|
||||||
|
|
||||||
|
Var* diffuseColor = (Var*)LangElement::find(getOutputTargetVarName(targ));
|
||||||
|
if (diffuseColor)
|
||||||
|
meta->addStatement(new GenOp(" @.rgb += @.rgb*float3(@,@,@)*@.aaa;\r\n", diffuseColor, diffuseColor, glowMul, glowMul, glowMul, texOp));
|
||||||
|
}
|
||||||
output = meta;
|
output = meta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ Material::Material()
|
||||||
mSmoothnessChan[i] = 0;
|
mSmoothnessChan[i] = 0;
|
||||||
mAOChan[i] = 1;
|
mAOChan[i] = 1;
|
||||||
mMetalChan[i] = 2;
|
mMetalChan[i] = 2;
|
||||||
|
mGlowChan[i] = 3;
|
||||||
mAccuEnabled[i] = false;
|
mAccuEnabled[i] = false;
|
||||||
mAccuScale[i] = 1.0f;
|
mAccuScale[i] = 1.0f;
|
||||||
mAccuDirection[i] = 1.0f;
|
mAccuDirection[i] = 1.0f;
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,7 @@ void ShaderConstHandles::init( GFXShader *shader, Vector<CustomShaderFeatureData
|
||||||
mPBRConfigSC = shader->getShaderConstHandle(ShaderGenVars::pbrConfig);
|
mPBRConfigSC = shader->getShaderConstHandle(ShaderGenVars::pbrConfig);
|
||||||
mSmoothnessSC = shader->getShaderConstHandle(ShaderGenVars::smoothness);
|
mSmoothnessSC = shader->getShaderConstHandle(ShaderGenVars::smoothness);
|
||||||
mMetalnessSC = shader->getShaderConstHandle(ShaderGenVars::metalness);
|
mMetalnessSC = shader->getShaderConstHandle(ShaderGenVars::metalness);
|
||||||
|
mGlowMulSC = shader->getShaderConstHandle(ShaderGenVars::glowMul);
|
||||||
mAccuScaleSC = shader->getShaderConstHandle("$accuScale");
|
mAccuScaleSC = shader->getShaderConstHandle("$accuScale");
|
||||||
mAccuDirectionSC = shader->getShaderConstHandle("$accuDirection");
|
mAccuDirectionSC = shader->getShaderConstHandle("$accuDirection");
|
||||||
mAccuStrengthSC = shader->getShaderConstHandle("$accuStrength");
|
mAccuStrengthSC = shader->getShaderConstHandle("$accuStrength");
|
||||||
|
|
@ -1111,6 +1112,7 @@ void ProcessedShaderMaterial::_setShaderConstants(SceneRenderState * state, cons
|
||||||
|
|
||||||
shaderConsts->setSafe(handles->mSmoothnessSC, mMaterial->mSmoothness[stageNum]);
|
shaderConsts->setSafe(handles->mSmoothnessSC, mMaterial->mSmoothness[stageNum]);
|
||||||
shaderConsts->setSafe(handles->mMetalnessSC, mMaterial->mMetalness[stageNum]);
|
shaderConsts->setSafe(handles->mMetalnessSC, mMaterial->mMetalness[stageNum]);
|
||||||
|
shaderConsts->setSafe(handles->mGlowMulSC, mMaterial->mGlowMul[stageNum]);
|
||||||
|
|
||||||
shaderConsts->setSafe(handles->mParallaxInfoSC, mMaterial->mParallaxScale[stageNum]);
|
shaderConsts->setSafe(handles->mParallaxInfoSC, mMaterial->mParallaxScale[stageNum]);
|
||||||
shaderConsts->setSafe(handles->mMinnaertConstantSC, mMaterial->mMinnaertConstant[stageNum]);
|
shaderConsts->setSafe(handles->mMinnaertConstantSC, mMaterial->mMinnaertConstant[stageNum]);
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ public:
|
||||||
GFXShaderConstHandle* mPBRConfigSC;
|
GFXShaderConstHandle* mPBRConfigSC;
|
||||||
GFXShaderConstHandle* mSmoothnessSC;
|
GFXShaderConstHandle* mSmoothnessSC;
|
||||||
GFXShaderConstHandle* mMetalnessSC;
|
GFXShaderConstHandle* mMetalnessSC;
|
||||||
|
GFXShaderConstHandle* mGlowMulSC;
|
||||||
GFXShaderConstHandle* mParallaxInfoSC;
|
GFXShaderConstHandle* mParallaxInfoSC;
|
||||||
GFXShaderConstHandle* mAccuScaleSC;
|
GFXShaderConstHandle* mAccuScaleSC;
|
||||||
GFXShaderConstHandle* mAccuDirectionSC;
|
GFXShaderConstHandle* mAccuDirectionSC;
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ const String ShaderGenVars::vectorLightBrightness("$vectorLightBrightness");
|
||||||
const String ShaderGenVars::pbrConfig("$PBRConfig");
|
const String ShaderGenVars::pbrConfig("$PBRConfig");
|
||||||
const String ShaderGenVars::smoothness("$smoothness");
|
const String ShaderGenVars::smoothness("$smoothness");
|
||||||
const String ShaderGenVars::metalness("$metalness");
|
const String ShaderGenVars::metalness("$metalness");
|
||||||
|
const String ShaderGenVars::glowMul("$glowMul");
|
||||||
|
|
||||||
//Reflection Probes
|
//Reflection Probes
|
||||||
const String ShaderGenVars::probePosition("$inProbePosArray");
|
const String ShaderGenVars::probePosition("$inProbePosArray");
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@ struct ShaderGenVars
|
||||||
const static String pbrConfig;
|
const static String pbrConfig;
|
||||||
const static String smoothness;
|
const static String smoothness;
|
||||||
const static String metalness;
|
const static String metalness;
|
||||||
|
const static String glowMul;
|
||||||
|
|
||||||
//Reflection Probes
|
//Reflection Probes
|
||||||
const static String probePosition;
|
const static String probePosition;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue