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,
                      float2 uvl : TEXCOORD5,
                      float3 oNormal : TEXCOORD3,


          uniform float3 res,  
                    uniform float3 alpha,  
                    uniform float alpha2,  
                   uniform sampler2D decal,
				   uniform sampler2D light,
                 uniform samplerCUBE cube,
				   uniform sampler2D texture,
                   uniform sampler1D oned,
				   uniform sampler2D texture2
                  //uniform samplerCUBE cube
//                   uniform sampler2D cubes
//uniform float3 lightPosition

                   ) 
{



	C2E2f_Output OUT;


    float4 basetexture=tex2D (texture2,oUV);
   
//lighttexture=tex2D (lightmap,oUV);
//float3 normals=tex2D (texture,oUV);


float3 normal=((tex2D (texture,oUV)-0.5)*2);

//float maxx=dot(normal,oLight)+pow (dot(normal,oHalf),20);
float maxx=0.7+0.7*dot(oNormal,oLight);
//maxx*=maxx;
//if (dot(normal,oHalf)>0) maxx=1; else maxx=0;
float mx=max (0,dot(normal,oHalf));
mx=pow(mx,30);
mx*=2.5;

//oPosition.w+=0.003*maxx;
//oPosition+=float4 (maxx,0,0,0);


float4 cll1=tex2Dproj (decal,oPosition);
 basetexture=tex2D (texture2,oUV);

//oPosition.xyz*=1;
float4 cll4=tex2Dproj (light,oPosition);
basetexture=tex2D (texture2,oUV);

/*
OUT.color=(HCOL2*basetexture*maxx+mx*cll4);
OUT.color=(maxx*HCOL2*basetexture+HCOL*mx)*(0.5+0.5*cll1);
*/
OUT.color=maxx*((basetexture*HCOL2+HCOL2+0.3*mx))*(0.6+0.4*cll1);
OUT.color=maxx*((basetexture*HCOL2+HCOL2+0.3*mx));

float4 coll=tex2D(light,-oUV*0.5)*float4 (0.8,0.3,0.2,1);
//OUT.color=(tex2D (decal,oUV*9))*0.7*(cll4+0.5)*(basetexture)*0.4*HCOL2;
OUT.color=(tex2D (decal,oUV*11))*(cll4+0.5)*(basetexture)*HCOL2;
OUT.color=HCOL2;
OUT.color=texCUBE (cube,oHalf.xyz);
OUT.color=basetexture;
OUT.color=tex2D (light,oUV*8)*(basetexture*6.5)*HCOL2*float4 (1,0,0,0);
//OUT.color=basetexture*1.5;
//OUT.color=basetexture*3.5;

float4 decc=tex2D(decal,oUV*6);
oPosition.xy*=res.xy;
oPosition.xy+=decc.xy*0.3;
OUT.color=1*(0.2+decc*8*tex2Dproj(light,oPosition))*basetexture;
OUT.color=decc*basetexture*HCOL2*34*(0.2+tex2Dproj(light,oPosition));
OUT.color=decc*basetexture*HCOL2*34*(0.2);
OUT.color=basetexture;
//*tex2D(decal,oUV*8);
//*tex2D (light,oUV*8)*(basetexture*6.5)*HCOL2;


//OUT.color=texCUBE (cube,oHalf.xyz);
//(tex2D (decal,oUV*11))*(cll4+0.5)*(basetexture)*HCOL2;

//OUT.color=(tex2D (decal,oUV*11))*(cll4+0.5)*HCOL2;

//OUT.color=(tex2D (decal,oUV*10))*(cll4+0.5+coll)*(basetexture)*HCOL2;

//OUT.color=*basetexture;
//basetexture*float4 (0.4,0.2,0.2,0.1);



//OUT.color=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;




}
*/