mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
Merge pull request #1774 from Azaezel/terrainTrouble
embeds blendtotal into the low bit for the normal|depth buffer
This commit is contained in:
commit
57dfeb829a
|
|
@ -1067,8 +1067,12 @@ void TerrainAdditiveFeatGLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
const MaterialFeatureData &fd )
|
||||
{
|
||||
Var *color = NULL;
|
||||
Var *normal = NULL;
|
||||
if (fd.features[MFT_DeferredTerrainDetailMap])
|
||||
{
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::RenderTarget1) );
|
||||
normal = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
}
|
||||
else
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
|
||||
|
|
@ -1080,6 +1084,8 @@ void TerrainAdditiveFeatGLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
|
||||
meta->addStatement( new GenOp( " clip( @ - 0.0001 );\r\n", blendTotal ) );
|
||||
meta->addStatement( new GenOp( " @.a = @;\r\n", color, blendTotal ) );
|
||||
if (normal)
|
||||
meta->addStatement(new GenOp(" @.a = @;\r\n", normal, blendTotal));
|
||||
|
||||
output = meta;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1165,8 +1165,12 @@ void TerrainAdditiveFeatHLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
const MaterialFeatureData &fd )
|
||||
{
|
||||
Var *color = NULL;
|
||||
Var *normal = NULL;
|
||||
if (fd.features[MFT_DeferredTerrainDetailMap])
|
||||
{
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::RenderTarget1) );
|
||||
normal = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
}
|
||||
else
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
|
||||
|
|
@ -1179,6 +1183,8 @@ void TerrainAdditiveFeatHLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
meta->addStatement( new GenOp( " clip( @ - 0.0001 );\r\n", blendTotal ) );
|
||||
meta->addStatement( new GenOp( " @.a = @;\r\n", color, blendTotal ) );
|
||||
|
||||
if (normal)
|
||||
meta->addStatement(new GenOp(" @.a = @;\r\n", normal, blendTotal));
|
||||
|
||||
output = meta;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -548,8 +548,8 @@ bool TerrainCellMaterial::_createPass( Vector<MaterialInfo*> *materials,
|
|||
// MFT_TerrainAdditive feature to lerp the
|
||||
// output normal with the previous pass.
|
||||
//
|
||||
//if ( prePassMat )
|
||||
//desc.setColorWrites( true, true, false, false );
|
||||
if ( prePassMat )
|
||||
desc.setColorWrites( true, true, true, false );
|
||||
}
|
||||
|
||||
// We write to the zbuffer if this is a prepass
|
||||
|
|
|
|||
Loading…
Reference in a new issue