diff --git a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp index 94c7e4943..6292bd32a 100644 --- a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp +++ b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp @@ -545,8 +545,8 @@ void TerrainDetailMapFeatHLSL::processPix( Vector &component Var *baseColor = (Var*)LangElement::find( "baseColor" ); Var *outColor = (Var*)LangElement::find( "col" ); - meta->addStatement( new GenOp( " @ = lerp( @, @ + @, @ );\r\n", - outColor, outColor, baseColor, detailColor, detailBlend ) ); + meta->addStatement( new GenOp( " @ += @ * @;\r\n", + outColor, detailColor, detailBlend)); meta->addStatement( new GenOp( " }\r\n" ) ); @@ -742,7 +742,7 @@ void TerrainMacroMapFeatHLSL::processPix( Vector &componentL } // Add to the blend total. - meta->addStatement( new GenOp( " @ = max( @, @ );\r\n", blendTotal, blendTotal, detailBlend ) ); + meta->addStatement( new GenOp( " @ += @;\r\n", blendTotal, detailBlend ) ); // If this is a prepass then we skip color. if ( fd.features.hasFeature( MFT_PrePassConditioner ) ) @@ -815,9 +815,8 @@ void TerrainMacroMapFeatHLSL::processPix( Vector &componentL //Var *baseColor = (Var*)LangElement::find( "baseColor" ); Var *outColor = (Var*)LangElement::find( "col" ); - meta->addStatement( new GenOp( " @ = lerp( @, @ + @, @ );\r\n", - outColor, outColor, outColor, detailColor, detailBlend ) ); - //outColor, outColor, baseColor, detailColor, detailBlend ) ); + meta->addStatement(new GenOp(" @ += @ * @;\r\n", + outColor, detailColor, detailBlend)); meta->addStatement( new GenOp( " }\r\n" ) ); diff --git a/Engine/source/terrain/terrRender.cpp b/Engine/source/terrain/terrRender.cpp index c9e5070d1..d111bd7d7 100644 --- a/Engine/source/terrain/terrRender.cpp +++ b/Engine/source/terrain/terrRender.cpp @@ -170,7 +170,7 @@ bool TerrainBlock::_initBaseShader() desc.zDefined = true; desc.zWriteEnable = false; desc.zEnable = false; - desc.setBlend( true, GFXBlendSrcAlpha, GFXBlendOne ); + desc.setBlend( true, GFXBlendSrcAlpha, GFXBlendInvSrcAlpha ); desc.cullDefined = true; desc.cullMode = GFXCullNone; desc.colorWriteAlpha = false;