Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 31st, 2012  |  syntax: None  |  size: 3.91 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Pixel shader:
  2. //Pixel Shader for TEV stages
  3. //1 TEV stages, 0 texgens, 0 IND stages
  4. uniform sampler2D  samp0 : register(s0), samp1 : register(s1), samp2 : register(s2), samp3 : register(s3), samp4 : register(s4), samp5 : register(s5), samp6 : register(s6), samp7 : register(s7);
  5.  
  6. uniform float4 color[4] : register(c0);
  7. uniform float4 k[4] : register(c4);
  8. uniform float4 alphaRef[1] : register(c8);
  9. uniform float4 texdim[8] : register(c9);
  10. uniform float4 czbias[2] : register(c17);
  11. uniform float4 cindscale[2] : register(c19);
  12. uniform float4 cindmtx[6] : register(c21);
  13. uniform float4 cfog[2] : register(c27);
  14. void main(
  15.   out float4 ocol0 : COLOR0,
  16.   in float4 rawpos : POSITION,
  17.   in float4 colors_0 : COLOR0,
  18.   in float4 colors_1 : COLOR1,
  19.   in float4 clipPos : TEXCOORD0        ) {
  20.   float4 c0 = color[1], c1 = color[2], c2 = color[3], prev = float4(0.0f, 0.0f, 0.0f, 0.0f), textemp = float4(0.0f, 0.0f, 0.0f, 0.0f), rastemp = float4(0.0f, 0.0f, 0.0f, 0.0f), konsttemp = float4(0.0f, 0.0f, 0.0f, 0.0f);
  21.   float3 comp16 = float3(1.0f, 255.0f, 0.0f), comp24 = float3(1.0f, 255.0f, 255.0f*255.0f);
  22.   float4 alphabump=0;
  23.   float3 tevcoord;
  24.   float2 wrappedcoord, tempcoord;
  25.   float4 cc0, cc1, cc2, cprev,crastemp,ckonsttemp;
  26.  
  27. clipPos = float4(rawpos.x, rawpos.y, clipPos.z, clipPos.w);
  28. float3 uv0 = float3(0.0f, 0.0f, 0.0f);
  29. rastemp = colors_0.rgba;
  30. crastemp = frac(4.0f + rastemp * (255.0f/256.0f)) * (256.0f/255.0f);
  31. textemp = float4(1.0f, 1.0f, 1.0f, 1.0f);
  32. konsttemp = float4(k[0].rgb, 1.0f);
  33. ckonsttemp = frac(4.0f + konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
  34. prev.rgb = saturate(2.0f*((crastemp.rgb)*(ckonsttemp.rgb)));
  35. prev.a = saturate(rastemp.a+float4(0.0f, 0.0f, 0.0f, 0.0f).a);
  36.  
  37.   ocol0 = prev;
  38. }
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. Vertex shader:
  46. //Vertex Shader: comp:400,
  47. typedef struct { float4 T0, T1, T2; float4 N0, N1, N2; } s_cpnmtx;
  48. typedef struct { float4 t; } FLT4;
  49. typedef struct { FLT4 T[24]; } s_ctexmtx;
  50. typedef struct { FLT4 T[64]; } s_ctrmtx;
  51. typedef struct { FLT4 T[32]; } s_cnmtx;
  52. typedef struct { FLT4 T[64]; } s_cpostmtx;
  53. typedef struct { float4 col; float4 cosatt; float4 distatt; float4 pos; float4 dir; } Light;
  54. typedef struct { Light lights[8]; } s_clights;
  55. typedef struct { float4 C0, C1, C2, C3; } s_cmtrl;
  56. typedef struct { float4 T0, T1, T2, T3; } s_cproj;
  57. struct VS_OUTPUT {
  58.   float4 pos : POSITION;
  59.   float4 colors_0 : COLOR0;
  60.   float4 colors_1 : COLOR1;
  61.   float4 clipPos : TEXCOORD0;
  62. };
  63. uniform s_ctrmtx ctrmtx : register(c78);
  64. uniform s_ctexmtx ctexmtx : register(c54);
  65. uniform s_cnmtx cnmtx : register(c142);
  66. uniform s_cpnmtx cpnmtx : register(c0);
  67. uniform s_cpostmtx cpostmtx : register(c174);
  68. uniform s_clights clights : register(c14);
  69. uniform s_cmtrl cmtrl : register(c10);
  70. uniform s_cproj cproj : register(c6);
  71. uniform float4 cDepth : register(c238);
  72. VS_OUTPUT main(
  73.   float3 rawnorm0 : NORMAL0,
  74.   float4 rawpos : POSITION) {
  75. VS_OUTPUT o;
  76. float4 pos = float4(dot(cpnmtx.T0, rawpos), dot(cpnmtx.T1, rawpos), dot(cpnmtx.T2, rawpos), 1.0f);
  77. float3 _norm0 = normalize(float3(dot(cpnmtx.N0.xyz, rawnorm0), dot(cpnmtx.N1.xyz, rawnorm0), dot(cpnmtx.N2.xyz, rawnorm0)));
  78. o.pos = float4(dot(cproj.T0, pos), dot(cproj.T1, pos), dot(cproj.T2, pos), dot(cproj.T3, pos));
  79. float4 mat, lacc;
  80. float3 ldir, h;
  81. float dist, dist2, attn;
  82. {
  83. mat = cmtrl.C2;
  84. lacc = cmtrl.C0;
  85. lacc.w = 1.0f;
  86. ldir = clights.lights[0].pos.xyz - pos.xyz;
  87. dist2 = dot(ldir, ldir);
  88. dist = sqrt(dist2);
  89. ldir = ldir / dist;
  90. attn = max(0.0f, dot(ldir, clights.lights[0].dir.xyz));
  91. attn = max(0.0f, dot(clights.lights[0].cosatt.xyz, float3(1.0f, attn, attn*attn))) / dot(clights.lights[0].distatt.xyz, float3(1.0f,dist,dist2));
  92. lacc.xyz += attn * max(0.0f,dot(ldir, _norm0)) * clights.lights[0].col.xyz;
  93.  
  94. o.colors_0 = mat * saturate(lacc);
  95. }
  96. o.colors_1 = o.colors_0;
  97. float4 coord = float4(0.0f, 0.0f, 1.0f, 1.0f);
  98. o.clipPos = float4(pos.x,pos.y,o.pos.z,o.pos.w);
  99. o.pos.z = cDepth.x * o.pos.w + o.pos.z * cDepth.y;
  100. return o;
  101. }