44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
struct v2f
|
|
{
|
|
float4 Position : POSITION; //in projection space
|
|
float4 Color : COLOR;
|
|
float4 TexCoords : TEXCOORD0;
|
|
float4 Normal : TEXCOORD1;
|
|
float Alpha : TEXCOORD2;
|
|
};
|
|
|
|
float4 main(v2f IN, uniform sampler2D colourMap : TEXUNIT0) : COLOR
|
|
{
|
|
/*OUT.TexCoordsXY.xy = OUT.Position.xy;
|
|
OUT.TexCoordsYZ.xy = OUT.Position.yz;
|
|
OUT.TexCoordsXZ.xy = OUT.Position.xz;*/
|
|
|
|
/*OUT.TexCoordsXY.xy /= textureScale;
|
|
OUT.TexCoordsYZ.xy /= textureScale;
|
|
OUT.TexCoordsXZ.xy /= textureScale;*/
|
|
|
|
IN.TexCoords /= 16;
|
|
IN.TexCoords.x = frac(IN.TexCoords.x);
|
|
IN.TexCoords.y = frac(IN.TexCoords.y);
|
|
IN.TexCoords.z = frac(IN.TexCoords.z);
|
|
|
|
IN.TexCoords /= 4.0;
|
|
float material = floor(IN.Alpha);
|
|
float y = floor(material / 4.0);
|
|
//float x = material - y;
|
|
float x = fmod(material,4.0);
|
|
//x = 1.0 - x;
|
|
float2 offset = float2(x,y);
|
|
offset /= 4.0;
|
|
|
|
float3 colourMapValueXY = tex2D(colourMap, IN.TexCoords.xy + offset).rgb * abs(IN.Normal.z);
|
|
float3 colourMapValueYZ = tex2D(colourMap, IN.TexCoords.yz + offset).rgb * abs(IN.Normal.x);
|
|
float3 colourMapValueXZ = tex2D(colourMap, IN.TexCoords.xz + offset).rgb * abs(IN.Normal.y);
|
|
|
|
float3 colourMapValue = colourMapValueXY + colourMapValueYZ + colourMapValueXZ;
|
|
|
|
//colourMapValue /= 3.0;
|
|
|
|
return float4(colourMapValue*IN.Color.rgb,1.0);
|
|
//return float4(1.0,0.0,0.0,1.0);
|
|
} |