uniform sampler2D baseMap;
uniform sampler2D Light;
uniform sampler2D layer1;
uniform sampler2D layer2;
uniform sampler2D layer3;
uniform sampler2D mask;

varying vec2 Texcoord;
varying vec2 Texcoord1;
varying vec2 Texcoord2;
varying vec2 Texcoord3;

void main( void )
{
   vec4 base = texture2D( baseMap, Texcoord );
   vec4 Light1 = texture2D( Light, Texcoord );
   vec4 layer1C = texture2D( layer1, Texcoord1 );
   vec4 layer2C = texture2D( layer2, Texcoord2 );
   vec4 layer3C = texture2D( layer3, Texcoord3 );

   vec4 maskC = texture2D (mask, Texcoord );
   
   vec4 col;
   
   col = (layer1C-base) * maskC.r   + (layer2C-base)* maskC.g * 1.3 + (layer3C-base) * maskC.b;

   base = (base  + col) * Light1 * 1.6;
   
   gl_FragColor = base;
    
}

