34 lines
945 B
Plaintext
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;
|
|
}
|