From ad7b75de0972cdd6461ace983e5df479e4673f33 Mon Sep 17 00:00:00 2001 From: LukasPJ Date: Sat, 8 Nov 2014 04:54:20 +0100 Subject: [PATCH 1/2] Fix for fuzzy borders between textures --- Engine/source/terrain/hlsl/terrFeatureHLSL.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp index e5025cf30..69e5f2d0d 100644 --- a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp +++ b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp @@ -533,8 +533,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" ) ); @@ -803,9 +803,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" ) ); From a3f08df9e3be790a7807132fbb291e8584e883db Mon Sep 17 00:00:00 2001 From: LukasPJ Date: Mon, 12 Jan 2015 17:00:29 +0100 Subject: [PATCH 2/2] Fix for fuzzy borders --- Engine/source/terrain/hlsl/terrFeatureHLSL.cpp | 2 +- Engine/source/terrain/terrRender.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp index 69e5f2d0d..4bb896684 100644 --- a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp +++ b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp @@ -730,7 +730,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 ) ) diff --git a/Engine/source/terrain/terrRender.cpp b/Engine/source/terrain/terrRender.cpp index 4355591a7..db457c373 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;