struct v2f { float4 Position : POSITION; //in projection space float4 Color : COLOR; float4 TexCoordsXY : TEXCOORD0; float4 TexCoordsYZ : TEXCOORD1; float4 TexCoordsXZ : TEXCOORD2; float4 Normal : TEXCOORD3; float Alpha : TEXCOORD4; }; float4 main(v2f IN, uniform sampler2D colourMap : TEXUNIT0) : COLOR { float3 colourMapValueXY = tex2D(colourMap, IN.TexCoordsXY.xy).rgb * abs(IN.Normal.z); float3 colourMapValueYZ = tex2D(colourMap, IN.TexCoordsYZ.xy).rgb * abs(IN.Normal.x); float3 colourMapValueXZ = tex2D(colourMap, IN.TexCoordsXZ.xy).rgb * abs(IN.Normal.y); float3 colourMapValue = colourMapValueXY + colourMapValueYZ + colourMapValueXZ; //colourMapValue /= 3.0; return float4(colourMapValue*IN.Color.rgb,pow(IN.Alpha,0.75)); }