1046 lines
33 KiB
HLSL
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;
|
|
}
|
|
}
|
|
|