Guest User

Untitled

a guest
Jul 16th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. //Vertex Shader: comp:a000,
  2. typedef struct { float4 T0, T1, T2; float4 N0, N1, N2; } s_cpnmtx;
  3. typedef struct { float4 t; } FLT4;
  4. typedef struct { FLT4 T[24]; } s_ctexmtx;
  5. typedef struct { FLT4 T[64]; } s_ctrmtx;
  6. typedef struct { FLT4 T[32]; } s_cnmtx;
  7. typedef struct { FLT4 T[64]; } s_cpostmtx;
  8. typedef struct { float4 col; float4 cosatt; float4 distatt; float4 pos; float4 dir; } Light;
  9. typedef struct { Light lights[8]; } s_clights;
  10. typedef struct { float4 C0,C1,C2,C3; } s_cmtrl;
  11. typedef struct { float4 T0,T1,T2,T3; } s_cproj;
  12. typedef struct { float4 params; } s_cfog;
  13. struct VS_OUTPUT {
  14. float4 pos : POSITION;
  15. float4 colors[2] : COLOR0;
  16. float3 tex0 : TEXCOORD0;
  17. float4 clipPos : TEXCOORD1;
  18. };
  19. uniform s_ctrmtx ctrmtx : register(c78);
  20. uniform s_ctexmtx ctexmtx : register(c54);
  21. uniform s_cnmtx cnmtx : register(c142);
  22. uniform s_cpnmtx cpnmtx : register(c0);
  23. uniform s_cpostmtx cpostmtx : register(c174);
  24. uniform s_clights clights : register(c14);
  25. uniform s_cmtrl cmtrl : register(c10);
  26. uniform s_cproj cproj : register(c6);
  27. uniform s_cfog cfog : register(c238);
  28. VS_OUTPUT main(
  29. float4 color0 : COLOR0,
  30. float2 tex0 : TEXCOORD0,
  31. float4 rawpos : POSITION) {
  32. VS_OUTPUT o;
  33. float4 pos = float4(dot(cpnmtx.T0, rawpos), dot(cpnmtx.T1, rawpos), dot(cpnmtx.T2, rawpos), 1.0f);
  34. half3 _norm0 = half3(0,0,0), norm0 = half3(0,0,0);
  35. o.pos = float4(dot(cproj.T0, pos), dot(cproj.T1, pos), dot(cproj.T2, pos), dot(cproj.T3, pos));
  36. half4 mat;
  37. half3 ldir, h;
  38. half dist, dist2, attn;
  39. {
  40. half4 lacc = half4(1,1,1,1);
  41. mat = color0;
  42. o.colors[0] = mat;
  43. }
  44. o.colors[1] = float4(0,0,0,0);
  45. {
  46. float4 coord = float4(tex0.x, tex0.y, 1.0f, 1.0f);
  47. o.tex0.xyz = float3(dot(coord, ctexmtx.T[0].t), dot(coord, ctexmtx.T[1].t), 1);
  48. float4 P0 = cpostmtx.T[61].t;
  49. float4 P1 = cpostmtx.T[62].t;
  50. float4 P2 = cpostmtx.T[63].t;
  51. o.tex0.xyz = float3(dot(P0.xyz, o.tex0.xyz) + P0.w, dot(P1.xyz, o.tex0.xyz) + P1.w, dot(P2.xyz, o.tex0.xyz) + P2.w);
  52. }
  53. o.clipPos = o.pos;
  54. o.pos.z = o.pos.z + o.pos.w;
  55. return o;
  56. }
  57. //Pixel Shader for TEV stages
  58. //2 TEV stages, 1 texgens, 0 IND stages
  59. 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);
  60.  
  61. uniform float4 color[4] : register(c0);
  62. uniform float4 k[4] : register(c4);
  63. uniform float4 alphaRef[1] : register(c8);
  64. uniform float4 texdim[8] : register(c9);
  65. uniform float4 czbias[2] : register(c17);
  66. uniform float4 cindscale[2] : register(c19);
  67. uniform float4 cindmtx[6] : register(c21);
  68. uniform float4 cfog[2] : register(c27);
  69. void main(
  70. out half4 ocol0 : COLOR0,
  71. out float depth : DEPTH,
  72. in float3 uv0 : TEXCOORD0,
  73. in float4 clipPos : TEXCOORD1,
  74. in float4 colors_0 : COLOR0,
  75. in float4 colors_1 : COLOR1){
  76. float4 c0=color[1],c1=color[2],c2=color[3],prev=float4(0.0f,0.0f,0.0f,0.0f),textemp,rastemp,konsttemp=float4(0.0f,0.0f,0.0f,0.0f);
  77. float3 comp16 = float3(1.0f,255.0f,0.0f), comp24 = float3(1.0f,255.0f,255.0f*255.0f);
  78. float4 alphabump=0;
  79. float3 tevcoord;
  80. float2 wrappedcoord, tempcoord;
  81.  
  82. uv0.xy = uv0.xy * texdim[0].zw;
  83. rastemp=colors_0.rgba;
  84. tevcoord.xy = uv0.xy;
  85. textemp=tex2D(samp0,tevcoord.xy * texdim[0].xy).rgba;
  86. prev.rgb= saturate( (float3(0.0f,0.0f,0.0f)+(textemp.rgb)*(rastemp.rgb) ));
  87. prev.a= saturate( (0.0+(textemp.a)*(rastemp.a) ));
  88.  
  89. rastemp=colors_0.rgba;
  90. tevcoord.xy = uv0.xy;
  91. textemp=tex2D(samp1,tevcoord.xy * texdim[1].xy).gggg;
  92. prev.rgb= saturate( (prev.rgb+0 ));
  93. prev.a= saturate( (0.0+(prev.a)*(textemp.a) ));
  94.  
  95. float zCoord = czbias[1].x + (clipPos.z / clipPos.w) * czbias[1].y;
  96. depth = zCoord;
  97. ocol0 = prev;
  98. }
Add Comment
Please, Sign In to add comment