sampler BaseTex;
sampler DirtTex;
sampler BrightTex;

struct PS_INPUT
{
float2 base	: TEXCOORD0;
float2 dirt	: TEXCOORD1;
float2 bright	: TEXCOORD2;
};

struct PS_OUTPUT
{
vector diffuse	: COLOR0;
};

PS_OUTPUT Main(PS_INPUT input)
{
PS_OUTPUT output = (PS_OUTPUT)0;

vector a = tex2D(BaseTex, input.base);
vector b = tex2D(DirtTex, input.dirt);
vector c = tex2D(BrightTex, input.bright);

output.diffuse.a = 1.0f - b.r;
output.diffuse.r = a.r * c.r;
output.diffuse.g = a.r * c.g;
output.diffuse.b = a.r * c.b;

return output;
}