struct C2E2f_Output { 
	float4 color: COLOR;
};


C2E2f_Output main (    float4 oPosition : TEXCOORD1,
                      float2 oUV : TEXCOORD0,
                      float4 HCOL : COLOR, 
                      
	float4 HCOL2 : COLOR1,
                      
                      float3 oLight : TEXCOORD2,
                      float3 oHalf : TEXCOORD4,
                      float3 oNormal : TEXCOORD3,



                    uniform float3 alpha,  
                   uniform sampler2D decal,
				   uniform sampler2D light,
				   uniform sampler2D texture,
				   uniform sampler2D texture2
//uniform float3 lightPosition

                   ) 
{



	C2E2f_Output OUT;



float4 normals=tex2D (light,oUV);


float3 normal=((normals.xyz-0.5)*2).xyz;

//float maxx=dot(normal,oLight)+pow (dot(normal,oHalf),20);
float maxx=dot(normal,oLight)*0.4*1.6;
//maxx*=maxx;
//if (dot(normal,oHalf)>0) maxx=1; else maxx=0;
float mx=max (0,dot(normal,oHalf));
mx=pow(mx,3);
mx*=4;

//(float2) oPosition+=(float2) normal;
oPosition.xyz+=normal*1;
oUV.xy+=normal.xy*0.1;
  
float4 basetexture=tex2D (texture2,oUV);

float4 cll1=tex2Dproj (decal,oPosition);
//oPosition.xyz*=1;
//if (cll4.w<0) cll4=float4 (0,0,0,0);


//OUT.color=cll4*cll1*0.5+cll4*0.5*(maxx*HCOL2*basetexture+HCOL*mx)*(0.2+0.8*cll1);
//OUT.color=HCOL*(0.7+0.3*cll1)*mx+0.5*cll1;


OUT.color=0.5
*basetexture*(cll1
                           +maxx);

          
//OUT.color=cll4;
//OUT.color=cll1;

//OUT.color=cll1*1*cll4;
	return OUT;




}









































/* 


  FRAGMENT ENV MAP 



  struct C2E2f_Output { 
	float4 color: COLOR;
};


C2E2f_Output main (    float2 oPosition : TEXCOORD0,
    float2 oPosition2 : TEXCOORD1,
	uniform sampler2D decal,			   
	uniform sampler2D decal2					   
				   ) 
{



	C2E2f_Output OUT;

//float fc=1;
//fc=position.x;
	//float2 norm;
	//norm.x=oNormal.x;
	//norm.y=oNormal.y;

OUT.color=tex2D (decal2,oPosition);

float dx=ddx(OUT.color.x);
float dy=ddx(OUT.color.x);

oPosition2.x+=dx*1;
oPosition2.y+=dy*1;


  OUT.color=tex2D (decal,oPosition2);




  
  
  //OUT.color.y=0;
//OUT.color.z=0;
//  OUT.color-=tex2D (decal,oPosition2);


	return OUT;




}
*/