//--vs_2_0--//
float4x4 WorldViewProjection : register(c0);
float4 Unknown_c4 : register(c4);
float4 Unknown_c6 : register(c6);
float4 Unknown_c10 : register(c10);
struct vs_in
{
// dcl_position v0 //
float4 position : POSITION;
// dcl_normal v1 //
float4 normal : NORMAL0;
// dcl_binormal v2 //
float4 binormal : BINORMAL0;
// dcl_tangent v3 //
float4 tangent : TANGENT0;
// dcl_texcoord v4 //
float4 texcoord : TEXCOORD0;
};
struct vs_out
{
float4 position : POSITION;
float4 Tex0 : TEXCOORD0;
float4 Tex1 : TEXCOORD1;
float4 Tex2 : TEXCOORD2;
float4 Tex3 : TEXCOORD3;
float Fog : FOG;
};
void main(in vs_in IN, out vs_out OUT)
{
float3 temp_r5;
float3 temp_r8;
temp_r5.xyz = -IN.position + Unknown_c4;
OUT.position = mul(IN.position, WorldViewProjection);
OUT.Tex0 = IN.texcoord * Unknown_c10.xyyy + Unknown_c10.zwww;
OUT.Tex1.x = IN.tangent.x; //v3
OUT.Tex1.y = IN.binormal.x; //v2
OUT.Tex1.z = IN.normal.x; //v1
OUT.Tex2.x = IN.tangent.y; //v3
OUT.Tex2.y = IN.binormal.y; //v2
OUT.Tex2.z = IN.normal.y; //v1
OUT.Tex3.x = IN.tangent.z;
OUT.Tex3.y = IN.binormal.z;
OUT.Tex3.z = IN.normal.z;
OUT.Tex1.w = temp_r5.x;
OUT.Tex2.w = 0 * temp_r5.y; //Nulls effect to isolate what each does
OUT.Tex3.w = 0 * temp_r5.z; //If you want it to look normal, remove the multiplication
temp_r8.z = mul(IN.position, Unknown_c6);
OUT.Fog = IN.texcoord.w - temp_r8.z;
}
// add r5.xyz, -v0, c4
// dp4 oPos.x, v0, c0
// dp4 oPos.y, v0, c1
// dp4 oPos.z, v0, c2
// dp4 oPos.w, v0, c3
// mad oT0.xy, v4, c10.xyyy, c10.zwww
// mov oT1.x, v3.x
// mov oT1.y, v2.x
// mov oT1.z, v1.x
// mov oT2.x, v3.y
// mov oT2.y, v2.y
// mov oT2.z, v1.y
// mov oT3.x, v3.z
// mov oT3.y, v2.z
// mov oT3.z, v1.z
// mov oT1.w, r5.x
// mov oT2.w, r5.y
// mov oT3.w, r5.z
// dp4 r8.z, v0, c6
// add oFog, v4.w, -r8.z
// approximately 20 instruction slots used
Bookmarks