struct v2f { float4 Position : POSITION; //in projection space float4 Color : COLOR; float4 TexCoordsXY : TEXCOORD0; float4 TexCoordsYZ : TEXCOORD1; float4 TexCoordsXZ : TEXCOORD2; float4 Normal : TEXCOORD3; }; 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.Color.a,0.75)); }