
struct appdata
{
    float4 position : POSITION;
    float3 normal : NORMAL;
    float3 color : DIFFUSE;
    float3 TestColor : SPECULAR;
};

struct vfconn
{
    float4 HPOS : POSITION;
    float2 oPosition : TEXCOORD0;
    float2 oPosition2 : TEXCOORD1;
};

vfconn main(appdata IN,
            uniform float3 Kd,
            uniform float4x4 ModelViewProj)
{
    vfconn OUT;

    

	OUT.HPOS = IN.position;
	OUT.HPOS.x*=0.8995;
	OUT.HPOS.y*=0.8995;
	//mul(ModelViewProj, IN.position);

//diss/=length(diss);


//float cl=dot (normal,diss-OUT.HPOS);

OUT.oPosition.x=Kd.x;
OUT.oPosition.y=Kd.y;

OUT.oPosition2.x=IN.position.x*0.445+0.5;
OUT.oPosition2.y=IN.position.y*0.445+0.5;
//OUT.oNormal.x=normal.x*0.3;
//OUT.oNormal.y=normal.y*0.3;

    return OUT;
} // main




























/*


  VERTEX ENV MAP



  
struct appdata
{
    float4 position : POSITION;
    float3 normal : NORMAL;
    float3 color : DIFFUSE;
    float3 TestColor : SPECULAR;
};

struct vfconn
{
    float4 HPOS : POSITION;
    float2 oPosition : TEXCOORD0;
    float2 oNormal : TEXCOORD1;
};

vfconn main(appdata IN,
            uniform float3 Kd,
            uniform float4x4 ModelViewProj)
{
    vfconn OUT;

    

	OUT.HPOS = mul(ModelViewProj, IN.position);
float3 normal=mul((float3x3)ModelViewProj,IN.normal);
normalize(normal);


float4 normpos=normalize(OUT.HPOS);
float3 refl=reflect (normal,normpos);


float magn=1.5*sqrt (refl.x*refl.x+refl.y*refl.y+(refl.z+1)*(refl.z+1));






float4 normpos2=normalize(IN.position);
float3 refl2=reflect (IN.normal,normpos);


float magn2=1.5*sqrt (refl2.x*refl2.x+refl2.y*refl2.y+(refl2.z+1)*(refl2.z+1));




//diss/=length(diss);


//float cl=dot (normal,diss-OUT.HPOS);
OUT.oNormal.x=refl.x/magn+0.5;
OUT.oNormal.y=refl.y/magn+0.5;


//normalize(diss);

OUT.oPosition.x=IN.position.x*2;
OUT.oPosition.y=IN.position.y*2;

//OUT.oNormal.x=normal.x*0.3;
//OUT.oNormal.y=normal.y*0.3;

    return OUT;
} // main

 */
