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

vector LightItensity	: register(c17);

struct PS_INPUT
{
float2 base		: TEXCOORD0;
float2 trans	: TEXCOORD1;
};

struct PS_OUTPUT
{
vector diffuse	: COLOR0;
};

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

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

input.trans.r += (Displacement.r - 0.5f) * 0.14f;
input.trans.g += (Displacement.g - 0.5f) * 0.14f;
input.trans.g = min(input.trans.g, 0.74f);
vector Backdrop = tex2D(Backdrop, input.trans);

output.diffuse = Backdrop * Displacement.b + Bubble * LightItensity.x * (1 - Displacement.b);
output.diffuse.a = Bubble.a;

return output;
}