TilingFP.cg
上传用户:xhbjoy
上传日期:2014-10-07
资源大小:38068k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. sampler RT : register(s0);
  2. float4 Tiling_ps(float4 inPos : POSITION,
  3. float2 iTexCoord : TEXCOORD0,
  4. uniform half NumTiles,
  5. uniform half Threshhold) : COLOR
  6. {
  7. half3 EdgeColor = {0.7, 0.7, 0.7};
  8.     half size = 1.0/NumTiles;
  9.     half2 Pbase = iTexCoord - fmod(iTexCoord, size.xx);
  10.     half2 PCenter = Pbase + (size/2.0).xx;
  11.     half2 st = (iTexCoord - Pbase)/size;
  12.     half4 c1 = (half4)0;
  13.     half4 c2 = (half4)0;
  14.     half4 invOff = half4((1-EdgeColor),1);
  15.     if (st.x > st.y) { c1 = invOff; }
  16.     half threshholdB =  1.0 - Threshhold;
  17.     if (st.x > threshholdB) { c2 = c1; }
  18.     if (st.y > threshholdB) { c2 = c1; }
  19.     half4 cBottom = c2;
  20.     c1 = (half4)0;
  21.     c2 = (half4)0;
  22.     if (st.x > st.y) { c1 = invOff; }
  23.     if (st.x < Threshhold) { c2 = c1; }
  24.     if (st.y < Threshhold) { c2 = c1; }
  25.     half4 cTop = c2;
  26.     half4 tileColor = tex2D(RT, PCenter);
  27.     half4 result = tileColor + cTop - cBottom;
  28.     return result;
  29. }