Browse Source

Update blendContrast, add glsl support

Lukas Aldershaab 4 years ago
parent
commit
3c165b7d45

+ 14 - 0
Engine/source/terrain/glsl/terrFeatureGLSL.cpp

@@ -1345,6 +1345,16 @@ void TerrainHeightMapBlendGLSL::processPix(Vector<ShaderComponent*>& 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<ShaderComponent*>& 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"));
       }
    }

+ 1 - 1
Engine/source/terrain/hlsl/terrFeatureHLSL.cpp

@@ -1456,7 +1456,7 @@ void TerrainHeightMapBlendHLSL::processPix(Vector<ShaderComponent*>& 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"));