112Shaders/muzzleflash.fx
2021-12-28 10:06:46 +01:00

1046 lines
33 KiB
HLSL

string DefaultParameterScopeBlock = "material"; // 1
float3 AmbientLightColor <bool unmanaged = 1;> = { 0.3, 0.3, 0.3 };
struct {
float3 Color;
float3 Direction;
} DirectionalLight[3] <bool unmanaged = 1;> = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 };
struct {
float3 Color;
float3 Position;
float2 Range_Inner_Outer;
} PointLight[8] <bool unmanaged = 1;>;
struct {
float4 WorldPositionMultiplier_XYZZ;
float2 CurrentOffsetUV;
} Cloud <bool unmanaged = 1;>;
float3 NoCloudMultiplier <bool unmanaged = 1;> = { 1, 1, 1 };
float3 RecolorColorDummy <bool unmanaged = 1;>;
row_major float4x4 ShadowMapWorldToShadow <bool unmanaged = 1;>;
float OpacityOverride <bool unmanaged = 1;> = { 1 };
float3 TintColor <bool unmanaged = 1;> = { 1, 1, 1 };
float3 EyePosition <bool unmanaged = 1;>;
column_major float4x4 ViewProjection : register(vs_2_0, c119) <bool unmanaged = 1;>;
float4 WorldBones[128] : register(vs_2_0, c128) <bool unmanaged = 1;>;
int NumJointsPerVertex <string UIWidget = "None"; string SasBindAddress = "Sas.Skeleton.NumJointsPerVertex";>;
column_major float4x3 World : World : register(vs_2_0, c124);
float3 ColorEmissive : register(vs_2_0, c15) <string UIName = "Emissive Material Color"; string UIWidget = "Color";> = { 1, 1, 1 };
texture Texture_0 <string UIName = "Diffuse Texture";>; // 6
sampler2D Texture_0Sampler : register(ps_2_0, s0) =
sampler_state
{
Texture = <Texture_0>; // 8
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
};
bool MultiTextureEnable <string UIName = "Multi Texture Enable";>;
float TexCoordTransformAngle_0 <string UIName = "Radian Delta Rate per Frame"; string UIWidget = "Slider"; float UIMin = -100; float UIMax = 100;> = { 1 };
float TexCoordTransformU_0 : register(vs_2_0, c16) <string UIName = "Vertex ID 0 Rotation Center in U"; string UIWidget = "Slider"; float UIMin = 0; float UIMax = 1;> = { 0.5 };
float TexCoordTransformV_0 : register(vs_2_0, c17) <string UIName = "Vertex ID 0 Rotation Center in V"; string UIWidget = "Slider"; float UIMin = 0; float UIMax = 1;> = { 0.5 };
float TexCoordTransformU_1 : register(vs_2_0, c18) <string UIName = "Vertex ID 1 Rotation Center in U"; string UIWidget = "Slider"; float UIMin = 0; float UIMax = 1;> = { 0.5 };
float TexCoordTransformV_1 : register(vs_2_0, c19) <string UIName = "Vertex ID 1 Rotation Center in V"; string UIWidget = "Slider"; float UIMin = 0; float UIMax = 1;> = { 0.5 };
float TexCoordTransformU_2 : register(vs_2_0, c20) <string UIName = "Vertex ID 2 Rotation Center in U"; string UIWidget = "Slider"; float UIMin = 0; float UIMax = 1;> = { 0.5 };
float TexCoordTransformV_2 : register(vs_2_0, c21) <string UIName = "Vertex ID 2 Rotation Center in V"; string UIWidget = "Slider"; float UIMin = 0; float UIMax = 1;> = { 0.5 };
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c22) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture";>; // 26
sampler2D ShroudTextureSampler : register(ps_2_0, s1) =
sampler_state
{
Texture = <ShroudTexture>; // 29
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
float Time : Time;
// VS_Array_Shader_0 Vertex_2_0 Has PRES True
struct VS_Array_Shader_0_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct VS_Array_Shader_0_Output
{
float4 position : POSITION;
float3 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 4
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 2
Mappings: 2
0 - ConstOutput: 14 ConstInput 1
1 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// add r0.x, c0.x, (-1)
temp0.x = MultiTextureEnable.x + (-1);
// mul r1.x, r0.x, r0.x
temp1.x = temp0.x * temp0.x;
// neg r0.x, r1.x
temp0.x = -temp1.x;
// ge c14.x, r0.x, r1.x
expr14.x = temp0.x >= temp1.x;
// mul r0.x, c1.x, c2.x
temp0.x = TexCoordTransformAngle_0.x * Time.x;
// mul r1.x, r0.x, (0.15915494309189535)
temp1.x = temp0.x * (0.15915494309189535);
// add r0.x, r1.x, (0.5)
temp0.x = temp1.x + (0.5);
// frc r1.x, r0.x
temp1.x = frac(temp0.x);
// mul r0.x, r1.x, (6.283185307179586)
temp0.x = temp1.x * (6.283185307179586);
// add r1.x, r0.x, (-3.141592653589793)
temp1.x = temp0.x + (-3.141592653589793);
// cos r0.x, r1.x
temp0.x = cos(temp1.x);
// sin r0.y, r1.x
temp0.y = sin(temp1.x);
// mov c11.x, r0.y
expr11.x = temp0.y;
// mov c12.x, r0.x
expr12.x = temp0.x;
}
VS_Array_Shader_0_Output o;
float4 temp0, temp1, temp2, temp3;
// def c0, 1, 0, 100, 0
// def c1, 0.5, 1.5, 2.5, 0
// dcl_position v0
// dcl_color v1
// dcl_texcoord v2
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 r1.z, r0, c126
temp1.z = dot(temp0, (World._m02_m12_m22_m32));
// mov r1.w, c0.x
temp1.w = float1(1);
// dp4 r1.x, r0, c124
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c125
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.x, r1, c119
o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r1, c120
o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r1, c121
o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r1, c122
o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33));
// add r0.xy, r1, c22.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oD0.xyz, v1, c15
o.color = i.color * ColorEmissive;
// mul oT2.xy, r0, c22
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oD1.x, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov r0.x, c18.x
temp0.x = TexCoordTransformU_1.x;
// mov r0.y, c19.x
temp0.y = TexCoordTransformV_1.x;
// add r0.zw, -r0.xyxy, v2.xyxy
temp0.zw = -temp0.xy + i.texcoord.xy;
// mul r1.xy, r0.wzzw, c12.x
temp1.xy = temp0.wz * expr12.xx;
// mad r2.xy, r0.wzzw, c11.x, r1.yxzw
temp2.xy = temp0.wz * expr11.xx + temp1.yx;
// mad r2.zw, r0, -c11.x, r1.xyxy
temp2.zw = temp0.zw * -expr11.xx + temp1.xy;
// add r0.zw, r0.xyxy, r2.xywy
temp0.zw = temp0.xy + temp2.wy;
// add r1.xy, r0, r2.xzzw
temp1.xy = temp0.xy + temp2.xz;
// add r0.xy, r0.zwzw, -r1
temp0.xy = temp0.zw + -temp1.xy;
// mad r1.zw, c14.x, r0.xyxy, r1.xyxy
temp1.zw = expr14.xx * temp0.xy + temp1.xy;
// mov r0.x, c20.x
temp0.x = TexCoordTransformU_2.x;
// mov r0.y, c21.x
temp0.y = TexCoordTransformV_2.x;
// add r0.zw, -r0.xyxy, v2.xyxy
temp0.zw = -temp0.xy + i.texcoord.xy;
// mul r2.xy, r0.wzzw, c12.x
temp2.xy = temp0.wz * expr12.xx;
// mad r3.xy, r0.wzzw, c11.x, r2.yxzw
temp3.xy = temp0.wz * expr11.xx + temp2.yx;
// mad r3.zw, r0, -c11.x, r2.xyxy
temp3.zw = temp0.zw * -expr11.xx + temp2.xy;
// add r0.zw, r0.xyxy, r3.xywy
temp0.zw = temp0.xy + temp3.wy;
// add r2.xy, r0, r3.xzzw
temp2.xy = temp0.xy + temp3.xz;
// add r0.xy, r0.zwzw, -r2
temp0.xy = temp0.zw + -temp2.xy;
// mad r2.zw, c14.x, r0.xyxy, r2.xyxy
temp2.zw = expr14.xx * temp0.xy + temp2.xy;
// mul r0.x, v1.w, c0.z
temp0.x = i.color.w * float1(100);
// slt r0.xyz, r0.x, c1
temp0.xyz = (temp0.xxx < float3(0.5, 1.5, 2.5)) ? 1 : 0;
// lrp r3, r0.z, r2, v2.xyxy
temp3 = lerp(i.texcoord.xyxy, temp2, temp0.z);
// lrp r2, r0.y, r1, r3
temp2 = lerp(temp3, temp1, temp0.y);
// mov r0.y, c16.x
temp0.y = TexCoordTransformU_0.x;
// mov r0.z, c17.x
temp0.z = TexCoordTransformV_0.x;
// add r1.xy, -r0.yzzw, v2
temp1.xy = -temp0.yz + i.texcoord.xy;
// mul r1.zw, r1.xyyx, c12.x
temp1.zw = temp1.yx * expr12.xx;
// mad r3.xy, r1.yxzw, c11.x, r1.wzzw
temp3.xy = temp1.yx * expr11.xx + temp1.wz;
// mad r3.zw, r1.xyxy, -c11.x, r1
temp3.zw = temp1.xy * -expr11.xx + temp1.zw;
// add r1.xy, r0.yzzw, r3.wyzw
temp1.xy = temp0.yz + temp3.wy;
// add r3.xy, r0.yzzw, r3.xzzw
temp3.xy = temp0.yz + temp3.xz;
// add r0.yz, r1.xxyw, -r3.xxyw
temp0.yz = temp1.xy + -temp3.xy;
// mad r3.zw, c14.x, r0.xyyz, r3.xyxy
temp3.zw = expr14.xx * temp0.yz + temp3.xy;
// lrp r1, r0.x, r3, r2
temp1 = lerp(temp2, temp3, temp0.x);
// mov oT0.xy, r1
o.texcoord = temp1;
// mov oT1.xy, r1.zwzw
o.texcoord1 = temp1.zwzw;
//
return o;
}
// VS_Array_Shader_1 Vertex_2_0 Has PRES True
struct VS_Array_Shader_1_Input
{
float4 blendindices : BLENDINDICES;
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct VS_Array_Shader_1_Output
{
float4 position : POSITION;
float3 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 4
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 2
Mappings: 2
0 - ConstOutput: 14 ConstInput 1
1 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// add r0.x, c0.x, (-1)
temp0.x = MultiTextureEnable.x + (-1);
// mul r1.x, r0.x, r0.x
temp1.x = temp0.x * temp0.x;
// neg r0.x, r1.x
temp0.x = -temp1.x;
// ge c14.x, r0.x, r1.x
expr14.x = temp0.x >= temp1.x;
// mul r0.x, c1.x, c2.x
temp0.x = TexCoordTransformAngle_0.x * Time.x;
// mul r1.x, r0.x, (0.15915494309189535)
temp1.x = temp0.x * (0.15915494309189535);
// add r0.x, r1.x, (0.5)
temp0.x = temp1.x + (0.5);
// frc r1.x, r0.x
temp1.x = frac(temp0.x);
// mul r0.x, r1.x, (6.283185307179586)
temp0.x = temp1.x * (6.283185307179586);
// add r1.x, r0.x, (-3.141592653589793)
temp1.x = temp0.x + (-3.141592653589793);
// cos r0.x, r1.x
temp0.x = cos(temp1.x);
// sin r0.y, r1.x
temp0.y = sin(temp1.x);
// mov c11.x, r0.y
expr11.x = temp0.y;
// mov c12.x, r0.x
expr12.x = temp0.x;
}
VS_Array_Shader_1_Output o;
float4 temp0, temp1, temp2, temp3;
float addr0;
// def c0, 1, -1, 100, 0
// def c1, 0.5, 1.5, 2.5, 0
// dcl_blendindices v0
// dcl_position v1
// dcl_color v2
// dcl_texcoord v3
// slt r0.x, v0.x, -v0.x
temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0;
// frc r0.y, v0.x
temp0.y = frac(i.blendindices.x);
// add r0.z, -r0.y, v0.x
temp0.z = -temp0.y + i.blendindices.x;
// slt r0.y, -r0.y, r0.y
temp0.y = (-temp0.y < temp0.y) ? 1 : 0;
// mad r0.x, r0.x, r0.y, r0.z
temp0.x = temp0.x * temp0.y + temp0.z;
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// mova a0.x, r0.x
addr0.x = temp0.x;
// mul r0, v1.zxyy, c128[a0.x].yzxy
temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy;
// mad r0, c128[a0.x].wwwx, v1.xyzx, r0
temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0;
// mul r1, v1.yzxz, c128[a0.x].zxyz
temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz;
// mad r0, r0, c0.xxxy, -r1
temp0 = temp0 * float4(1, 1, 1, -1) + -temp1;
// mul r1.xyz, r0.w, c128[a0.x]
temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz;
// mad r1.xyz, c128[a0.x].w, r0, -r1
temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz;
// mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1
temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz;
// mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1
temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz;
// add r0.xyz, r0, c129[a0.x]
temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz;
// mov r0.w, c0.x
temp0.w = float1(1);
// dp4 oPos.x, r0, c119
o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c120
o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c121
o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c122
o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// add r0.xy, r0, c22.zwzw
temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oD0.xyz, v2, c15
o.color = i.color * ColorEmissive;
// mul oT2.xy, r0, c22
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oD1.x, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov r0.x, c18.x
temp0.x = TexCoordTransformU_1.x;
// mov r0.y, c19.x
temp0.y = TexCoordTransformV_1.x;
// add r0.zw, -r0.xyxy, v3.xyxy
temp0.zw = -temp0.xy + i.texcoord.xy;
// mul r1.xy, r0.wzzw, c12.x
temp1.xy = temp0.wz * expr12.xx;
// mad r2.xy, r0.wzzw, c11.x, r1.yxzw
temp2.xy = temp0.wz * expr11.xx + temp1.yx;
// mad r2.zw, r0, -c11.x, r1.xyxy
temp2.zw = temp0.zw * -expr11.xx + temp1.xy;
// add r0.zw, r0.xyxy, r2.xywy
temp0.zw = temp0.xy + temp2.wy;
// add r1.xy, r0, r2.xzzw
temp1.xy = temp0.xy + temp2.xz;
// add r0.xy, r0.zwzw, -r1
temp0.xy = temp0.zw + -temp1.xy;
// mad r1.zw, c14.x, r0.xyxy, r1.xyxy
temp1.zw = expr14.xx * temp0.xy + temp1.xy;
// mov r0.x, c20.x
temp0.x = TexCoordTransformU_2.x;
// mov r0.y, c21.x
temp0.y = TexCoordTransformV_2.x;
// add r0.zw, -r0.xyxy, v3.xyxy
temp0.zw = -temp0.xy + i.texcoord.xy;
// mul r2.xy, r0.wzzw, c12.x
temp2.xy = temp0.wz * expr12.xx;
// mad r3.xy, r0.wzzw, c11.x, r2.yxzw
temp3.xy = temp0.wz * expr11.xx + temp2.yx;
// mad r3.zw, r0, -c11.x, r2.xyxy
temp3.zw = temp0.zw * -expr11.xx + temp2.xy;
// add r0.zw, r0.xyxy, r3.xywy
temp0.zw = temp0.xy + temp3.wy;
// add r2.xy, r0, r3.xzzw
temp2.xy = temp0.xy + temp3.xz;
// add r0.xy, r0.zwzw, -r2
temp0.xy = temp0.zw + -temp2.xy;
// mad r2.zw, c14.x, r0.xyxy, r2.xyxy
temp2.zw = expr14.xx * temp0.xy + temp2.xy;
// mul r0.x, v2.w, c0.z
temp0.x = i.color.w * float1(100);
// slt r0.xyz, r0.x, c1
temp0.xyz = (temp0.xxx < float3(0.5, 1.5, 2.5)) ? 1 : 0;
// lrp r3, r0.z, r2, v3.xyxy
temp3 = lerp(i.texcoord.xyxy, temp2, temp0.z);
// lrp r2, r0.y, r1, r3
temp2 = lerp(temp3, temp1, temp0.y);
// mov r0.y, c16.x
temp0.y = TexCoordTransformU_0.x;
// mov r0.z, c17.x
temp0.z = TexCoordTransformV_0.x;
// add r1.xy, -r0.yzzw, v3
temp1.xy = -temp0.yz + i.texcoord.xy;
// mul r1.zw, r1.xyyx, c12.x
temp1.zw = temp1.yx * expr12.xx;
// mad r3.xy, r1.yxzw, c11.x, r1.wzzw
temp3.xy = temp1.yx * expr11.xx + temp1.wz;
// mad r3.zw, r1.xyxy, -c11.x, r1
temp3.zw = temp1.xy * -expr11.xx + temp1.zw;
// add r1.xy, r0.yzzw, r3.wyzw
temp1.xy = temp0.yz + temp3.wy;
// add r3.xy, r0.yzzw, r3.xzzw
temp3.xy = temp0.yz + temp3.xz;
// add r0.yz, r1.xxyw, -r3.xxyw
temp0.yz = temp1.xy + -temp3.xy;
// mad r3.zw, c14.x, r0.xyyz, r3.xyxy
temp3.zw = expr14.xx * temp0.yz + temp3.xy;
// lrp r1, r0.x, r3, r2
temp1 = lerp(temp2, temp3, temp0.x);
// mov oT0.xy, r1
o.texcoord = temp1;
// mov oT1.xy, r1.zwzw
o.texcoord1 = temp1.zwzw;
//
return o;
}
// VS_Array_Shader_2 Vertex_2_0 Has PRES True
struct VS_Array_Shader_2_Input
{
float4 blendindices : BLENDINDICES;
float4 blendweight : BLENDWEIGHT;
float4 position : POSITION;
float4 position1 : POSITION1;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct VS_Array_Shader_2_Output
{
float4 position : POSITION;
float3 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 4
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 2
Mappings: 2
0 - ConstOutput: 14 ConstInput 1
1 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// add r0.x, c0.x, (-1)
temp0.x = MultiTextureEnable.x + (-1);
// mul r1.x, r0.x, r0.x
temp1.x = temp0.x * temp0.x;
// neg r0.x, r1.x
temp0.x = -temp1.x;
// ge c14.x, r0.x, r1.x
expr14.x = temp0.x >= temp1.x;
// mul r0.x, c1.x, c2.x
temp0.x = TexCoordTransformAngle_0.x * Time.x;
// mul r1.x, r0.x, (0.15915494309189535)
temp1.x = temp0.x * (0.15915494309189535);
// add r0.x, r1.x, (0.5)
temp0.x = temp1.x + (0.5);
// frc r1.x, r0.x
temp1.x = frac(temp0.x);
// mul r0.x, r1.x, (6.283185307179586)
temp0.x = temp1.x * (6.283185307179586);
// add r1.x, r0.x, (-3.141592653589793)
temp1.x = temp0.x + (-3.141592653589793);
// cos r0.x, r1.x
temp0.x = cos(temp1.x);
// sin r0.y, r1.x
temp0.y = sin(temp1.x);
// mov c11.x, r0.y
expr11.x = temp0.y;
// mov c12.x, r0.x
expr12.x = temp0.x;
}
VS_Array_Shader_2_Output o;
float4 temp0, temp1, temp2, temp3;
float2 addr0;
// def c0, 0.5, 1.5, 2.5, 0
// def c1, 1, -1, 100, 0
// dcl_blendindices v0
// dcl_blendweight v1
// dcl_position v2
// dcl_position1 v3
// dcl_color v4
// dcl_texcoord v5
// slt r0.xy, v0, -v0
temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0;
// frc r0.zw, v0.xyxy
temp0.zw = frac(i.blendindices.xy);
// add r1.xy, -r0.zwzw, v0
temp1.xy = -temp0.zw + i.blendindices.xy;
// slt r0.zw, -r0, r0
temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0;
// mad r0.xy, r0, r0.zwzw, r1
temp0.xy = temp0.xy * temp0.zw + temp1.xy;
// add r0.xy, r0, r0
temp0.xy = temp0.xy + temp0.xy;
// mova a0.xy, r0
addr0.xy = temp0.xy;
// mul r0, v3.zxyy, c128[a0.y].yzxy
temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy;
// mad r0, c128[a0.y].wwwx, v3.xyzx, r0
temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0;
// mul r1, v3.yzxz, c128[a0.y].zxyz
temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz;
// mad r0, r0, c1.xxxy, -r1
temp0 = temp0 * float4(1, 1, 1, -1) + -temp1;
// mul r1.xyz, r0.w, c128[a0.y]
temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz;
// mad r1.xyz, c128[a0.y].w, r0, -r1
temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz;
// mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1
temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz;
// mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1
temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz;
// add r0.xyz, r0, c129[a0.y]
temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz;
// mul r0.xyz, r0, v1.y
temp0.xyz = temp0.xyz * i.blendweight.yyy;
// mul r1, v2.zxyy, c128[a0.x].yzxy
temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy;
// mad r1, c128[a0.x].wwwx, v2.xyzx, r1
temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1;
// mul r2, v2.yzxz, c128[a0.x].zxyz
temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz;
// mad r1, r1, c1.xxxy, -r2
temp1 = temp1 * float4(1, 1, 1, -1) + -temp2;
// mul r2.xyz, r1.w, c128[a0.x]
temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz;
// mad r2.xyz, c128[a0.x].w, r1, -r2
temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz;
// mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2
temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz;
// mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2
temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz;
// add r1.xyz, r1, c129[a0.x]
temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz;
// mad r0.xyz, r1, v1.x, r0
temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz;
// mov r0.w, c1.x
temp0.w = float1(1);
// dp4 oPos.x, r0, c119
o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c120
o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c121
o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c122
o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// add r0.xy, r0, c22.zwzw
temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oD0.xyz, v4, c15
o.color = i.color * ColorEmissive;
// mul oT2.xy, r0, c22
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oD1.x, c1.x
o.color1 = float4(1, 1, 1, 1);
// mov r0.x, c18.x
temp0.x = TexCoordTransformU_1.x;
// mov r0.y, c19.x
temp0.y = TexCoordTransformV_1.x;
// add r0.zw, -r0.xyxy, v5.xyxy
temp0.zw = -temp0.xy + i.texcoord.xy;
// mul r1.xy, r0.wzzw, c12.x
temp1.xy = temp0.wz * expr12.xx;
// mad r2.xy, r0.wzzw, c11.x, r1.yxzw
temp2.xy = temp0.wz * expr11.xx + temp1.yx;
// mad r2.zw, r0, -c11.x, r1.xyxy
temp2.zw = temp0.zw * -expr11.xx + temp1.xy;
// add r0.zw, r0.xyxy, r2.xywy
temp0.zw = temp0.xy + temp2.wy;
// add r1.xy, r0, r2.xzzw
temp1.xy = temp0.xy + temp2.xz;
// add r0.xy, r0.zwzw, -r1
temp0.xy = temp0.zw + -temp1.xy;
// mad r1.zw, c14.x, r0.xyxy, r1.xyxy
temp1.zw = expr14.xx * temp0.xy + temp1.xy;
// mov r0.x, c20.x
temp0.x = TexCoordTransformU_2.x;
// mov r0.y, c21.x
temp0.y = TexCoordTransformV_2.x;
// add r0.zw, -r0.xyxy, v5.xyxy
temp0.zw = -temp0.xy + i.texcoord.xy;
// mul r2.xy, r0.wzzw, c12.x
temp2.xy = temp0.wz * expr12.xx;
// mad r3.xy, r0.wzzw, c11.x, r2.yxzw
temp3.xy = temp0.wz * expr11.xx + temp2.yx;
// mad r3.zw, r0, -c11.x, r2.xyxy
temp3.zw = temp0.zw * -expr11.xx + temp2.xy;
// add r0.zw, r0.xyxy, r3.xywy
temp0.zw = temp0.xy + temp3.wy;
// add r2.xy, r0, r3.xzzw
temp2.xy = temp0.xy + temp3.xz;
// add r0.xy, r0.zwzw, -r2
temp0.xy = temp0.zw + -temp2.xy;
// mad r2.zw, c14.x, r0.xyxy, r2.xyxy
temp2.zw = expr14.xx * temp0.xy + temp2.xy;
// mul r0.x, v4.w, c1.z
temp0.x = i.color.w * float1(100);
// slt r0.xyz, r0.x, c0
temp0.xyz = (temp0.xxx < float3(0.5, 1.5, 2.5)) ? 1 : 0;
// lrp r3, r0.z, r2, v5.xyxy
temp3 = lerp(i.texcoord.xyxy, temp2, temp0.z);
// lrp r2, r0.y, r1, r3
temp2 = lerp(temp3, temp1, temp0.y);
// mov r0.y, c16.x
temp0.y = TexCoordTransformU_0.x;
// mov r0.z, c17.x
temp0.z = TexCoordTransformV_0.x;
// add r1.xy, -r0.yzzw, v5
temp1.xy = -temp0.yz + i.texcoord.xy;
// mul r1.zw, r1.xyyx, c12.x
temp1.zw = temp1.yx * expr12.xx;
// mad r3.xy, r1.yxzw, c11.x, r1.wzzw
temp3.xy = temp1.yx * expr11.xx + temp1.wz;
// mad r3.zw, r1.xyxy, -c11.x, r1
temp3.zw = temp1.xy * -expr11.xx + temp1.zw;
// add r1.xy, r0.yzzw, r3.wyzw
temp1.xy = temp0.yz + temp3.wy;
// add r3.xy, r0.yzzw, r3.xzzw
temp3.xy = temp0.yz + temp3.xz;
// add r0.yz, r1.xxyw, -r3.xxyw
temp0.yz = temp1.xy + -temp3.xy;
// mad r3.zw, c14.x, r0.xyyz, r3.xyxy
temp3.zw = expr14.xx * temp0.yz + temp3.xy;
// lrp r1, r0.x, r3, r2
temp1 = lerp(temp2, temp3, temp0.x);
// mov oT0.xy, r1
o.texcoord = temp1;
// mov oT1.xy, r1.zwzw
o.texcoord1 = temp1.zwzw;
//
return o;
}
VertexShader VS_Array[3] = {
compile vs_2_0 VS_Array_Shader_0(), // 30
compile vs_2_0 VS_Array_Shader_1(), // 31
compile vs_2_0 VS_Array_Shader_2(), // 32
};
// Multiply_M_PixelShader4 Pixel_2_0 Has PRES False
struct Multiply_M_PixelShader4_Input
{
float3 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 Multiply_M_PixelShader4(Multiply_M_PixelShader4_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
// def c0, 1, -1, 0, 0
// dcl v0.xyz
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(Texture_0Sampler, i.texcoord.xy);
// texld r1, t1, s0
temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy);
// texld r2, t2, s1
temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// mov r3.xyz, v0
temp3.xyz = i.color.xyz;
// mov r3.w, r1.w
temp3.w = temp1.w;
// mul r0, r0, r3
temp0 = temp0 * temp3;
// mad r0.xyz, r0, r1, c0.y
temp0.xyz = temp0.xyz * temp1.xyz + float3(-1, -1, -1);
// mad r1.xyz, r2, r0, c0.x
temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1);
// mov r0.x, c0.x
temp0.x = float1(1);
// mul r1.w, r0.w, r0.x
temp1.w = temp0.w * temp0.x;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Multiply_M_Expression5 Expression_2_0 Has PRES False
float Multiply_M_Expression5()
{
float1 expr0;
// min c0.x, c0.x, (2)
expr0.x = min(NumJointsPerVertex.x, (2));
return expr0;
}
// Additive_M_PixelShader6 Pixel_2_0 Has PRES False
struct Additive_M_PixelShader6_Input
{
float3 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 Additive_M_PixelShader6(Additive_M_PixelShader6_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
// def c0, 1, 0, 0, 0
// dcl v0.xyz
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(Texture_0Sampler, i.texcoord.xy);
// texld r1, t1, s0
temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy);
// texld r2, t2, s1
temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// mov r3.xyz, v0
temp3.xyz = i.color.xyz;
// mov r3.w, r1.w
temp3.w = temp1.w;
// mul r0, r0, r3
temp0 = temp0 * temp3;
// mov r1.w, c0.x
temp1.w = float1(1);
// mul r0, r1, r0
temp0 = temp1 * temp0;
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Additive_M_Expression7 Expression_2_0 Has PRES False
float Additive_M_Expression7()
{
float1 expr0;
// min c0.x, c0.x, (2)
expr0.x = min(NumJointsPerVertex.x, (2));
return expr0;
}
// Multiply_PixelShader8 Pixel_2_0 Has PRES False
struct Multiply_PixelShader8_Input
{
float3 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 Multiply_PixelShader8(Multiply_PixelShader8_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
float3 temp4;
// def c0, 2.2, 1, -1, 0
// dcl v0.xyz
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(Texture_0Sampler, i.texcoord.xy);
// texld r1, t1, s0
temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy);
// texld r2, t2, s1
temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// mov r3.xyz, v0
temp3.xyz = i.color.xyz;
// log r4.x, r0.x
temp4.x = log2(temp0.x);
// log r4.y, r0.y
temp4.y = log2(temp0.y);
// log r4.z, r0.z
temp4.z = log2(temp0.z);
// mul r4.xyz, r4, c0.x
temp4.xyz = temp4.xyz * float3(2.2, 2.2, 2.2);
// exp r0.x, r4.x
temp0.x = exp2(temp4.x);
// exp r0.y, r4.y
temp0.y = exp2(temp4.y);
// exp r0.z, r4.z
temp0.z = exp2(temp4.z);
// mov r3.w, r1.w
temp3.w = temp1.w;
// mul r0, r3, r0
temp0 = temp3 * temp0;
// log r3.x, r1.x
temp3.x = log2(temp1.x);
// log r3.y, r1.y
temp3.y = log2(temp1.y);
// log r3.z, r1.z
temp3.z = log2(temp1.z);
// mul r1.xyz, r3, c0.x
temp1.xyz = temp3.xyz * float3(2.2, 2.2, 2.2);
// exp r3.x, r1.x
temp3.x = exp2(temp1.x);
// exp r3.y, r1.y
temp3.y = exp2(temp1.y);
// exp r3.z, r1.z
temp3.z = exp2(temp1.z);
// mad r0.xyz, r0, r3, c0.z
temp0.xyz = temp0.xyz * temp3.xyz + float3(-1, -1, -1);
// mad r1.xyz, r2, r0, c0.y
temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1);
// mov r0.x, c0.y
temp0.x = float1(1);
// mul r1.w, r0.w, r0.x
temp1.w = temp0.w * temp0.x;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Multiply_Expression9 Expression_2_0 Has PRES False
float Multiply_Expression9()
{
float1 expr0;
// min c0.x, c0.x, (2)
expr0.x = min(NumJointsPerVertex.x, (2));
return expr0;
}
// Additive_PixelShader10 Pixel_2_0 Has PRES False
struct Additive_PixelShader10_Input
{
float3 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 Additive_PixelShader10(Additive_PixelShader10_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
float3 temp4;
// def c0, 2.2, 1, 0, 0
// dcl v0.xyz
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(Texture_0Sampler, i.texcoord.xy);
// texld r1, t1, s0
temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy);
// texld r2, t2, s1
temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// mov r3.xyz, v0
temp3.xyz = i.color.xyz;
// log r4.x, r0.x
temp4.x = log2(temp0.x);
// log r4.y, r0.y
temp4.y = log2(temp0.y);
// log r4.z, r0.z
temp4.z = log2(temp0.z);
// mul r4.xyz, r4, c0.x
temp4.xyz = temp4.xyz * float3(2.2, 2.2, 2.2);
// exp r0.x, r4.x
temp0.x = exp2(temp4.x);
// exp r0.y, r4.y
temp0.y = exp2(temp4.y);
// exp r0.z, r4.z
temp0.z = exp2(temp4.z);
// mov r3.w, r1.w
temp3.w = temp1.w;
// mul r0, r3, r0
temp0 = temp3 * temp0;
// mov r3.w, c0.y
temp3.w = float1(1);
// log r4.x, r1.x
temp4.x = log2(temp1.x);
// log r4.y, r1.y
temp4.y = log2(temp1.y);
// log r4.z, r1.z
temp4.z = log2(temp1.z);
// mul r1.xyz, r4, c0.x
temp1.xyz = temp4.xyz * float3(2.2, 2.2, 2.2);
// exp r3.x, r1.x
temp3.x = exp2(temp1.x);
// exp r3.y, r1.y
temp3.y = exp2(temp1.y);
// exp r3.z, r1.z
temp3.z = exp2(temp1.z);
// mul r0, r0, r3
temp0 = temp0 * temp3;
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Additive_Expression11 Expression_2_0 Has PRES False
float Additive_Expression11()
{
float1 expr0;
// min c0.x, c0.x, (2)
expr0.x = min(NumJointsPerVertex.x, (2));
return expr0;
}
technique Additive
{
pass P0
{
VertexShader = VS_Array[Additive_Expression11()]; // 33
PixelShader = compile ps_2_0 Additive_PixelShader10(); // 34
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
AlphaTestEnable = 0;
}
}
technique Multiply
{
pass P0
{
VertexShader = VS_Array[Multiply_Expression9()]; // 35
PixelShader = compile ps_2_0 Multiply_PixelShader8(); // 36
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 9;
DestBlend = 1;
AlphaTestEnable = 0;
}
}
technique Additive_M
{
pass P0
{
VertexShader = VS_Array[Additive_M_Expression7()]; // 37
PixelShader = compile ps_2_0 Additive_M_PixelShader6(); // 38
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
AlphaTestEnable = 0;
}
}
technique Multiply_M
{
pass P0
{
VertexShader = VS_Array[Multiply_M_Expression5()]; // 39
PixelShader = compile ps_2_0 Multiply_M_PixelShader4(); // 40
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 9;
DestBlend = 1;
AlphaTestEnable = 0;
}
}