Vertexshader W2s
This worked for me on low settings: worldspacecamera matches the coordinates in localplayer +A8 +140
*****bit buggy on foot perfect in a vehicle*****
credits:NtKid,nvidia
Dump of StartRegister 0 & vec4fcount 168
*****bit buggy on foot perfect in a vehicle*****
credits:NtKid,nvidia
Code:
pDevice->GetVertexShaderConstantF(156,TviewProjection,4);
D3DXMatrixTranspose(&viewProjection,&TviewProjection);
D3DXVec4Transform(&Vector4D,&D3DXVECTOR4(-236,164,141,1),&viewProjection);// us base to the left
float recp = 1.0f/Vector4D.w;
Vector2D.x = (1 + (Vector4D.x*recp)) * vp.Width /2;
Vector2D.y = (1 - (Vector4D.y*recp)) * vp.Height /2;
if(Vector4D.z > 0 ){
Dump of StartRegister 0 & vec4fcount 168
Code:
//
// Generated by Microsoft (R) D3DX9 Shader Compiler 9.11.519.0000
//
// Parameters:
//
// float4 FogColor;
// float4 FogRange;
// float4x3 GeomBones[52];
//
// struct
// {
// float3 pos;
// float3 dir;
// float4 color;
// float4 specularColor;
// float attenuation;
//
// } Lights;
//
// float2 NormalUnpack;
// float4 PosUnpack;
// float TexUnpack;
// float4x4 ViewProjection;
// float4 WorldSpaceCamPos; localplayer +A8 +140
//
//
// Registers:
//
// Name Reg Size
// ---------------- ----- ----
// GeomBones c0 156
// ViewProjection c156 4
// Lights c160 2
// FogRange c162 1
// FogColor c163 1
// WorldSpaceCamPos c164 1
// PosUnpack c165 1
// TexUnpack c166 1
// NormalUnpack c167 1
//
//
// Default values:
//
// GeomBones
// c0 = { 0, 0, 0, 0 };
// c1 = { 0, 0, 0, 0 };
// c2 = { 0, 0, 0, 0 };
// c3 = { 0, 0, 0, 0 };
// c4 = { 0, 0, 0, 0 };
// c5 = { 0, 0, 0, 0 };
// c6 = { 0, 0, 0, 0 };
// c7 = { 0, 0, 0, 0 };
// c8 = { 0, 0, 0, 0 };
// c9 = { 0, 0, 0, 0 };
// c10 = { 0, 0, 0, 0 };
// c11 = { 0, 0, 0, 0 };
// c12 = { 0, 0, 0, 0 };
// c13 = { 0, 0, 0, 0 };
// c14 = { 0, 0, 0, 0 };
// c15 = { 0, 0, 0, 0 };
// c16 = { 0, 0, 0, 0 };
// c17 = { 0, 0, 0, 0 };
// c18 = { 0, 0, 0, 0 };
// c19 = { 0, 0, 0, 0 };
// c20 = { 0, 0, 0, 0 };
// c21 = { 0, 0, 0, 0 };
// c22 = { 0, 0, 0, 0 };
// c23 = { 0, 0, 0, 0 };
// c24 = { 0, 0, 0, 0 };
// c25 = { 0, 0, 0, 0 };
// c26 = { 0, 0, 0, 0 };
// c27 = { 0, 0, 0, 0 };
// c28 = { 0, 0, 0, 0 };
// c29 = { 0, 0, 0, 0 };
// c30 = { 0, 0, 0, 0 };
// c31 = { 0, 0, 0, 0 };
// c32 = { 0, 0, 0, 0 };
// c33 = { 0, 0, 0, 0 };
// c34 = { 0, 0, 0, 0 };
// c35 = { 0, 0, 0, 0 };
// c36 = { 0, 0, 0, 0 };
// c37 = { 0, 0, 0, 0 };
// c38 = { 0, 0, 0, 0 };
// c39 = { 0, 0, 0, 0 };
// c40 = { 0, 0, 0, 0 };
// c41 = { 0, 0, 0, 0 };
// c42 = { 0, 0, 0, 0 };
// c43 = { 0, 0, 0, 0 };
// c44 = { 0, 0, 0, 0 };
// c45 = { 0, 0, 0, 0 };
// c46 = { 0, 0, 0, 0 };
// c47 = { 0, 0, 0, 0 };
// c48 = { 0, 0, 0, 0 };
// c49 = { 0, 0, 0, 0 };
// c50 = { 0, 0, 0, 0 };
// c51 = { 0, 0, 0, 0 };
// c52 = { 0, 0, 0, 0 };
// c53 = { 0, 0, 0, 0 };
// c54 = { 0, 0, 0, 0 };
// c55 = { 0, 0, 0, 0 };
// c56 = { 0, 0, 0, 0 };
// c57 = { 0, 0, 0, 0 };
// c58 = { 0, 0, 0, 0 };
// c59 = { 0, 0, 0, 0 };
// c60 = { 0, 0, 0, 0 };
// c61 = { 0, 0, 0, 0 };
// c62 = { 0, 0, 0, 0 };
// c63 = { 0, 0, 0, 0 };
// c64 = { 0, 0, 0, 0 };
// c65 = { 0, 0, 0, 0 };
// c66 = { 0, 0, 0, 0 };
// c67 = { 0, 0, 0, 0 };
// c68 = { 0, 0, 0, 0 };
// c69 = { 0, 0, 0, 0 };
// c70 = { 0, 0, 0, 0 };
// c71 = { 0, 0, 0, 0 };
// c72 = { 0, 0, 0, 0 };
// c73 = { 0, 0, 0, 0 };
// c74 = { 0, 0, 0, 0 };
// c75 = { 0, 0, 0, 0 };
// c76 = { 0, 0, 0, 0 };
// c77 = { 0, 0, 0, 0 };
// c78 = { 0, 0, 0, 0 };
// c79 = { 0, 0, 0, 0 };
// c80 = { 0, 0, 0, 0 };
// c81 = { 0, 0, 0, 0 };
// c82 = { 0, 0, 0, 0 };
// c83 = { 0, 0, 0, 0 };
// c84 = { 0, 0, 0, 0 };
// c85 = { 0, 0, 0, 0 };
// c86 = { 0, 0, 0, 0 };
// c87 = { 0, 0, 0, 0 };
// c88 = { 0, 0, 0, 0 };
// c89 = { 0, 0, 0, 0 };
// c90 = { 0, 0, 0, 0 };
// c91 = { 0, 0, 0, 0 };
// c92 = { 0, 0, 0, 0 };
// c93 = { 0, 0, 0, 0 };
// c94 = { 0, 0, 0, 0 };
// c95 = { 0, 0, 0, 0 };
// c96 = { 0, 0, 0, 0 };
// c97 = { 0, 0, 0, 0 };
// c98 = { 0, 0, 0, 0 };
// c99 = { 0, 0, 0, 0 };
// c100 = { 0, 0, 0, 0 };
// c101 = { 0, 0, 0, 0 };
// c102 = { 0, 0, 0, 0 };
// c103 = { 0, 0, 0, 0 };
// c104 = { 0, 0, 0, 0 };
// c105 = { 0, 0, 0, 0 };
// c106 = { 0, 0, 0, 0 };
// c107 = { 0, 0, 0, 0 };
// c108 = { 0, 0, 0, 0 };
// c109 = { 0, 0, 0, 0 };
// c110 = { 0, 0, 0, 0 };
// c111 = { 0, 0, 0, 0 };
// c112 = { 0, 0, 0, 0 };
// c113 = { 0, 0, 0, 0 };
// c114 = { 0, 0, 0, 0 };
// c115 = { 0, 0, 0, 0 };
// c116 = { 0, 0, 0, 0 };
// c117 = { 0, 0, 0, 0 };
// c118 = { 0, 0, 0, 0 };
// c119 = { 0, 0, 0, 0 };
// c120 = { 0, 0, 0, 0 };
// c121 = { 0, 0, 0, 0 };
// c122 = { 0, 0, 0, 0 };
// c123 = { 0, 0, 0, 0 };
// c124 = { 0, 0, 0, 0 };
// c125 = { 0, 0, 0, 0 };
// c126 = { 0, 0, 0, 0 };
// c127 = { 0, 0, 0, 0 };
// c128 = { 0, 0, 0, 0 };
// c129 = { 0, 0, 0, 0 };
// c130 = { 0, 0, 0, 0 };
// c131 = { 0, 0, 0, 0 };
// c132 = { 0, 0, 0, 0 };
// c133 = { 0, 0, 0, 0 };
// c134 = { 0, 0, 0, 0 };
// c135 = { 0, 0, 0, 0 };
// c136 = { 0, 0, 0, 0 };
// c137 = { 0, 0, 0, 0 };
// c138 = { 0, 0, 0, 0 };
// c139 = { 0, 0, 0, 0 };
// c140 = { 0, 0, 0, 0 };
// c141 = { 0, 0, 0, 0 };
// c142 = { 0, 0, 0, 0 };
// c143 = { 0, 0, 0, 0 };
// c144 = { 0, 0, 0, 0 };
// c145 = { 0, 0, 0, 0 };
// c146 = { 0, 0, 0, 0 };
// c147 = { 0, 0, 0, 0 };
// c148 = { 0, 0, 0, 0 };
// c149 = { 0, 0, 0, 0 };
// c150 = { 0, 0, 0, 0 };
// c151 = { 0, 0, 0, 0 };
// c152 = { 0, 0, 0, 0 };
// c153 = { 0, 0, 0, 0 };
// c154 = { 0, 0, 0, 0 };
// c155 = { 0, 0, 0, 0 };
//
// ViewProjection
// c156 = { 0, 0, 0, 0 };
// c157 = { 0, 0, 0, 0 };
// c158 = { 0, 0, 0, 0 };
// c159 = { 0, 0, 0, 0 };
//
// Lights
// c160 = { 0, 0, 0, 0 };
// c161 = { 0, 0, 0, 0 };
//
// FogRange
// c162 = { 0, 0, 0, 0 };
//
// FogColor
// c163 = { 0, 0, 0, 0 };
//
// WorldSpaceCamPos
// c164 = { 0, 0, 0, 0 };
//
// PosUnpack
// c165 = { 0, 0, 0, 0 };
//
// TexUnpack
// c166 = { 0, 0, 0, 0 };
//
// NormalUnpack
// c167 = { 0, 0, 0, 0 };
//
vs_1_1
def c168, 765.005859, 1, -1, 0
dcl_position v0
dcl_normal v1
dcl_blendindices v2
dcl_texcoord v3
mul r0, v0, c165
mul r2.w, v2.z, c168.x
mov r1.w, c168.y
mov a0.x, r2.w
dp4 r1.x, r0, c0[a0.x]
dp4 r1.y, r0, c1[a0.x]
dp4 r1.z, r0, c2[a0.x]
dp4 oPos.x, r1, c156
dp4 oPos.y, r1, c157
dp4 oPos.z, r1, c158
mov r0.xyz, -r1
mov r0.w, c168.z
dp4 r3.x, r1, c159
add r0, r0, c164
mul oT0.xy, v3, c166.x
dp4 r0.w, r0, r0
rsq r0.w, r0.w
mad r2.xyz, v1, c167.x, c167.y
mad r1.xyz, r0, r0.w, -c161
dp3 r0.x, r2, c0[a0.x]
dp3 r0.y, r2, c1[a0.x]
dp3 r0.z, r2, c2[a0.x]
dp3 r4.x, r1, r1
dp3 r2.x, r0, r0
rsq r1.w, r4.x
rsq r0.w, r2.x
mul oT2.xyz, r1, r1.w
mul oT3.xyz, r0, r0.w
mad r0.xy, r3.x, c162, c162.zwzw
mov oPos.w, r3.x
max r1.w, r0.y, c163.w
mul r0.w, r0.x, r0.x
mad oFog, r0.x, -r0.w, r1.w
mov r0.zw, c168
mul oT1, r0.zzzw, c161.xyzx
mov oT2.w, c168.w
mov oT3.w, c168.w
// approximately 37 instruction slots used