2013-12-19 19:32:50 +01:00

34 lines
945 B
Plaintext

sampler RT : register(s0);
float4 Tiling_ps(float4 inPos : POSITION,
float2 iTexCoord : TEXCOORD0,
uniform half NumTiles,
uniform half Threshhold) : COLOR
{
half3 EdgeColor = {0.7, 0.7, 0.7};
half size = 1.0/NumTiles;
half2 Pbase = iTexCoord - fmod(iTexCoord, size.xx);
half2 PCenter = Pbase + (size/2.0).xx;
half2 st = (iTexCoord - Pbase)/size;
half4 c1 = (half4)0;
half4 c2 = (half4)0;
half4 invOff = half4((1-EdgeColor),1);
if (st.x > st.y) { c1 = invOff; }
half threshholdB = 1.0 - Threshhold;
if (st.x > threshholdB) { c2 = c1; }
if (st.y > threshholdB) { c2 = c1; }
half4 cBottom = c2;
c1 = (half4)0;
c2 = (half4)0;
if (st.x > st.y) { c1 = invOff; }
if (st.x < Threshhold) { c2 = c1; }
if (st.y < Threshhold) { c2 = c1; }
half4 cTop = c2;
half4 tileColor = tex2D(RT, PCenter);
half4 result = tileColor + cTop - cBottom;
return result;
}