diff --git a/Engine/source/terrain/glsl/terrFeatureGLSL.cpp b/Engine/source/terrain/glsl/terrFeatureGLSL.cpp index 6f9edbe6d..f1d411ab0 100644 --- a/Engine/source/terrain/glsl/terrFeatureGLSL.cpp +++ b/Engine/source/terrain/glsl/terrFeatureGLSL.cpp @@ -615,9 +615,14 @@ void TerrainDetailMapFeatGLSL::processPix( Vector &component meta->addStatement( new GenOp( " @ *= @.y * @.w;\r\n", detailColor, detailInfo, inDet ) ); - meta->addStatement( new GenOp( " @ += @ * @;\r\n", + + meta->addStatement(new GenOp(" @.rgb = toGamma(@.rgb);\r\n", outColor, outColor)); + + meta->addStatement(new GenOp(" @ += @ * @;\r\n", outColor, detailColor, detailBlend)); + meta->addStatement(new GenOp(" @.rgb = toLinear(clamp(@.rgb, 0, 1));\r\n", outColor, outColor)); + meta->addStatement( new GenOp( " }\r\n" ) ); output = meta; @@ -867,9 +872,13 @@ void TerrainMacroMapFeatGLSL::processPix( Vector &componentL Var *outColor = (Var*)LangElement::find( getOutputTargetVarName(target) ); + meta->addStatement(new GenOp(" @.rgb = toGamma(@.rgb);\r\n", outColor, outColor)); + meta->addStatement(new GenOp(" @ += @ * @;\r\n", outColor, detailColor, detailBlend)); + meta->addStatement(new GenOp(" @.rgb = toLinear(clamp(@.rgb, 0, 1));\r\n", outColor, outColor)); + meta->addStatement( new GenOp( " }\r\n" ) ); output = meta; diff --git a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp index 094613785..26d5b793c 100644 --- a/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp +++ b/Engine/source/terrain/hlsl/terrFeatureHLSL.cpp @@ -582,9 +582,13 @@ void TerrainDetailMapFeatHLSL::processPix( Vector &component Var *outColor = (Var*)LangElement::find( getOutputTargetVarName(target) ); + meta->addStatement(new GenOp(" @.rgb = toGamma(@.rgb);\r\n", outColor, outColor)); + meta->addStatement( new GenOp( " @ += @ * @;\r\n", outColor, detailColor, detailBlend)); + meta->addStatement(new GenOp(" @.rgb = toLinear(clamp(@.rgb, 0, 1));\r\n", outColor, outColor)); + meta->addStatement( new GenOp( " }\r\n" ) ); output = meta; @@ -848,9 +852,13 @@ void TerrainMacroMapFeatHLSL::processPix( Vector &componentL Var *outColor = (Var*)LangElement::find( getOutputTargetVarName(target) ); + meta->addStatement(new GenOp(" @.rgb = toGamma(@.rgb);\r\n", outColor, outColor)); + meta->addStatement(new GenOp(" @ += @ * @;\r\n", outColor, detailColor, detailBlend)); + meta->addStatement(new GenOp(" @.rgb = toLinear(clamp(@.rgb, 0, 1));\r\n", outColor, outColor)); + meta->addStatement( new GenOp( " }\r\n" ) ); output = meta;