diff --git a/Engine/source/terrain/glsl/terrFeatureGLSL.cpp b/Engine/source/terrain/glsl/terrFeatureGLSL.cpp index 60ee53b60..40e7e740e 100644 --- a/Engine/source/terrain/glsl/terrFeatureGLSL.cpp +++ b/Engine/source/terrain/glsl/terrFeatureGLSL.cpp @@ -1345,6 +1345,16 @@ void TerrainHeightMapBlendGLSL::processPix(Vector& componentLi blendDepth->constSortPos = cspPrimitive; } + Var* blendContrast = (Var*)LangElement::find(String::ToString("blendContrast%d", idx)); + if (!blendContrast) + { + blendContrast = new Var; + blendContrast->setType("float"); + blendContrast->setName(String::ToString("blendContrast%d", idx)); + blendContrast->uniform = true; + blendContrast->constSortPos = cspPrimitive; + } + Var* detailH = (Var*)LangElement::find(String::ToString("detailH%d", idx)); if (!detailH) { @@ -1365,6 +1375,10 @@ void TerrainHeightMapBlendGLSL::processPix(Vector& componentLi meta->addStatement(new GenOp(" @ = clamp(0.5 + @, 0.0, 1.0);\r\n", detailH, blendDepth)); } + + meta->addStatement(new GenOp(" @ = (@ * 2.0f - 1.0f) * @ + 0.5f;\r\n", + detailH, detailH, blendContrast)); + meta->addStatement(new GenOp(" }\r\n")); } } diff --git a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp index bd18f29af..6733d1a50 100644 --- a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp +++ b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp @@ -1456,7 +1456,7 @@ void TerrainHeightMapBlendHLSL::processPix(Vector& componentLi detailH, blendDepth)); } - meta->addStatement(new GenOp(" @ = ((@ - 0.5f) * max(@, 0.0f)) + 0.5f;\r\n", + meta->addStatement(new GenOp(" @ = (@ * 2.0f - 1.0f) * @ + 0.5f;\r\n", detailH, detailH, blendContrast)); meta->addStatement(new GenOp(" }\r\n"));