@@ -5,12 +5,13 @@ struct vf
55 float4 hpos : POSITION;
66 float4 C : COLOR0;
77 float2 tc : TEXCOORD0;
8+ float fog : FOG;
89};
910
10- uniform float4 consts; // {1/quant,1/quant,diffusescale,ambient}
11- uniform float4 wave; // cx,cy,cz,tm
12- uniform float4 dir2D;
13- uniform float4 array [200 ] : register(c10);
11+ uniform float4 consts; // {1/quant,1/quant,diffusescale,ambient}
12+ uniform float4 wave; // cx,cy,cz,tm
13+ uniform float4 dir2D;
14+ uniform float4 array[200 ] : register(c10);
1415
1516vf main (v_detail v)
1617{
@@ -25,27 +26,30 @@ vf main (v_detail v)
2526
2627 // Transform to world coords
2728 float4 pos;
28- pos.x = dot (m0, v.pos);
29- pos.y = dot (m1, v.pos);
30- pos.z = dot (m2, v.pos);
29+ pos.x = dot (m0, v.pos);
30+ pos.y = dot (m1, v.pos);
31+ pos.z = dot (m2, v.pos);
3132 pos.w = 1 ;
3233
3334 //
34- float base = m1.w;
35- float dp = calc_cyclic (dot (pos,wave));
36- float H = pos.y - base; // height of vertex (scaled)
37- float frac = v.misc.z* consts.x; // fractional
38- float inten = H * dp;
39- float2 result = calc_xz_wave (dir2D.xz* inten,frac);
40- pos = float4(pos.x+ result.x, pos.y, pos.z+ result.y, 1 );
41- o.hpos = mul (m_WVP,pos);
35+ float base = m1.w;
36+ float dp = calc_cyclic(dot (pos,wave));
37+ float H = pos.y - base; // height of vertex (scaled)
38+ float frac = v.misc.z* consts.x; // fractional
39+ float inten = H * dp;
40+ float2 result = calc_xz_wave(dir2D.xz* inten,frac);
41+ pos = float4(pos.x+ result.x, pos.y, pos.z+ result.y, 1 );
42+
43+ // Calc fog
44+ o.fog = calc_fogging(pos);
4245
4346 // Fake lighting
44- float dpc = max (0 .f, dp);
45- o.C = c0 * (consts.w+ consts.z* dpc* frac);
47+ float dpc = max (0 .f, dp);
48+ o.C = c0 * (consts.w+ consts.z* dpc* frac);
4649
4750 // final xform, color, tc
48- o.tc.xy = (v.misc * consts).xy;
51+ o.hpos = mul(m_WVP,pos);
52+ o.tc.xy = (v.misc * consts).xy;
4953
5054 return o;
5155}
0 commit comments