float4x4 matWVP : register(c0); float3 viewPos : register(c4); struct vsOut { float4 p : POSITION; float4 s : TEXCOORD3; float3 w : TEXCOORD4; }; vsOut vs_main(float4 p : POSITION) { vsOut o; o.p = p; o.p.xyz += viewPos; o.p= mul(o.p, matWVP); o.p.z= (1.f - 4.8e-6f) * o.p.w; o.w= p.xyz; o.s= 4.e3f; return o; };