matrix complete;
matrix world;
float4 eye;
float time;
float sync;
float4 const_mount;

struct vsinput
{
    float4 pos				: POSITION;
    float4 normal			: NORMAL;
    float2 tc				: TEXCOORD0;
};

struct vsoutput
{
    float4 pos				: POSITION;
    float2 tc				: TEXCOORD0;
    float4 diffuse			: COLOR0;
};


vsoutput main(vsinput v)
{
	vsoutput o;
	
	v.pos += sin(v.pos+time) * v.pos * sync * 0.5;
	
	v.normal = mul(v.normal, world);
	o.pos = mul(v.pos, complete); 
	
	o.tc.x = 0.5 * v.normal.x + 0.5;
	o.tc.y = 0.5 * v.normal.y + 0.5;
	
	o.diffuse = 1;
	
	return o;	
}