sampler BaseTex			: t0;
sampler Backdrop		: t1;
sampler Displacement	: t2;

vector LightItensity : register(c17);

struct PS_INPUT
{
float2 base		: TEXCOORD0;
float2 trans	: TEXCOORD1;
float4 color	: COLOR0;
};

struct PS_OUTPUT
{
vector diffuse	: COLOR0;
};

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

vector Jelly = tex2D(BaseTex, input.base);
vector Displacement = tex2D(Displacement, input.base);

input.trans.r += (Displacement.r - 0.5f) * 0.075f;
input.trans.g += (Displacement.g - 0.5f) * 0.075f;
input.trans.g = min(input.trans.g, 0.74f);

vector Backdrop = tex2D(Backdrop, input.trans);

vector Blue = { 0.8f, 1.0f, 0.6f, 0.0f };
vector Gloom = (Displacement.b * input.color.x) * 1.8f * LightItensity.x;

output.diffuse = ((Jelly * LightItensity.x + Backdrop * (LightItensity.y - Gloom)) + Gloom * Blue);

return output;
}