 vec4 Pow(vec4 x, vec4 y) { POW }
 
 ///////////////////////////////////////////////////////////////////////////////
+// Constrast adjustment.
+///////////////////////////////////////////////////////////////////////////////
+
+vec3 AdjustContrast(vec3 Color, vec2 ScaleBias)
+{
+    return (Color - ScaleBias.y) * ScaleBias.x + ScaleBias.y;
+}
+
+///////////////////////////////////////////////////////////////////////////////
 // The brushed-metal normal computation.
 ///////////////////////////////////////////////////////////////////////////////
 

    LightDir = normalize(LightDir * TBN);
#endif

#if defined(Brush)
    // Apply the brushing term
    Normal = BrushedMetalNormal(Normal, Position, BrushDirection, BrushRoughness, BrushDistance, BrushStrength, NoiseMap);
#endif


uniform sampler2D DiffuseMap;
uniform sampler2D NormalMap;
uniform sampler3D NoiseMap;
uniform samplerCube EnvMap;

// Data from vertex shader
varying vec3 Position;
