Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Vertex Shader: comp:a000,
- typedef struct { float4 T0, T1, T2; float4 N0, N1, N2; } s_cpnmtx;
- typedef struct { float4 t; } FLT4;
- typedef struct { FLT4 T[24]; } s_ctexmtx;
- typedef struct { FLT4 T[64]; } s_ctrmtx;
- typedef struct { FLT4 T[32]; } s_cnmtx;
- typedef struct { FLT4 T[64]; } s_cpostmtx;
- typedef struct { float4 col; float4 cosatt; float4 distatt; float4 pos; float4 dir; } Light;
- typedef struct { Light lights[8]; } s_clights;
- typedef struct { float4 C0,C1,C2,C3; } s_cmtrl;
- typedef struct { float4 T0,T1,T2,T3; } s_cproj;
- typedef struct { float4 params; } s_cfog;
- struct VS_OUTPUT {
- float4 pos : POSITION;
- float4 colors[2] : COLOR0;
- float3 tex0 : TEXCOORD0;
- float4 clipPos : TEXCOORD1;
- };
- uniform s_ctrmtx ctrmtx : register(c78);
- uniform s_ctexmtx ctexmtx : register(c54);
- uniform s_cnmtx cnmtx : register(c142);
- uniform s_cpnmtx cpnmtx : register(c0);
- uniform s_cpostmtx cpostmtx : register(c174);
- uniform s_clights clights : register(c14);
- uniform s_cmtrl cmtrl : register(c10);
- uniform s_cproj cproj : register(c6);
- uniform s_cfog cfog : register(c238);
- VS_OUTPUT main(
- float4 color0 : COLOR0,
- float2 tex0 : TEXCOORD0,
- float4 rawpos : POSITION) {
- VS_OUTPUT o;
- float4 pos = float4(dot(cpnmtx.T0, rawpos), dot(cpnmtx.T1, rawpos), dot(cpnmtx.T2, rawpos), 1.0f);
- half3 _norm0 = half3(0,0,0), norm0 = half3(0,0,0);
- o.pos = float4(dot(cproj.T0, pos), dot(cproj.T1, pos), dot(cproj.T2, pos), dot(cproj.T3, pos));
- half4 mat;
- half3 ldir, h;
- half dist, dist2, attn;
- {
- half4 lacc = half4(1,1,1,1);
- mat = color0;
- o.colors[0] = mat;
- }
- o.colors[1] = float4(0,0,0,0);
- {
- float4 coord = float4(tex0.x, tex0.y, 1.0f, 1.0f);
- o.tex0.xyz = float3(dot(coord, ctexmtx.T[0].t), dot(coord, ctexmtx.T[1].t), 1);
- float4 P0 = cpostmtx.T[61].t;
- float4 P1 = cpostmtx.T[62].t;
- float4 P2 = cpostmtx.T[63].t;
- 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);
- }
- o.clipPos = o.pos;
- o.pos.z = o.pos.z + o.pos.w;
- return o;
- }
- //Pixel Shader for TEV stages
- //2 TEV stages, 1 texgens, 0 IND stages
- 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);
- uniform float4 color[4] : register(c0);
- uniform float4 k[4] : register(c4);
- uniform float4 alphaRef[1] : register(c8);
- uniform float4 texdim[8] : register(c9);
- uniform float4 czbias[2] : register(c17);
- uniform float4 cindscale[2] : register(c19);
- uniform float4 cindmtx[6] : register(c21);
- uniform float4 cfog[2] : register(c27);
- void main(
- out half4 ocol0 : COLOR0,
- out float depth : DEPTH,
- in float3 uv0 : TEXCOORD0,
- in float4 clipPos : TEXCOORD1,
- in float4 colors_0 : COLOR0,
- in float4 colors_1 : COLOR1){
- 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);
- float3 comp16 = float3(1.0f,255.0f,0.0f), comp24 = float3(1.0f,255.0f,255.0f*255.0f);
- float4 alphabump=0;
- float3 tevcoord;
- float2 wrappedcoord, tempcoord;
- uv0.xy = uv0.xy * texdim[0].zw;
- rastemp=colors_0.rgba;
- tevcoord.xy = uv0.xy;
- textemp=tex2D(samp0,tevcoord.xy * texdim[0].xy).rgba;
- prev.rgb= saturate( (float3(0.0f,0.0f,0.0f)+(textemp.rgb)*(rastemp.rgb) ));
- prev.a= saturate( (0.0+(textemp.a)*(rastemp.a) ));
- rastemp=colors_0.rgba;
- tevcoord.xy = uv0.xy;
- textemp=tex2D(samp1,tevcoord.xy * texdim[1].xy).gggg;
- prev.rgb= saturate( (prev.rgb+0 ));
- prev.a= saturate( (0.0+(prev.a)*(textemp.a) ));
- float zCoord = czbias[1].x + (clipPos.z / clipPos.w) * czbias[1].y;
- depth = zCoord;
- ocol0 = prev;
- }
Add Comment
Please, Sign In to add comment