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

6055 lines
200 KiB
HLSL

string DefaultParameterScopeBlock = "material"; // 1
float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) <bool unmanaged = 1;> = { 0.3, 0.3, 0.3 };
struct
{
float3 Color;
float3 Direction;
} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) <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 };
int NumPointLights : register(ps_3_0, i0) <string SasBindAddress = "Sas.NumPointLights"; string UIWidget = "None";>;
struct
{
float3 Color;
float3 Position;
float2 Range_Inner_Outer;
} PointLight[6] : register(ps_3_0, c89) <bool unmanaged = 1;>;
struct
{
float4 WorldPositionMultiplier_XYZZ;
float2 CurrentOffsetUV;
} Cloud : register(vs_2_0, c117) : register(ps_3_0, c117) <bool unmanaged = 1;>;
float3 NoCloudMultiplier <bool unmanaged = 1;> = { 1, 1, 1 };
float3 RecolorColorDummy <bool unmanaged = 1;>;
column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) <bool unmanaged = 1;>;
float OpacityOverride <bool unmanaged = 1;> = { 1 };
float3 TintColor <bool unmanaged = 1;> = { 1, 1, 1 };
float3 EyePosition : register(vs_3_0, c123) <bool unmanaged = 1;>;
column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
float2 MapCellSize <string UIWidget = "None"; string SasBindAddress = "Terrain.Map.CellSize";> = { 10, 10 };
texture MacroSampler <string UIWidget = "None"; string SasBindAddress = "Terrain.MacroTexture"; string ResourceName = "ShaderPreviewMacro.dds";>; // 6
sampler2D MacroSamplerSampler : register(ps_3_0, s0) <string Texture = "MacroSampler"; string UIWidget = "None"; string SasBindAddress = "Terrain.MacroTexture"; string ResourceName = "ShaderPreviewMacro.dds";> =
sampler_state
{
Texture = <MacroSampler>; // 10
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
int _SasGlobal : SasGlobal <string UIWidget = "None"; int3 SasVersion = int3(1, 0, 0); int MaxLocalLights = 6;>;
texture BaseSamplerClamped <string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;>; // 16
sampler2D BaseSamplerClampedSampler <string Texture = "BaseSamplerClamped"; string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <BaseSamplerClamped>; // 19
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
MaxAnisotropy = 8;
AddressU = 3;
AddressV = 3;
};
texture BaseSamplerClamped_L <string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;>; // 23
sampler2D BaseSamplerClamped_LSampler <string Texture = "BaseSamplerClamped_L"; string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <BaseSamplerClamped_L>; // 26
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
MaxAnisotropy = 1;
AddressU = 3;
AddressV = 3;
};
texture BaseSamplerWrapped <string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;>; // 30
sampler2D BaseSamplerWrappedSampler <string Texture = "BaseSamplerWrapped"; string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <BaseSamplerWrapped>; // 33
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
MaxAnisotropy = 8;
AddressU = 1;
AddressV = 1;
};
texture BaseSamplerWrapped_L <string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;>; // 37
sampler2D BaseSamplerWrapped_LSampler <string Texture = "BaseSamplerWrapped_L"; string UIWidget = "None"; string SasBindAddress = "Terrain.BaseTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <BaseSamplerWrapped_L>; // 40
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
MaxAnisotropy = 1;
AddressU = 1;
AddressV = 1;
};
texture NormalSamplerClamped <string UIWidget = "None"; string SasBindAddress = "Terrain.NormalTexture"; int WW3DDynamicSet = 2;>; // 44
sampler2D NormalSamplerClampedSampler <string Texture = "NormalSamplerClamped"; string UIWidget = "None"; string SasBindAddress = "Terrain.NormalTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <NormalSamplerClamped>; // 47
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
MaxAnisotropy = 8;
AddressU = 3;
AddressV = 3;
};
texture NormalSamplerWrapped <string UIWidget = "None"; string SasBindAddress = "Terrain.NormalTexture"; int WW3DDynamicSet = 2;>; // 51
sampler2D NormalSamplerWrappedSampler <string Texture = "NormalSamplerWrapped"; string UIWidget = "None"; string SasBindAddress = "Terrain.NormalTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <NormalSamplerWrapped>; // 54
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
MaxAnisotropy = 8;
AddressU = 1;
AddressV = 1;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudSampler <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture";>; // 60
sampler2D ShroudSamplerSampler : register(ps_3_0, s3) <string Texture = "ShroudSampler"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture";> =
sampler_state
{
Texture = <ShroudSampler>; // 63
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
texture CloudSampler <string UIWidget = "None"; string SasBindAddress = "Terrain.Cloud.Texture"; string ResourceName = "ShaderPreviewCloud.dds";>; // 67
sampler2D CloudSamplerSampler : register(ps_2_0, s3) : register(ps_3_0, s4) <string Texture = "CloudSampler"; string UIWidget = "None"; string SasBindAddress = "Terrain.Cloud.Texture"; string ResourceName = "ShaderPreviewCloud.dds";> =
sampler_state
{
Texture = <CloudSampler>; // 71
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
bool IsTerrainAtlasEnabled <string UIWidget = "None"; string SasBindAddress = "Terrain.IsTerrainAtlasEnabled";>;
bool HasShadow <string UIWidget = "None"; string SasBindAddress = "Sas.HasShadow";>;
texture ShadowMap <string UIWidget = "None"; string SasBindAddress = "Sas.Shadow[0].ShadowMap";>; // 80
sampler2D ShadowMapSampler : register(ps_2_0, s4) : register(ps_3_0, s5) <string Texture = "ShadowMap"; string UIWidget = "None"; string SasBindAddress = "Sas.Shadow[0].ShadowMap";> =
sampler_state
{
Texture = <ShadowMap>; // 83
MinFilter = 1;
MagFilter = 1;
MipFilter = 0;
AddressU = 3;
AddressV = 3;
};
float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) <string UIWidget = "None"; string SasBindAddress = "Sas.Shadow[0].Zero_Zero_OneOverMapSize_OneOverMapSize";>;
float Time : Time;
// VS_TerrainTile_Array_Shader_0 Vertex_3_0 Has PRES False
struct VS_TerrainTile_Array_Shader_0_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 texcoord : TEXCOORD;
};
struct VS_TerrainTile_Array_Shader_0_Output
{
float4 position : POSITION;
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float4 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float4 texcoord6 : TEXCOORD6;
};
VS_TerrainTile_Array_Shader_0_Output VS_TerrainTile_Array_Shader_0(VS_TerrainTile_Array_Shader_0_Input i)
{
VS_TerrainTile_Array_Shader_0_Output o;
float4 temp0, temp1;
float3 temp2, temp3;
// def c0, 1, 0, -1, 0.5
// dcl_position v0
// dcl_normal v1
// dcl_texcoord v2
// dcl_position o0
// dcl_color o1
// dcl_color1 o2.x
// dcl_texcoord o3
// dcl_texcoord1 o4
// dcl_texcoord2 o5.xy
// dcl_texcoord3 o6.xyz
// dcl_texcoord4 o7
// dcl_texcoord5 o8.xyz
// dcl_texcoord6 o9
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 o0.x, r0, c119
o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30));
// dp4 o0.y, r0, c120
o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31));
// dp4 o0.z, r0, c121
o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// dp4 o0.w, r0, c122
o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// mul r1.xyz, c0.xyyw, v1.zxyw
temp1.xyz = float3(1, 0, 0) * i.normal.zxy;
// mad r1.xyz, v1.yzxw, c0.yyxw, -r1
temp1.xyz = i.normal.yzx * float3(0, 0, 1) + -temp1.xyz;
// dp3 o7.x, c6, -r1
o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz);
// mul r2.xyz, c0.yyzw, v1.zxyw
temp2.xyz = float3(0, 0, -1) * i.normal.zxy;
// mad r2.xyz, v1.yzxw, c0.yzyw, -r2
temp2.xyz = i.normal.yzx * float3(0, -1, 0) + -temp2.xyz;
// dp3 o7.y, c6, -r2
o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz);
// dp3 r1.w, c6, v1
temp1.w = dot(DirectionalLight[0].Direction.xyz, i.normal.xyz);
// max o7.w, r1.w, c0.y
o.texcoord4.w = max(temp1.w, float1(0));
// mov o7.z, r1.w
o.texcoord4.z = temp1.w;
// add r3.xyz, c123, -v0
temp3.xyz = EyePosition.xyz + -i.position.xyz;
// dp3 r1.w, r3, r3
temp1.w = dot(temp3.xyz, temp3.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mad r3.xyz, r3, r1.w, c6
temp3.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz;
// dp3 r1.x, r3, -r1
temp1.x = dot(temp3.xyz, -temp1.xyz);
// dp3 r1.y, r3, -r2
temp1.y = dot(temp3.xyz, -temp2.xyz);
// dp3 r1.z, r3, v1
temp1.z = dot(temp3.xyz, i.normal.xyz);
// dp3 r1.w, r1, r1
temp1.w = dot(temp1.xyz, temp1.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mul o8.xyz, r1, r1.w
o.texcoord5 = temp1 * temp1.w;
// dp3 r1.x, v1, c10
temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c9
temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz;
// dp3 r1.w, v1, c8
temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r1.w, r1.w, c0.y
temp1.w = max(temp1.w, float1(0));
// mad r1.xyz, c7, r1.w, r1
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul o1.xyz, r1, c0.w
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, c11.zwzw, v0
temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy;
// mul o5.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// dp4 o9.x, r0, c113
o.texcoord6.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 o9.y, r0, c114
o.texcoord6.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 o9.z, r0, c115
o.texcoord6.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 o9.w, r0, c116
o.texcoord6.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// mov o1.w, c0.x
o.color.w = float1(1);
// mov o2.x, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov o3.xy, v2
o.texcoord.xy = i.texcoord.xy;
// mov o3.zw, c0.y
o.texcoord.zw = float2(0, 0);
// mov o4, c0.y
o.texcoord1 = float4(0, 0, 0, 0);
// mov o6.xyz, v0
o.texcoord3 = i.position;
//
return o;
}
// VS_TerrainTile_Array_Shader_1 Vertex_3_0 Has PRES False
struct VS_TerrainTile_Array_Shader_1_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
};
struct VS_TerrainTile_Array_Shader_1_Output
{
float4 position : POSITION;
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float4 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float4 texcoord6 : TEXCOORD6;
};
VS_TerrainTile_Array_Shader_1_Output VS_TerrainTile_Array_Shader_1(VS_TerrainTile_Array_Shader_1_Input i)
{
VS_TerrainTile_Array_Shader_1_Output o;
float4 temp0, temp1;
float3 temp2, temp3, temp4;
// def c0, 0.01, -1, 3.333333E-05, -0
// def c1, 0, -1, 0.5, -0.0015
// dcl_position v0
// dcl_normal v1
// dcl_texcoord v2
// dcl_texcoord1 v3
// dcl_texcoord2 v4
// dcl_position o0
// dcl_color o1
// dcl_color1 o2.x
// dcl_texcoord o3
// dcl_texcoord1 o4
// dcl_texcoord2 o5.xy
// dcl_texcoord3 o6.xyz
// dcl_texcoord4 o7
// dcl_texcoord5 o8.xyz
// dcl_texcoord6 o9
// mul o3.xy, c0.z, v2
o.texcoord.xy = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord.xy;
// mul o4.xy, c0.z, v3
o.texcoord1.xy = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord1.xy;
// mul o4.zw, c0.z, v4.xyyx
o.texcoord1.zw = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord2.yx;
// add o3.w, c0.y, v0.w
o.texcoord.w = float1(-1) + i.position.w;
// add o3.z, c0.y, v1.w
o.texcoord.z = float1(-1) + i.normal.w;
// mad r0, v0.xyzx, -c0.yyyw, -c0.wwwy
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 o0.x, r0, c119
o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30));
// dp4 o0.y, r0, c120
o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31));
// dp4 o0.z, r0, c121
o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// dp4 o0.w, r0, c122
o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// mad r1.xyz, v1, c0.x, c0.y
temp1.xyz = i.normal.xyz * float3(0.01, 0.01, 0.01) + float3(-1, -1, -1);
// mul r2.xyz, r1.zxyw, -c0.ywww
temp2.xyz = temp1.zxy * float3(1, 0, 0);
// mad r2.xyz, r1.yzxw, -c0.wwyw, -r2
temp2.xyz = temp1.yzx * float3(0, 0, 1) + -temp2.xyz;
// dp3 o7.x, c6, -r2
o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz);
// mul r3.xyz, r1.zxyw, c1.xxyw
temp3.xyz = temp1.zxy * float3(0, 0, -1);
// mad r3.xyz, r1.yzxw, c1.xyxw, -r3
temp3.xyz = temp1.yzx * float3(0, -1, 0) + -temp3.xyz;
// dp3 o7.y, c6, -r3
o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz);
// dp3 r1.w, c6, r1
temp1.w = dot(DirectionalLight[0].Direction.xyz, temp1.xyz);
// max o7.w, r1.w, -c0.w
o.texcoord4.w = max(temp1.w, float1(0));
// mov o7.z, r1.w
o.texcoord4.z = temp1.w;
// add r4.xyz, c123, -v0
temp4.xyz = EyePosition.xyz + -i.position.xyz;
// dp3 r1.w, r4, r4
temp1.w = dot(temp4.xyz, temp4.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mad r4.xyz, r4, r1.w, c6
temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz;
// dp3 r2.x, r4, -r2
temp2.x = dot(temp4.xyz, -temp2.xyz);
// dp3 r2.y, r4, -r3
temp2.y = dot(temp4.xyz, -temp3.xyz);
// dp3 r2.z, r4, r1
temp2.z = dot(temp4.xyz, temp1.xyz);
// dp3 r1.w, r2, r2
temp1.w = dot(temp2.xyz, temp2.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mul o8.xyz, r2, r1.w
o.texcoord5 = temp2 * temp1.w;
// dp3 r1.w, r1, c10
temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz);
// dp3 r1.x, r1, c8
temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz);
// max r1.y, r1.w, -c0.w
temp1.y = max(temp1.w, float1(0));
// mul r1.yzw, r1.y, c9.xxyz
temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz;
// max r1.x, r1.x, -c0.w
temp1.x = max(temp1.x, float1(0));
// mad r1.xyz, c7, r1.x, r1.yzww
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul o1.xyz, r1, c1.z
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, c11.zwzw, v0
temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy;
// mul o5.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mov o1.w, -c0.y
o.color.w = float1(1);
// mov o2.x, -c0.y
o.color1 = float4(1, 1, 1, 1);
// mov o6.xyz, v0
o.texcoord3 = i.position;
// dp4 r1.x, r0, c113
temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 r1.y, r0, c114
temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 r1.z, r0, c115
temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 r0.x, r0, c116
temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// rcp r0.y, r0.x
temp0.y = 1.0f / temp0.x;
// mov o9.w, r0.x
o.texcoord6.w = temp0.x;
// mad o9.xyz, r1, r0.y, c1.xxww
o.texcoord6.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015);
//
return o;
}
VertexShader VS_TerrainTile_Array[2] = {
compile vs_3_0 VS_TerrainTile_Array_Shader_0(), // 89
compile vs_3_0 VS_TerrainTile_Array_Shader_1(), // 90
};
// PS_TerrainTile_Array_Shader_0 Pixel_3_0 Has PRES True
struct PS_TerrainTile_Array_Shader_0_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
};
float4 PS_TerrainTile_Array_Shader_0(PS_TerrainTile_Array_Shader_0_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c11.x, r0.x
expr11.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6;
float3 temp7;
// def c0, 0.75, 0, 1, -1
// def c1, -2, -3, -4, -5
// def c2, 1, -1, 2.2, 2
// def c3, 40, 0, 0, 0
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_texcoord5_centroid v6.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c2
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c11.x
temp1.zw = temp2.xy * expr11.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c2.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy);
// mad r0.xy, r0, c2.w, c2.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1);
// mad r0.w, r0.x, -r0.x, c2.x
temp0.w = temp0.x * -temp0.x + float1(1);
// mad r0.w, r0.y, -r0.y, r0.w
temp0.w = temp0.y * -temp0.y + temp0.w;
// rsq r0.w, r0.w
temp0.w = 1 / sqrt(temp0.w);
// rcp r3.z, r0.w
temp3.z = 1.0f / temp0.w;
// mul r3.xy, r0, c0.x
temp3.xy = temp0.xy * float2(0.75, 0.75);
// nrm r4.xyz, r3
temp4.xyz = normalize(temp3.xyz).xyz;
// mov r0.xyw, v0.xyzz
temp0.xyw = i.color.xyz;
// mov r3.x, c0.y
temp3.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r3.x, c1
temp5 = temp3.x + float4(-2, -3, -4, -5);
// add r3.xyz, r3.x, -c0.wyzw
temp3.xyz = temp3.xxx + float3(1, -0, -1);
// mov r6.y, c0.y
temp6.y = float1(0);
// cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y
temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy;
// cmp r7.xyz, -r3_abs.y, c90, r6.y
temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy;
// cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y
temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy;
// cmp r6.xyz, -r3_abs.z, c92, r6.xzww
temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw;
// cmp r7.xyz, -r3_abs.z, c93, r7
temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww
temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.x, c97.xxyw, r3
temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.y, c100.xxyw, r3
temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.z, c103.xxyw, r3
temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.w, c106.xxyw, r3
temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r3.y, r3.w
temp2.w = -temp3.y + temp3.w;
// add r3.y, -r3.y, r3.z
temp3.y = -temp3.y + temp3.z;
// rcp r3.y, r3.y
temp3.y = 1.0f / temp3.y;
// mad_sat r2.w, r2.w, -r3.y, c2.x
temp2.w = saturate(temp2.w * -temp3.y + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r3.yzw, r5.xxyz, r2.w
temp3.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r4, r6
temp2.w = dot(temp4.xyz, temp6.xyz);
// max r4.w, r2.w, c0.y
temp4.w = max(temp2.w, float1(0));
// mad r0.xyw, r3.yzzw, r4.w, r0
temp0.xyw = temp3.yzw * temp4.www + temp0.xyw;
// endrep
}
// mul r0.xyw, r2.xyzz, r0
temp0.xyw = temp2.xyz * temp0.xyw;
// add r0.xyw, r0, r0
temp0.xyw = temp0.xyw + temp0.xyw;
// dp3 r2.w, r4, v5
temp2.w = dot(temp4.xyz, i.texcoord4.xyz);
// dp3 r3.x, r4, v6
temp3.x = dot(temp4.xyz, i.texcoord5.xyz);
// cmp r3.y, -r2.w, c0.y, c0.z
temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r2.w, r2.w, r3.y
temp2.w = temp2.w * temp3.y;
// cmp r3.z, -r3.x, c0.y, c0.z
temp3.z = (-temp3.x >= 0) ? float1(0) : float1(1);
// mul r3.y, r3.y, r3.z
temp3.y = temp3.y * temp3.z;
// pow r4.x, r3.x, c3.x
temp4.x = pow(temp3.x, float1(40));
// mul r3.x, r3.y, r4.x
temp3.x = temp3.y * temp4.x;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r3.y, r4.x
temp3.y = log2(temp4.x);
// log r3.z, r4.y
temp3.z = log2(temp4.y);
// log r3.w, r4.z
temp3.w = log2(temp4.z);
// mul r3.yzw, r3, c2.z
temp3.yzw = temp3.yzw * float3(2.2, 2.2, 2.2);
// exp r4.x, r3.y
temp4.x = exp2(temp3.y);
// exp r4.y, r3.z
temp4.y = exp2(temp3.z);
// exp r4.z, r3.w
temp4.z = exp2(temp3.w);
// mul r3.yzw, r4.xxyz, c5.xxyz
temp3.yzw = temp4.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.z, r3.x, r0.z, c0.y
temp0.z = dot(temp3.xx, temp0.zz) + float1(0);
// mad r2.xyz, r2.w, r2, r0.z
temp2.xyz = temp2.www * temp2.xyz + temp0.zzz;
// mad r0.xyz, r3.yzww, r2, r0.xyww
temp0.xyz = temp3.yzw * temp2.xyz + temp0.xyw;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c2.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c2.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c2.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
// mov oC0.w, v0.w
out_color.w = i.color.w;
//
return out_color;
}
// PS_TerrainTile_Array_Shader_1 Pixel_3_0 Has PRES True
struct PS_TerrainTile_Array_Shader_1_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float4 texcoord6 : TEXCOORD6;
};
float4 PS_TerrainTile_Array_Shader_1(PS_TerrainTile_Array_Shader_1_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8;
// def c0, 0.75, 0, 1, -1
// def c1, -2, -3, -4, -5
// def c2, 40, -0.0015, 0.25, 0
// def c3, 1, -1, 2.2, 2
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_texcoord5_centroid v6.xyz
// dcl_texcoord6 v7
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// dcl_2d s5
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c3
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c12.x
temp1.zw = temp2.xy * expr12.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c3.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy);
// mad r0.xy, r0, c3.w, c3.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1);
// mad r0.w, r0.x, -r0.x, c3.x
temp0.w = temp0.x * -temp0.x + float1(1);
// mad r0.w, r0.y, -r0.y, r0.w
temp0.w = temp0.y * -temp0.y + temp0.w;
// rsq r0.w, r0.w
temp0.w = 1 / sqrt(temp0.w);
// rcp r3.z, r0.w
temp3.z = 1.0f / temp0.w;
// mul r3.xy, r0, c0.x
temp3.xy = temp0.xy * float2(0.75, 0.75);
// nrm r4.xyz, r3
temp4.xyz = normalize(temp3.xyz).xyz;
// mov r0.xyw, v0.xyzz
temp0.xyw = i.color.xyz;
// mov r3.x, c0.y
temp3.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r3.x, c1
temp5 = temp3.x + float4(-2, -3, -4, -5);
// add r3.xyz, r3.x, -c0.wyzw
temp3.xyz = temp3.xxx + float3(1, -0, -1);
// mov r6.y, c0.y
temp6.y = float1(0);
// cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y
temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy;
// cmp r7.xyz, -r3_abs.y, c90, r6.y
temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy;
// cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y
temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy;
// cmp r6.xyz, -r3_abs.z, c92, r6.xzww
temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw;
// cmp r7.xyz, -r3_abs.z, c93, r7
temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww
temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.x, c97.xxyw, r3
temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.y, c100.xxyw, r3
temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.z, c103.xxyw, r3
temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.w, c106.xxyw, r3
temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r3.y, r3.w
temp2.w = -temp3.y + temp3.w;
// add r3.y, -r3.y, r3.z
temp3.y = -temp3.y + temp3.z;
// rcp r3.y, r3.y
temp3.y = 1.0f / temp3.y;
// mad_sat r2.w, r2.w, -r3.y, c3.x
temp2.w = saturate(temp2.w * -temp3.y + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r3.yzw, r5.xxyz, r2.w
temp3.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r4, r6
temp2.w = dot(temp4.xyz, temp6.xyz);
// max r4.w, r2.w, c0.y
temp4.w = max(temp2.w, float1(0));
// mad r0.xyw, r3.yzzw, r4.w, r0
temp0.xyw = temp3.yzw * temp4.www + temp0.xyw;
// endrep
}
// mul r0.xyw, r2.xyzz, r0
temp0.xyw = temp2.xyz * temp0.xyw;
// add r0.xyw, r0, r0
temp0.xyw = temp0.xyw + temp0.xyw;
// dp3 r2.w, r4, v5
temp2.w = dot(temp4.xyz, i.texcoord4.xyz);
// dp3 r3.x, r4, v6
temp3.x = dot(temp4.xyz, i.texcoord5.xyz);
// cmp r3.y, -r2.w, c0.y, c0.z
temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r3.z, r2.w, r3.y
temp3.z = temp2.w * temp3.y;
// cmp r2.w, -r3.x, c0.y, c0.z
temp2.w = (-temp3.x >= 0) ? float1(0) : float1(1);
// mul r2.w, r3.y, r2.w
temp2.w = temp3.y * temp2.w;
// pow r4.x, r3.x, c2.x
temp4.x = pow(temp3.x, float1(40));
// mul r3.w, r2.w, r4.x
temp3.w = temp2.w * temp4.x;
// rcp r2.w, v7.w
temp2.w = 1.0f / i.texcoord6.w;
// mul r3.xy, r2.w, v7
temp3.xy = temp2.ww * i.texcoord6.xy;
// mad r4.x, v7.z, r2.w, c2.y
temp4.x = i.texcoord6.z * temp2.w + float1(-0.0015);
// texld r5, r3, s5
temp5 = tex2D(ShadowMapSampler, temp3.xy);
// mad r3.xy, v7, r2.w, c11.zxzw
temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx;
// texld r6, r3, s5
temp6 = tex2D(ShadowMapSampler, temp3.xy);
// mad r3.xy, v7, r2.w, c11.yzzw
temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz;
// texld r7, r3, s5
temp7 = tex2D(ShadowMapSampler, temp3.xy);
// mad r3.xy, v7, r2.w, c11.wzzw
temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz;
// texld r8, r3, s5
temp8 = tex2D(ShadowMapSampler, temp3.xy);
// mov r5.y, r6.x
temp5.y = temp6.x;
// mov r5.z, r7.x
temp5.z = temp7.x;
// mov r5.w, r8.x
temp5.w = temp8.x;
// add r4, -r4.x, r5
temp4 = -temp4.x + temp5;
// cmp r4, r4, c0.z, c0.y
temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r2.w, c3.x, r4
temp2.w = dot(float4(1, 1, 1, 1), temp4);
// mul r2.w, r2.w, c2.z
temp2.w = temp2.w * float1(0.25);
// mul r3.xy, r3.zwzw, r2.w
temp3.xy = temp3.zw * temp2.ww;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r5.x, r4.x
temp5.x = log2(temp4.x);
// log r5.y, r4.y
temp5.y = log2(temp4.y);
// log r5.z, r4.z
temp5.z = log2(temp4.z);
// mul r4.xyz, r5, c3.z
temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2);
// exp r5.x, r4.x
temp5.x = exp2(temp4.x);
// exp r5.y, r4.y
temp5.y = exp2(temp4.y);
// exp r5.z, r4.z
temp5.z = exp2(temp4.z);
// mul r4.xyz, r5, c5
temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.z, r3.y, r0.z, c0.y
temp0.z = dot(temp3.yy, temp0.zz) + float1(0);
// mad r2.xyz, r3.x, r2, r0.z
temp2.xyz = temp3.xxx * temp2.xyz + temp0.zzz;
// mad r0.xyz, r4, r2, r0.xyww
temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyw;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c3.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c3.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c3.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
// mov oC0.w, v0.w
out_color.w = i.color.w;
//
return out_color;
}
// PS_TerrainTile_Array_Shader_2 Pixel_3_0 Has PRES True
struct PS_TerrainTile_Array_Shader_2_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
};
float4 PS_TerrainTile_Array_Shader_2(PS_TerrainTile_Array_Shader_2_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c11.x, r0.x
expr11.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6;
float3 temp7;
// def c0, -2, -3, -4, -5
// def c1, 0.75, 1, 0, -1
// def c2, 1, -1, 2.2, 2
// def c3, 40, 0, 0, 0
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2
// dcl_texcoord1 v3
// dcl_texcoord2 v4.xy
// dcl_texcoord3 v5.xyz
// dcl_texcoord4 v6.xyz
// dcl_texcoord5_centroid v7.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v5.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v5, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c2
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c11.x
temp1.zw = temp2.xy * expr11.xx;
// mul r1.zw, r1, v5.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// mov_sat r2.xy, v2.wzzw
temp2.xy = saturate(i.texcoord.wz);
// texld r3, v3, s1
temp3 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy);
// texld r4, v3.wzzw, s1
temp4 = tex2D(BaseSamplerClampedSampler, i.texcoord1.wz);
// lrp r5, r2.x, r3, r0
temp5 = lerp(temp0, temp3, temp2.x);
// lrp r0, r2.y, r4, r5
temp0 = lerp(temp5, temp4, temp2.y);
// log r3.x, r0.x
temp3.x = log2(temp0.x);
// log r3.y, r0.y
temp3.y = log2(temp0.y);
// log r3.z, r0.z
temp3.z = log2(temp0.z);
// mul r0.xyz, r3, c2.z
temp0.xyz = temp3.xyz * float3(2.2, 2.2, 2.2);
// exp r3.x, r0.x
temp3.x = exp2(temp0.x);
// exp r3.y, r0.y
temp3.y = exp2(temp0.y);
// exp r3.z, r0.z
temp3.z = exp2(temp0.z);
// texld r4, v2, s2
temp4 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy);
// texld r5, v3, s2
temp5 = tex2D(NormalSamplerClampedSampler, i.texcoord1.xy);
// texld r6, v3.wzzw, s2
temp6 = tex2D(NormalSamplerClampedSampler, i.texcoord1.wz);
// lrp r0.xyz, r2.x, r5, r4
temp0.xyz = lerp(temp4.xyz, temp5.xyz, temp2.xxx);
// lrp r4.xyz, r2.y, r6, r0
temp4.xyz = lerp(temp0.xyz, temp6.xyz, temp2.yyy);
// mad r0.xyz, r4, c2.w, c2.y
temp0.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mul r0.xyz, r0, c1.xxyw
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1);
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// mov r0.xyz, v0
temp0.xyz = i.color.xyz;
// mov r4.x, c1.z
temp4.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r4.x, c0
temp5 = temp4.x + float4(-2, -3, -4, -5);
// add r4.xyz, r4.x, -c1.wzyw
temp4.xyz = temp4.xxx + float3(1, -0, -1);
// mov r6.z, c1.z
temp6.z = float1(0);
// cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z
temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz;
// cmp r7.xyz, -r4_abs.y, c90, r6.z
temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz;
// cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z
temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz;
// cmp r6.xyz, -r4_abs.z, c92, r6.xyww
temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw;
// cmp r7.xyz, -r4_abs.z, c93, r7
temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww
temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.x, c97.xxyw, r4
temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.y, c100.xxyw, r4
temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.z, c103.xxyw, r4
temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.w, c106.xxyw, r4
temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz;
// add r6.xyz, r6, -v5
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r4.y, r3.w
temp2.w = -temp4.y + temp3.w;
// add r3.w, -r4.y, r4.z
temp3.w = -temp4.y + temp4.z;
// rcp r3.w, r3.w
temp3.w = 1.0f / temp3.w;
// mad_sat r2.w, r2.w, -r3.w, c2.x
temp2.w = saturate(temp2.w * -temp3.w + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r4.yzw, r5.xxyz, r2.w
temp4.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r2, r6
temp2.w = dot(temp2.xyz, temp6.xyz);
// max r3.w, r2.w, c1.z
temp3.w = max(temp2.w, float1(0));
// mad r0.xyz, r4.yzww, r3.w, r0
temp0.xyz = temp4.yzw * temp3.www + temp0.xyz;
// endrep
}
// mul r0.xyz, r3, r0
temp0.xyz = temp3.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// dp3 r2.w, r2, v6
temp2.w = dot(temp2.xyz, i.texcoord4.xyz);
// dp3 r2.x, r2, v7
temp2.x = dot(temp2.xyz, i.texcoord5.xyz);
// cmp r2.y, -r2.w, c1.z, c1.y
temp2.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r2.z, r2.w, r2.y
temp2.z = temp2.w * temp2.y;
// cmp r2.w, -r2.x, c1.z, c1.y
temp2.w = (-temp2.x >= 0) ? float1(0) : float1(1);
// mul r2.y, r2.y, r2.w
temp2.y = temp2.y * temp2.w;
// pow r3.w, r2.x, c3.x
temp3.w = pow(temp2.x, float1(40));
// mul r2.x, r2.y, r3.w
temp2.x = temp2.y * temp3.w;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r5.x, r4.x
temp5.x = log2(temp4.x);
// log r5.y, r4.y
temp5.y = log2(temp4.y);
// log r5.z, r4.z
temp5.z = log2(temp4.z);
// mul r4.xyz, r5, c2.z
temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2);
// exp r5.x, r4.x
temp5.x = exp2(temp4.x);
// exp r5.y, r4.y
temp5.y = exp2(temp4.y);
// exp r5.z, r4.z
temp5.z = exp2(temp4.z);
// mul r4.xyz, r5, c5
temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.w, r2.x, r0.w, c1.z
temp0.w = dot(temp2.xx, temp0.ww) + float1(0);
// mad r2.xyz, r2.z, r3, r0.w
temp2.xyz = temp2.zzz * temp3.xyz + temp0.www;
// mad r0.xyz, r4, r2, r0
temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyz;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c2.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c2.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c2.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v4, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
// mov oC0.w, v0.w
out_color.w = i.color.w;
//
return out_color;
}
// PS_TerrainTile_Array_Shader_3 Pixel_3_0 Has PRES True
struct PS_TerrainTile_Array_Shader_3_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float3 texcoord6 : TEXCOORD6;
};
float4 PS_TerrainTile_Array_Shader_3(PS_TerrainTile_Array_Shader_3_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
// def c0, -2, -3, -4, -5
// def c1, 40, 0.25, 0, 0
// def c2, 0.75, 1, 0, -1
// def c3, 1, -1, 2.2, 2
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2
// dcl_texcoord1 v3
// dcl_texcoord2 v4.xy
// dcl_texcoord3 v5.xyz
// dcl_texcoord4 v6.xyz
// dcl_texcoord5_centroid v7.xyz
// dcl_texcoord6 v8.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// dcl_2d s5
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v5.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v5, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c3
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c12.x
temp1.zw = temp2.xy * expr12.xx;
// mul r1.zw, r1, v5.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// mov_sat r2.xy, v2.wzzw
temp2.xy = saturate(i.texcoord.wz);
// texld r3, v3, s1
temp3 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy);
// texld r4, v3.wzzw, s1
temp4 = tex2D(BaseSamplerClampedSampler, i.texcoord1.wz);
// lrp r5, r2.x, r3, r0
temp5 = lerp(temp0, temp3, temp2.x);
// lrp r0, r2.y, r4, r5
temp0 = lerp(temp5, temp4, temp2.y);
// log r3.x, r0.x
temp3.x = log2(temp0.x);
// log r3.y, r0.y
temp3.y = log2(temp0.y);
// log r3.z, r0.z
temp3.z = log2(temp0.z);
// mul r0.xyz, r3, c3.z
temp0.xyz = temp3.xyz * float3(2.2, 2.2, 2.2);
// exp r3.x, r0.x
temp3.x = exp2(temp0.x);
// exp r3.y, r0.y
temp3.y = exp2(temp0.y);
// exp r3.z, r0.z
temp3.z = exp2(temp0.z);
// texld r4, v2, s2
temp4 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy);
// texld r5, v3, s2
temp5 = tex2D(NormalSamplerClampedSampler, i.texcoord1.xy);
// texld r6, v3.wzzw, s2
temp6 = tex2D(NormalSamplerClampedSampler, i.texcoord1.wz);
// lrp r0.xyz, r2.x, r5, r4
temp0.xyz = lerp(temp4.xyz, temp5.xyz, temp2.xxx);
// lrp r4.xyz, r2.y, r6, r0
temp4.xyz = lerp(temp0.xyz, temp6.xyz, temp2.yyy);
// mad r0.xyz, r4, c3.w, c3.y
temp0.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mul r0.xyz, r0, c2.xxyw
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1);
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// mov r0.xyz, v0
temp0.xyz = i.color.xyz;
// mov r4.x, c2.z
temp4.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r4.x, c0
temp5 = temp4.x + float4(-2, -3, -4, -5);
// add r4.xyz, r4.x, -c2.wzyw
temp4.xyz = temp4.xxx + float3(1, -0, -1);
// mov r6.z, c2.z
temp6.z = float1(0);
// cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z
temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz;
// cmp r7.xyz, -r4_abs.y, c90, r6.z
temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz;
// cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z
temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz;
// cmp r6.xyz, -r4_abs.z, c92, r6.xyww
temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw;
// cmp r7.xyz, -r4_abs.z, c93, r7
temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww
temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.x, c97.xxyw, r4
temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.y, c100.xxyw, r4
temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.z, c103.xxyw, r4
temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.w, c106.xxyw, r4
temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz;
// add r6.xyz, r6, -v5
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r4.y, r3.w
temp2.w = -temp4.y + temp3.w;
// add r3.w, -r4.y, r4.z
temp3.w = -temp4.y + temp4.z;
// rcp r3.w, r3.w
temp3.w = 1.0f / temp3.w;
// mad_sat r2.w, r2.w, -r3.w, c3.x
temp2.w = saturate(temp2.w * -temp3.w + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r4.yzw, r5.xxyz, r2.w
temp4.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r2, r6
temp2.w = dot(temp2.xyz, temp6.xyz);
// max r3.w, r2.w, c2.z
temp3.w = max(temp2.w, float1(0));
// mad r0.xyz, r4.yzww, r3.w, r0
temp0.xyz = temp4.yzw * temp3.www + temp0.xyz;
// endrep
}
// mul r0.xyz, r3, r0
temp0.xyz = temp3.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// dp3 r2.w, r2, v6
temp2.w = dot(temp2.xyz, i.texcoord4.xyz);
// dp3 r2.x, r2, v7
temp2.x = dot(temp2.xyz, i.texcoord5.xyz);
// cmp r2.y, -r2.w, c2.z, c2.y
temp2.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r2.z, r2.w, r2.y
temp2.z = temp2.w * temp2.y;
// cmp r3.w, -r2.x, c2.z, c2.y
temp3.w = (-temp2.x >= 0) ? float1(0) : float1(1);
// mul r2.y, r2.y, r3.w
temp2.y = temp2.y * temp3.w;
// pow r3.w, r2.x, c1.x
temp3.w = pow(temp2.x, float1(40));
// mul r2.w, r2.y, r3.w
temp2.w = temp2.y * temp3.w;
// texld r4, v8, s5
temp4 = tex2D(ShadowMapSampler, i.texcoord6.xy);
// add r2.xy, c11.zxzw, v8
temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord6.xy;
// texld r5, r2, s5
temp5 = tex2D(ShadowMapSampler, temp2.xy);
// add r2.xy, c11.yzzw, v8
temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord6.xy;
// texld r6, r2, s5
temp6 = tex2D(ShadowMapSampler, temp2.xy);
// add r2.xy, c11.wzzw, v8
temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord6.xy;
// texld r7, r2, s5
temp7 = tex2D(ShadowMapSampler, temp2.xy);
// mov r4.y, r5.x
temp4.y = temp5.x;
// mov r4.z, r6.x
temp4.z = temp6.x;
// mov r4.w, r7.x
temp4.w = temp7.x;
// add r4, r4, -v8.z
temp4 = temp4 + -i.texcoord6.z;
// cmp r4, r4, c2.y, c2.z
temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r2.x, c3.x, r4
temp2.x = dot(float4(1, 1, 1, 1), temp4);
// mul r2.x, r2.x, c1.y
temp2.x = temp2.x * float1(0.25);
// mul r2.xy, r2.zwzw, r2.x
temp2.xy = temp2.zw * temp2.xx;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r5.x, r4.x
temp5.x = log2(temp4.x);
// log r5.y, r4.y
temp5.y = log2(temp4.y);
// log r5.z, r4.z
temp5.z = log2(temp4.z);
// mul r4.xyz, r5, c3.z
temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2);
// exp r5.x, r4.x
temp5.x = exp2(temp4.x);
// exp r5.y, r4.y
temp5.y = exp2(temp4.y);
// exp r5.z, r4.z
temp5.z = exp2(temp4.z);
// mul r4.xyz, r5, c5
temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.w, r2.y, r0.w, c2.z
temp0.w = dot(temp2.yy, temp0.ww) + float1(0);
// mad r2.xyz, r2.x, r3, r0.w
temp2.xyz = temp2.xxx * temp3.xyz + temp0.www;
// mad r0.xyz, r4, r2, r0
temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyz;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c3.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c3.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c3.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v4, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
// mov oC0.w, v0.w
out_color.w = i.color.w;
//
return out_color;
}
PixelShader PS_TerrainTile_Array[4] = {
compile ps_3_0 PS_TerrainTile_Array_Shader_0(), // 91
compile ps_3_0 PS_TerrainTile_Array_Shader_1(), // 92
compile ps_3_0 PS_TerrainTile_Array_Shader_2(), // 93
compile ps_3_0 PS_TerrainTile_Array_Shader_3(), // 94
};
// PS_Cliff_Array_Shader_0 Pixel_3_0 Has PRES True
struct PS_Cliff_Array_Shader_0_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
};
float4 PS_Cliff_Array_Shader_0(PS_Cliff_Array_Shader_0_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c11.x, r0.x
expr11.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6;
float3 temp7;
// def c0, 0.75, 0, 1, -1
// def c1, -2, -3, -4, -5
// def c2, 1, -1, 2.2, 2
// def c3, 40, 0, 0, 0
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_texcoord5_centroid v6.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c2
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c11.x
temp1.zw = temp2.xy * expr11.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c2.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy);
// mad r0.xy, r0, c2.w, c2.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1);
// mad r0.w, r0.x, -r0.x, c2.x
temp0.w = temp0.x * -temp0.x + float1(1);
// mad r0.w, r0.y, -r0.y, r0.w
temp0.w = temp0.y * -temp0.y + temp0.w;
// rsq r0.w, r0.w
temp0.w = 1 / sqrt(temp0.w);
// rcp r3.z, r0.w
temp3.z = 1.0f / temp0.w;
// mul r3.xy, r0, c0.x
temp3.xy = temp0.xy * float2(0.75, 0.75);
// nrm r4.xyz, r3
temp4.xyz = normalize(temp3.xyz).xyz;
// mov r0.xyw, v0.xyzz
temp0.xyw = i.color.xyz;
// mov r3.x, c0.y
temp3.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r3.x, c1
temp5 = temp3.x + float4(-2, -3, -4, -5);
// add r3.xyz, r3.x, -c0.wyzw
temp3.xyz = temp3.xxx + float3(1, -0, -1);
// mov r6.y, c0.y
temp6.y = float1(0);
// cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y
temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy;
// cmp r7.xyz, -r3_abs.y, c90, r6.y
temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy;
// cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y
temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy;
// cmp r6.xyz, -r3_abs.z, c92, r6.xzww
temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw;
// cmp r7.xyz, -r3_abs.z, c93, r7
temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww
temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.x, c97.xxyw, r3
temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.y, c100.xxyw, r3
temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.z, c103.xxyw, r3
temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.w, c106.xxyw, r3
temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r3.y, r3.w
temp2.w = -temp3.y + temp3.w;
// add r3.y, -r3.y, r3.z
temp3.y = -temp3.y + temp3.z;
// rcp r3.y, r3.y
temp3.y = 1.0f / temp3.y;
// mad_sat r2.w, r2.w, -r3.y, c2.x
temp2.w = saturate(temp2.w * -temp3.y + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r3.yzw, r5.xxyz, r2.w
temp3.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r4, r6
temp2.w = dot(temp4.xyz, temp6.xyz);
// max r4.w, r2.w, c0.y
temp4.w = max(temp2.w, float1(0));
// mad r0.xyw, r3.yzzw, r4.w, r0
temp0.xyw = temp3.yzw * temp4.www + temp0.xyw;
// endrep
}
// mul r0.xyw, r2.xyzz, r0
temp0.xyw = temp2.xyz * temp0.xyw;
// add r0.xyw, r0, r0
temp0.xyw = temp0.xyw + temp0.xyw;
// dp3 r2.w, r4, v5
temp2.w = dot(temp4.xyz, i.texcoord4.xyz);
// dp3 r3.x, r4, v6
temp3.x = dot(temp4.xyz, i.texcoord5.xyz);
// cmp r3.y, -r2.w, c0.y, c0.z
temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r2.w, r2.w, r3.y
temp2.w = temp2.w * temp3.y;
// cmp r3.z, -r3.x, c0.y, c0.z
temp3.z = (-temp3.x >= 0) ? float1(0) : float1(1);
// mul r3.y, r3.y, r3.z
temp3.y = temp3.y * temp3.z;
// pow r4.x, r3.x, c3.x
temp4.x = pow(temp3.x, float1(40));
// mul r3.x, r3.y, r4.x
temp3.x = temp3.y * temp4.x;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r3.y, r4.x
temp3.y = log2(temp4.x);
// log r3.z, r4.y
temp3.z = log2(temp4.y);
// log r3.w, r4.z
temp3.w = log2(temp4.z);
// mul r3.yzw, r3, c2.z
temp3.yzw = temp3.yzw * float3(2.2, 2.2, 2.2);
// exp r4.x, r3.y
temp4.x = exp2(temp3.y);
// exp r4.y, r3.z
temp4.y = exp2(temp3.z);
// exp r4.z, r3.w
temp4.z = exp2(temp3.w);
// mul r3.yzw, r4.xxyz, c5.xxyz
temp3.yzw = temp4.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.z, r3.x, r0.z, c0.y
temp0.z = dot(temp3.xx, temp0.zz) + float1(0);
// mad r2.xyz, r2.w, r2, r0.z
temp2.xyz = temp2.www * temp2.xyz + temp0.zzz;
// mad r0.xyz, r3.yzww, r2, r0.xyww
temp0.xyz = temp3.yzw * temp2.xyz + temp0.xyw;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c2.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c2.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c2.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
// mov oC0.w, v0.w
out_color.w = i.color.w;
//
return out_color;
}
// PS_Cliff_Array_Shader_1 Pixel_3_0 Has PRES True
struct PS_Cliff_Array_Shader_1_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float3 texcoord6 : TEXCOORD6;
};
float4 PS_Cliff_Array_Shader_1(PS_Cliff_Array_Shader_1_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
// def c0, 0.75, 0, 1, -1
// def c1, 1, -1, 2.2, 2
// def c2, -2, -3, -4, -5
// def c3, 40, 0.25, 0, 0
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_texcoord5_centroid v6.xyz
// dcl_texcoord6 v7.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// dcl_2d s5
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c1
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c12.x
temp1.zw = temp2.xy * expr12.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c1.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy);
// mad r0.xy, r0, c1.w, c1.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1);
// mad r0.w, r0.x, -r0.x, c1.x
temp0.w = temp0.x * -temp0.x + float1(1);
// mad r0.w, r0.y, -r0.y, r0.w
temp0.w = temp0.y * -temp0.y + temp0.w;
// rsq r0.w, r0.w
temp0.w = 1 / sqrt(temp0.w);
// rcp r3.z, r0.w
temp3.z = 1.0f / temp0.w;
// mul r3.xy, r0, c0.x
temp3.xy = temp0.xy * float2(0.75, 0.75);
// nrm r4.xyz, r3
temp4.xyz = normalize(temp3.xyz).xyz;
// mov r0.xyw, v0.xyzz
temp0.xyw = i.color.xyz;
// mov r3.x, c0.y
temp3.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r3.x, c2
temp5 = temp3.x + float4(-2, -3, -4, -5);
// add r3.xyz, r3.x, -c0.wyzw
temp3.xyz = temp3.xxx + float3(1, -0, -1);
// mov r6.y, c0.y
temp6.y = float1(0);
// cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y
temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy;
// cmp r7.xyz, -r3_abs.y, c90, r6.y
temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy;
// cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y
temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy;
// cmp r6.xyz, -r3_abs.z, c92, r6.xzww
temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw;
// cmp r7.xyz, -r3_abs.z, c93, r7
temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww
temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.x, c97.xxyw, r3
temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.y, c100.xxyw, r3
temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.z, c103.xxyw, r3
temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r3.yz, -r5_abs.w, c106.xxyw, r3
temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r3.y, r3.w
temp2.w = -temp3.y + temp3.w;
// add r3.y, -r3.y, r3.z
temp3.y = -temp3.y + temp3.z;
// rcp r3.y, r3.y
temp3.y = 1.0f / temp3.y;
// mad_sat r2.w, r2.w, -r3.y, c1.x
temp2.w = saturate(temp2.w * -temp3.y + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r3.yzw, r5.xxyz, r2.w
temp3.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r4, r6
temp2.w = dot(temp4.xyz, temp6.xyz);
// max r4.w, r2.w, c0.y
temp4.w = max(temp2.w, float1(0));
// mad r0.xyw, r3.yzzw, r4.w, r0
temp0.xyw = temp3.yzw * temp4.www + temp0.xyw;
// endrep
}
// mul r0.xyw, r2.xyzz, r0
temp0.xyw = temp2.xyz * temp0.xyw;
// add r0.xyw, r0, r0
temp0.xyw = temp0.xyw + temp0.xyw;
// dp3 r2.w, r4, v5
temp2.w = dot(temp4.xyz, i.texcoord4.xyz);
// dp3 r3.x, r4, v6
temp3.x = dot(temp4.xyz, i.texcoord5.xyz);
// cmp r3.y, -r2.w, c0.y, c0.z
temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r3.z, r2.w, r3.y
temp3.z = temp2.w * temp3.y;
// cmp r2.w, -r3.x, c0.y, c0.z
temp2.w = (-temp3.x >= 0) ? float1(0) : float1(1);
// mul r2.w, r3.y, r2.w
temp2.w = temp3.y * temp2.w;
// pow r4.x, r3.x, c3.x
temp4.x = pow(temp3.x, float1(40));
// mul r3.w, r2.w, r4.x
temp3.w = temp2.w * temp4.x;
// texld r4, v7, s5
temp4 = tex2D(ShadowMapSampler, i.texcoord6.xy);
// add r3.xy, c11.zxzw, v7
temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord6.xy;
// texld r5, r3, s5
temp5 = tex2D(ShadowMapSampler, temp3.xy);
// add r3.xy, c11.yzzw, v7
temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord6.xy;
// texld r6, r3, s5
temp6 = tex2D(ShadowMapSampler, temp3.xy);
// add r3.xy, c11.wzzw, v7
temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord6.xy;
// texld r7, r3, s5
temp7 = tex2D(ShadowMapSampler, temp3.xy);
// mov r4.y, r5.x
temp4.y = temp5.x;
// mov r4.z, r6.x
temp4.z = temp6.x;
// mov r4.w, r7.x
temp4.w = temp7.x;
// add r4, r4, -v7.z
temp4 = temp4 + -i.texcoord6.z;
// cmp r4, r4, c0.z, c0.y
temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r2.w, c1.x, r4
temp2.w = dot(float4(1, 1, 1, 1), temp4);
// mul r2.w, r2.w, c3.y
temp2.w = temp2.w * float1(0.25);
// mul r3.xy, r3.zwzw, r2.w
temp3.xy = temp3.zw * temp2.ww;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r5.x, r4.x
temp5.x = log2(temp4.x);
// log r5.y, r4.y
temp5.y = log2(temp4.y);
// log r5.z, r4.z
temp5.z = log2(temp4.z);
// mul r4.xyz, r5, c1.z
temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2);
// exp r5.x, r4.x
temp5.x = exp2(temp4.x);
// exp r5.y, r4.y
temp5.y = exp2(temp4.y);
// exp r5.z, r4.z
temp5.z = exp2(temp4.z);
// mul r4.xyz, r5, c5
temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.z, r3.y, r0.z, c0.y
temp0.z = dot(temp3.yy, temp0.zz) + float1(0);
// mad r2.xyz, r3.x, r2, r0.z
temp2.xyz = temp3.xxx * temp2.xyz + temp0.zzz;
// mad r0.xyz, r4, r2, r0.xyww
temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyw;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c1.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c1.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c1.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
// mov oC0.w, v0.w
out_color.w = i.color.w;
//
return out_color;
}
PixelShader PS_Cliff_Array[2] = {
compile ps_3_0 PS_Cliff_Array_Shader_0(), // 97
compile ps_3_0 PS_Cliff_Array_Shader_1(), // 98
};
// PS_Road_Array_Shader_0 Pixel_3_0 Has PRES True
struct PS_Road_Array_Shader_0_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
};
float4 PS_Road_Array_Shader_0(PS_Road_Array_Shader_0_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c11.x, r0.x
expr11.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6;
float3 temp7;
// def c0, -2, -3, -4, -5
// def c1, 0.75, 1, 0, -1
// def c2, 1, -1, 2.2, 2
// def c3, 40, 0, 0, 0
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_texcoord5_centroid v6.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c2
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c11.x
temp1.zw = temp2.xy * expr11.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c2.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mul oC0.w, r0.w, v0.w
out_color.w = temp0.w * i.color.w;
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy);
// mad r0.xyz, r0, c2.w, c2.y
temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mul r0.xyz, r0, c1.xxyw
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1);
// nrm r3.xyz, r0
temp3.xyz = normalize(temp0.xyz).xyz;
// mov r0.xyz, v0
temp0.xyz = i.color.xyz;
// mov r4.x, c1.z
temp4.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r4.x, c0
temp5 = temp4.x + float4(-2, -3, -4, -5);
// add r4.xyz, r4.x, -c1.wzyw
temp4.xyz = temp4.xxx + float3(1, -0, -1);
// mov r6.z, c1.z
temp6.z = float1(0);
// cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z
temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz;
// cmp r7.xyz, -r4_abs.y, c90, r6.z
temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz;
// cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z
temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz;
// cmp r6.xyz, -r4_abs.z, c92, r6.xyww
temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw;
// cmp r7.xyz, -r4_abs.z, c93, r7
temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww
temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.x, c97.xxyw, r4
temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.y, c100.xxyw, r4
temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.z, c103.xxyw, r4
temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.w, c106.xxyw, r4
temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r4.y, r3.w
temp2.w = -temp4.y + temp3.w;
// add r3.w, -r4.y, r4.z
temp3.w = -temp4.y + temp4.z;
// rcp r3.w, r3.w
temp3.w = 1.0f / temp3.w;
// mad_sat r2.w, r2.w, -r3.w, c2.x
temp2.w = saturate(temp2.w * -temp3.w + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r4.yzw, r5.xxyz, r2.w
temp4.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r3, r6
temp2.w = dot(temp3.xyz, temp6.xyz);
// max r3.w, r2.w, c1.z
temp3.w = max(temp2.w, float1(0));
// mad r0.xyz, r4.yzww, r3.w, r0
temp0.xyz = temp4.yzw * temp3.www + temp0.xyz;
// endrep
}
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// dp3 r2.w, r3, v5
temp2.w = dot(temp3.xyz, i.texcoord4.xyz);
// dp3 r3.x, r3, v6
temp3.x = dot(temp3.xyz, i.texcoord5.xyz);
// cmp r3.y, -r2.w, c1.z, c1.y
temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r2.w, r2.w, r3.y
temp2.w = temp2.w * temp3.y;
// cmp r3.z, -r3.x, c1.z, c1.y
temp3.z = (-temp3.x >= 0) ? float1(0) : float1(1);
// mul r3.y, r3.y, r3.z
temp3.y = temp3.y * temp3.z;
// pow r4.x, r3.x, c3.x
temp4.x = pow(temp3.x, float1(40));
// mul r3.x, r3.y, r4.x
temp3.x = temp3.y * temp4.x;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r3.y, r4.x
temp3.y = log2(temp4.x);
// log r3.z, r4.y
temp3.z = log2(temp4.y);
// log r3.w, r4.z
temp3.w = log2(temp4.z);
// mul r3.yzw, r3, c2.z
temp3.yzw = temp3.yzw * float3(2.2, 2.2, 2.2);
// exp r4.x, r3.y
temp4.x = exp2(temp3.y);
// exp r4.y, r3.z
temp4.y = exp2(temp3.z);
// exp r4.z, r3.w
temp4.z = exp2(temp3.w);
// mul r3.yzw, r4.xxyz, c5.xxyz
temp3.yzw = temp4.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.w, r3.x, r0.w, c1.z
temp0.w = dot(temp3.xx, temp0.ww) + float1(0);
// mad r2.xyz, r2.w, r2, r0.w
temp2.xyz = temp2.www * temp2.xyz + temp0.www;
// mad r0.xyz, r3.yzww, r2, r0
temp0.xyz = temp3.yzw * temp2.xyz + temp0.xyz;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c2.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c2.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c2.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
//
return out_color;
}
// PS_Road_Array_Shader_1 Pixel_3_0 Has PRES True
struct PS_Road_Array_Shader_1_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float4 texcoord6 : TEXCOORD6;
};
float4 PS_Road_Array_Shader_1(PS_Road_Array_Shader_1_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8;
// def c0, -2, -3, -4, -5
// def c1, 40, -0.0015, 0.25, 0
// def c2, 1, -1, 2.2, 2
// def c3, 0.75, 1, 0, -1
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_texcoord5_centroid v6.xyz
// dcl_texcoord6 v7
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// dcl_2d s5
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c2
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c12.x
temp1.zw = temp2.xy * expr12.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c2.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mul oC0.w, r0.w, v0.w
out_color.w = temp0.w * i.color.w;
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy);
// mad r0.xyz, r0, c2.w, c2.y
temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mul r0.xyz, r0, c3.xxyw
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1);
// nrm r3.xyz, r0
temp3.xyz = normalize(temp0.xyz).xyz;
// mov r0.xyz, v0
temp0.xyz = i.color.xyz;
// mov r4.x, c3.z
temp4.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r4.x, c0
temp5 = temp4.x + float4(-2, -3, -4, -5);
// add r4.xyz, r4.x, -c3.wzyw
temp4.xyz = temp4.xxx + float3(1, -0, -1);
// mov r6.z, c3.z
temp6.z = float1(0);
// cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z
temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz;
// cmp r7.xyz, -r4_abs.y, c90, r6.z
temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz;
// cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z
temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz;
// cmp r6.xyz, -r4_abs.z, c92, r6.xyww
temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw;
// cmp r7.xyz, -r4_abs.z, c93, r7
temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww
temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.x, c97.xxyw, r4
temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.y, c100.xxyw, r4
temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.z, c103.xxyw, r4
temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.w, c106.xxyw, r4
temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r2.w, r6, r6
temp2.w = dot(temp6.xyz, temp6.xyz);
// rsq r2.w, r2.w
temp2.w = 1 / sqrt(temp2.w);
// rcp r3.w, r2.w
temp3.w = 1.0f / temp2.w;
// mul r6.xyz, r6, r2.w
temp6.xyz = temp6.xyz * temp2.www;
// add r2.w, -r4.y, r3.w
temp2.w = -temp4.y + temp3.w;
// add r3.w, -r4.y, r4.z
temp3.w = -temp4.y + temp4.z;
// rcp r3.w, r3.w
temp3.w = 1.0f / temp3.w;
// mad_sat r2.w, r2.w, -r3.w, c2.x
temp2.w = saturate(temp2.w * -temp3.w + float1(1));
// mul r2.w, r2.w, r2.w
temp2.w = temp2.w * temp2.w;
// mul r4.yzw, r5.xxyz, r2.w
temp4.yzw = temp5.xyz * temp2.www;
// dp3 r2.w, r3, r6
temp2.w = dot(temp3.xyz, temp6.xyz);
// max r3.w, r2.w, c3.z
temp3.w = max(temp2.w, float1(0));
// mad r0.xyz, r4.yzww, r3.w, r0
temp0.xyz = temp4.yzw * temp3.www + temp0.xyz;
// endrep
}
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// dp3 r2.w, r3, v5
temp2.w = dot(temp3.xyz, i.texcoord4.xyz);
// dp3 r3.x, r3, v6
temp3.x = dot(temp3.xyz, i.texcoord5.xyz);
// cmp r3.y, -r2.w, c3.z, c3.y
temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1);
// mul r3.z, r2.w, r3.y
temp3.z = temp2.w * temp3.y;
// cmp r2.w, -r3.x, c3.z, c3.y
temp2.w = (-temp3.x >= 0) ? float1(0) : float1(1);
// mul r2.w, r3.y, r2.w
temp2.w = temp3.y * temp2.w;
// pow r4.x, r3.x, c1.x
temp4.x = pow(temp3.x, float1(40));
// mul r3.w, r2.w, r4.x
temp3.w = temp2.w * temp4.x;
// rcp r2.w, v7.w
temp2.w = 1.0f / i.texcoord6.w;
// mul r3.xy, r2.w, v7
temp3.xy = temp2.ww * i.texcoord6.xy;
// mad r4.x, v7.z, r2.w, c1.y
temp4.x = i.texcoord6.z * temp2.w + float1(-0.0015);
// texld r5, r3, s5
temp5 = tex2D(ShadowMapSampler, temp3.xy);
// mad r3.xy, v7, r2.w, c11.zxzw
temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx;
// texld r6, r3, s5
temp6 = tex2D(ShadowMapSampler, temp3.xy);
// mad r3.xy, v7, r2.w, c11.yzzw
temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz;
// texld r7, r3, s5
temp7 = tex2D(ShadowMapSampler, temp3.xy);
// mad r3.xy, v7, r2.w, c11.wzzw
temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz;
// texld r8, r3, s5
temp8 = tex2D(ShadowMapSampler, temp3.xy);
// mov r5.y, r6.x
temp5.y = temp6.x;
// mov r5.z, r7.x
temp5.z = temp7.x;
// mov r5.w, r8.x
temp5.w = temp8.x;
// add r4, -r4.x, r5
temp4 = -temp4.x + temp5;
// cmp r4, r4, c3.y, c3.z
temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r2.w, c2.x, r4
temp2.w = dot(float4(1, 1, 1, 1), temp4);
// mul r2.w, r2.w, c1.z
temp2.w = temp2.w * float1(0.25);
// mul r3.xy, r3.zwzw, r2.w
temp3.xy = temp3.zw * temp2.ww;
// texld r4, r1, s4
temp4 = tex2D(CloudSamplerSampler, temp1.xy);
// log r5.x, r4.x
temp5.x = log2(temp4.x);
// log r5.y, r4.y
temp5.y = log2(temp4.y);
// log r5.z, r4.z
temp5.z = log2(temp4.z);
// mul r4.xyz, r5, c2.z
temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2);
// exp r5.x, r4.x
temp5.x = exp2(temp4.x);
// exp r5.y, r4.y
temp5.y = exp2(temp4.y);
// exp r5.z, r4.z
temp5.z = exp2(temp4.z);
// mul r4.xyz, r5, c5
temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz;
// dp2add r0.w, r3.y, r0.w, c3.z
temp0.w = dot(temp3.yy, temp0.ww) + float1(0);
// mad r2.xyz, r3.x, r2, r0.w
temp2.xyz = temp3.xxx * temp2.xyz + temp0.www;
// mad r0.xyz, r4, r2, r0
temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyz;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c2.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c2.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c2.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
//
return out_color;
}
PixelShader PS_Road_Array[2] = {
compile ps_3_0 PS_Road_Array_Shader_0(), // 101
compile ps_3_0 PS_Road_Array_Shader_1(), // 102
};
// PS_Scorch_Array_Shader_0 Pixel_3_0 Has PRES True
struct PS_Scorch_Array_Shader_0_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
};
float4 PS_Scorch_Array_Shader_0(PS_Scorch_Array_Shader_0_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c11.x, r0.x
expr11.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6;
float3 temp7;
// def c0, -2, -3, -4, -5
// def c1, 0.75, 1, 0, -1
// def c2, 1, -1, 2.2, 2
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c2
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c11.x
temp1.zw = temp2.xy * expr11.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c2.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mul oC0.w, r0.w, v0.w
out_color.w = temp0.w * i.color.w;
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy);
// mad r0.xyz, r0, c2.w, c2.y
temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mul r0.xyz, r0, c1.xxyw
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1);
// nrm r3.xyz, r0
temp3.xyz = normalize(temp0.xyz).xyz;
// mov r0.xyz, v0
temp0.xyz = i.color.xyz;
// mov r4.x, c1.z
temp4.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r4.x, c0
temp5 = temp4.x + float4(-2, -3, -4, -5);
// add r4.xyz, r4.x, -c1.wzyw
temp4.xyz = temp4.xxx + float3(1, -0, -1);
// mov r6.z, c1.z
temp6.z = float1(0);
// cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z
temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz;
// cmp r7.xyz, -r4_abs.y, c90, r6.z
temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz;
// cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z
temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz;
// cmp r6.xyz, -r4_abs.z, c92, r6.xyww
temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw;
// cmp r7.xyz, -r4_abs.z, c93, r7
temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww
temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.x, c97.xxyw, r4
temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.y, c100.xxyw, r4
temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.z, c103.xxyw, r4
temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.w, c106.xxyw, r4
temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r0.w, r6, r6
temp0.w = dot(temp6.xyz, temp6.xyz);
// rsq r0.w, r0.w
temp0.w = 1 / sqrt(temp0.w);
// rcp r2.w, r0.w
temp2.w = 1.0f / temp0.w;
// mul r6.xyz, r6, r0.w
temp6.xyz = temp6.xyz * temp0.www;
// add r0.w, -r4.y, r2.w
temp0.w = -temp4.y + temp2.w;
// add r2.w, -r4.y, r4.z
temp2.w = -temp4.y + temp4.z;
// rcp r2.w, r2.w
temp2.w = 1.0f / temp2.w;
// mad_sat r0.w, r0.w, -r2.w, c2.x
temp0.w = saturate(temp0.w * -temp2.w + float1(1));
// mul r0.w, r0.w, r0.w
temp0.w = temp0.w * temp0.w;
// mul r4.yzw, r5.xxyz, r0.w
temp4.yzw = temp5.xyz * temp0.www;
// dp3 r0.w, r3, r6
temp0.w = dot(temp3.xyz, temp6.xyz);
// max r2.w, r0.w, c1.z
temp2.w = max(temp0.w, float1(0));
// mad r0.xyz, r4.yzww, r2.w, r0
temp0.xyz = temp4.yzw * temp2.www + temp0.xyz;
// endrep
}
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// dp3 r0.w, r3, v5
temp0.w = dot(temp3.xyz, i.texcoord4.xyz);
// cmp r2.w, -r0.w, c1.z, c1.y
temp2.w = (-temp0.w >= 0) ? float1(0) : float1(1);
// mul r0.w, r0.w, r2.w
temp0.w = temp0.w * temp2.w;
// texld r3, r1, s4
temp3 = tex2D(CloudSamplerSampler, temp1.xy);
// log r4.x, r3.x
temp4.x = log2(temp3.x);
// log r4.y, r3.y
temp4.y = log2(temp3.y);
// log r4.z, r3.z
temp4.z = log2(temp3.z);
// mul r3.xyz, r4, c2.z
temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2);
// exp r4.x, r3.x
temp4.x = exp2(temp3.x);
// exp r4.y, r3.y
temp4.y = exp2(temp3.y);
// exp r4.z, r3.z
temp4.z = exp2(temp3.z);
// mul r3.xyz, r4, c5
temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz;
// mul r2.xyz, r2, r0.w
temp2.xyz = temp2.xyz * temp0.www;
// mad r0.xyz, r3, r2, r0
temp0.xyz = temp3.xyz * temp2.xyz + temp0.xyz;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c2.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c2.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c2.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
//
return out_color;
}
// PS_Scorch_Array_Shader_1 Pixel_3_0 Has PRES True
struct PS_Scorch_Array_Shader_1_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord6 : TEXCOORD6;
};
float4 PS_Scorch_Array_Shader_1(PS_Scorch_Array_Shader_1_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6;
float3 temp7;
// def c0, 1, -1, 2.2, 2
// def c1, -2, -3, -4, -5
// def c2, 0.75, 1, 0, -1
// def c3, 0.25, 0, 0, 0
// dcl_color v0
// dcl_color1 v1.x
// dcl_texcoord v2.xy
// dcl_texcoord2 v3.xy
// dcl_texcoord3 v4.xyz
// dcl_texcoord4 v5.xyz
// dcl_texcoord6 v6.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// dcl_2d s5
// texld r0, v2, s1
temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// mul r1.xy, c117.zwzw, v4.z
temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz;
// mad r1.xy, v4, c117, -r1
temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add r1.xy, r1, c118
temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r2.xy, c0
temp2.xy = float2(1, -1);
// mul r1.zw, r2.xyxy, c12.x
temp1.zw = temp2.xy * expr12.xx;
// mul r1.zw, r1, v4.xyxy
temp1.zw = temp1.zw * i.texcoord3.xy;
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c0.z
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mul oC0.w, r0.w, v0.w
out_color.w = temp0.w * i.color.w;
// texld r0, v2, s2
temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy);
// mad r0.xyz, r0, c0.w, c0.y
temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mul r0.xyz, r0, c2.xxyw
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1);
// nrm r3.xyz, r0
temp3.xyz = normalize(temp0.xyz).xyz;
// mov r0.xyz, v0
temp0.xyz = i.color.xyz;
// mov r4.x, c2.z
temp4.x = float1(0);
// rep i0
for (int it0 = 0; it0 < NumPointLights; ++it0) {
// add r5, r4.x, c1
temp5 = temp4.x + float4(-2, -3, -4, -5);
// add r4.xyz, r4.x, -c2.wzyw
temp4.xyz = temp4.xxx + float3(1, -0, -1);
// mov r6.z, c2.z
temp6.z = float1(0);
// cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z
temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz;
// cmp r7.xyz, -r4_abs.y, c90, r6.z
temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz;
// cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z
temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz;
// cmp r6.xyz, -r4_abs.z, c92, r6.xyww
temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw;
// cmp r7.xyz, -r4_abs.z, c93, r7
temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz;
// cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww
temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw;
// cmp r6.xyz, -r5_abs.x, c95, r6
temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.x, c96, r7
temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.x, c97.xxyw, r4
temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.y, c98, r6
temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.y, c99, r7
temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.y, c100.xxyw, r4
temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz;
// cmp r6.xyz, -r5_abs.z, c101, r6
temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz;
// cmp r7.xyz, -r5_abs.z, c102, r7
temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.z, c103.xxyw, r4
temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz;
// cmp r5.xyz, -r5_abs.w, c104, r6
temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz;
// cmp r6.xyz, -r5_abs.w, c105, r7
temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz;
// cmp r4.yz, -r5_abs.w, c106.xxyw, r4
temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz;
// add r6.xyz, r6, -v4
temp6.xyz = temp6.xyz + -i.texcoord3.xyz;
// dp3 r0.w, r6, r6
temp0.w = dot(temp6.xyz, temp6.xyz);
// rsq r0.w, r0.w
temp0.w = 1 / sqrt(temp0.w);
// rcp r2.w, r0.w
temp2.w = 1.0f / temp0.w;
// mul r6.xyz, r6, r0.w
temp6.xyz = temp6.xyz * temp0.www;
// add r0.w, -r4.y, r2.w
temp0.w = -temp4.y + temp2.w;
// add r2.w, -r4.y, r4.z
temp2.w = -temp4.y + temp4.z;
// rcp r2.w, r2.w
temp2.w = 1.0f / temp2.w;
// mad_sat r0.w, r0.w, -r2.w, c0.x
temp0.w = saturate(temp0.w * -temp2.w + float1(1));
// mul r0.w, r0.w, r0.w
temp0.w = temp0.w * temp0.w;
// mul r4.yzw, r5.xxyz, r0.w
temp4.yzw = temp5.xyz * temp0.www;
// dp3 r0.w, r3, r6
temp0.w = dot(temp3.xyz, temp6.xyz);
// max r2.w, r0.w, c2.z
temp2.w = max(temp0.w, float1(0));
// mad r0.xyz, r4.yzww, r2.w, r0
temp0.xyz = temp4.yzw * temp2.www + temp0.xyz;
// endrep
}
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// dp3 r0.w, r3, v5
temp0.w = dot(temp3.xyz, i.texcoord4.xyz);
// cmp r2.w, -r0.w, c2.z, c2.y
temp2.w = (-temp0.w >= 0) ? float1(0) : float1(1);
// mul r0.w, r0.w, r2.w
temp0.w = temp0.w * temp2.w;
// texld r3, v6, s5
temp3 = tex2D(ShadowMapSampler, i.texcoord6.xy);
// add r4.xy, c11.zxzw, v6
temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord6.xy;
// texld r4, r4, s5
temp4 = tex2D(ShadowMapSampler, temp4.xy);
// add r4.yz, c11, v6.xxyw
temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord6.xy;
// texld r5, r4.yzzw, s5
temp5 = tex2D(ShadowMapSampler, temp4.yz);
// add r4.yz, c11.xwzw, v6.xxyw
temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord6.xy;
// texld r6, r4.yzzw, s5
temp6 = tex2D(ShadowMapSampler, temp4.yz);
// mov r3.y, r4.x
temp3.y = temp4.x;
// mov r3.z, r5.x
temp3.z = temp5.x;
// mov r3.w, r6.x
temp3.w = temp6.x;
// add r3, r3, -v6.z
temp3 = temp3 + -i.texcoord6.z;
// cmp r3, r3, c2.y, c2.z
temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r2.w, c0.x, r3
temp2.w = dot(float4(1, 1, 1, 1), temp3);
// mul r0.w, r0.w, r2.w
temp0.w = temp0.w * temp2.w;
// mul r0.w, r0.w, c3.x
temp0.w = temp0.w * float1(0.25);
// texld r3, r1, s4
temp3 = tex2D(CloudSamplerSampler, temp1.xy);
// log r4.x, r3.x
temp4.x = log2(temp3.x);
// log r4.y, r3.y
temp4.y = log2(temp3.y);
// log r4.z, r3.z
temp4.z = log2(temp3.z);
// mul r3.xyz, r4, c0.z
temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2);
// exp r4.x, r3.x
temp4.x = exp2(temp3.x);
// exp r4.y, r3.y
temp4.y = exp2(temp3.y);
// exp r4.z, r3.z
temp4.z = exp2(temp3.z);
// mul r3.xyz, r4, c5
temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz;
// mul r2.xyz, r2, r0.w
temp2.xyz = temp2.xyz * temp0.www;
// mad r0.xyz, r3, r2, r0
temp0.xyz = temp3.xyz * temp2.xyz + temp0.xyz;
// texld r1, r1.zwzw, s0
temp1 = tex2D(MacroSamplerSampler, temp1.zw);
// log r2.x, r1.x
temp2.x = log2(temp1.x);
// log r2.y, r1.y
temp2.y = log2(temp1.y);
// log r2.z, r1.z
temp2.z = log2(temp1.z);
// mul r1.xyz, r2, c0.z
temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r1.x
temp2.x = exp2(temp1.x);
// exp r2.y, r1.y
temp2.y = exp2(temp1.y);
// exp r2.z, r1.z
temp2.z = exp2(temp1.z);
// mad r0.xyz, r0, r2, c0.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.x, r0, c0.x
temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1);
// texld r1, v3, s3
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul oC0.xyz, r0, r1.x
out_color.xyz = temp0.xyz * temp1.xxx;
//
return out_color;
}
PixelShader PS_Scorch_Array[2] = {
compile ps_3_0 PS_Scorch_Array_Shader_0(), // 105
compile ps_3_0 PS_Scorch_Array_Shader_1(), // 106
};
// VS_TerrainTile_M_Array_Shader_0 Vertex_2_0 Has PRES True
struct VS_TerrainTile_M_Array_Shader_0_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 texcoord : TEXCOORD;
};
struct VS_TerrainTile_M_Array_Shader_0_Output
{
float4 position : POSITION;
float4 color1 : COLOR1;
float4 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float4 texcoord5 : TEXCOORD5;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
VS_TerrainTile_M_Array_Shader_0_Output VS_TerrainTile_M_Array_Shader_0(VS_TerrainTile_M_Array_Shader_0_Input i)
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
VS_TerrainTile_M_Array_Shader_0_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 0.5, -1
// dcl_position v0
// dcl_normal 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 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));
// dp3 r1.x, v1, c6
temp1.x = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c5
temp1.xyz = temp1.xxx * DirectionalLight[0].Color.xyz;
// mul oD1.xyz, r1, c0.z
o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// dp3 r1.x, v1, c10
temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c9
temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz;
// dp3 r1.w, v1, c8
temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r1.w, r1.w, c0.y
temp1.w = max(temp1.w, float1(0));
// mad r1.xyz, c7, r1.w, r1
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul oD0.xyz, r1, c0.z
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, v0, c11.zwzw
temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mul r1.xy, v0.z, c117.zwzw
temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw;
// mad r1.xy, v0, c117, -r1
temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add oT3.xy, r1, c118
o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r1.xw, c0
temp1.xw = float2(1, -1);
// mul r1.xy, r1.wxzw, c12.x
temp1.xy = temp1.wx * expr12.xx;
// mul oT3.zw, r1.xyxy, v0.xyyx
o.texcoord3.zw = temp1.xy * i.position.yx;
// dp4 oT5.x, r0, c113
o.texcoord5.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 oT5.y, r0, c114
o.texcoord5.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 oT5.z, r0, c115
o.texcoord5.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 oT5.w, r0, c116
o.texcoord5.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// mov oD0.w, c0.x
o.color.w = float1(1);
// mov oD1.w, c0.x
o.color1.w = float1(1);
// mov oT0.xy, v2
o.texcoord.xy = i.texcoord.xy;
// mov oT0.zw, c0.y
o.texcoord.zw = float2(0, 0);
// mov oT1, c0.y
o.texcoord1 = float4(0, 0, 0, 0);
//
return o;
}
// VS_TerrainTile_M_Array_Shader_1 Vertex_2_0 Has PRES True
struct VS_TerrainTile_M_Array_Shader_1_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
};
struct VS_TerrainTile_M_Array_Shader_1_Output
{
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 position : POSITION;
float4 color1 : COLOR1;
float4 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float4 texcoord5 : TEXCOORD5;
};
VS_TerrainTile_M_Array_Shader_1_Output VS_TerrainTile_M_Array_Shader_1(VS_TerrainTile_M_Array_Shader_1_Input i)
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
VS_TerrainTile_M_Array_Shader_1_Output o;
float4 temp0, temp1;
float3 temp2;
// def c0, 0.01, -1, 3.333333E-05, -0
// def c1, 0, -0.0015, 0, 0
// def c2, 0.5, -1, 1, 0
// dcl_position v0
// dcl_normal v1
// dcl_texcoord v2
// dcl_texcoord1 v3
// dcl_texcoord2 v4
// mul oT0.xy, v2, c0.z
o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05);
// mul oT1.xy, v3, c0.z
o.texcoord1.xy = i.texcoord1.xy * float2(3.3333334E-05, 3.3333334E-05);
// mul oT1.zw, v4.xyyx, c0.z
o.texcoord1.zw = i.texcoord2.yx * float2(3.3333334E-05, 3.3333334E-05);
// add oT0.w, v0.w, c0.y
o.texcoord.w = i.position.w + float1(-1);
// add oT0.z, v1.w, c0.y
o.texcoord.z = i.normal.w + float1(-1);
// mad r0, v0.xyzx, -c0.yyyw, -c0.wwwy
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// mad r1.xyz, v1, c0.x, c0.y
temp1.xyz = i.normal.xyz * float3(0.01, 0.01, 0.01) + float3(-1, -1, -1);
// dp3 r1.w, r1, c6
temp1.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz);
// max r1.w, r1.w, -c0.w
temp1.w = max(temp1.w, float1(0));
// mul r2.xyz, r1.w, c5
temp2.xyz = temp1.www * DirectionalLight[0].Color.xyz;
// mul oD1.xyz, r2, c2.x
o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5);
// dp3 r1.w, r1, c10
temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz);
// dp3 r1.x, r1, c8
temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz);
// max r1.y, r1.w, -c0.w
temp1.y = max(temp1.w, float1(0));
// mul r1.yzw, r1.y, c9.xxyz
temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz;
// max r1.x, r1.x, -c0.w
temp1.x = max(temp1.x, float1(0));
// mad r1.xyz, c7, r1.x, r1.yzww
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul oD0.xyz, r1, c2.x
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, v0, c11.zwzw
temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mul r1.xy, v0.z, c117.zwzw
temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw;
// mad r1.xy, v0, c117, -r1
temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add oT3.xy, r1, c118
o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r1.yz, c2
temp1.yz = float2(-1, 1);
// mul r1.xy, r1.yzzw, c12.x
temp1.xy = temp1.yz * expr12.xx;
// mul oT3.zw, r1.xyxy, v0.xyyx
o.texcoord3.zw = temp1.xy * i.position.yx;
// mov oD0.w, -c0.y
o.color.w = float1(1);
// mov oD1.w, -c0.y
o.color1.w = float1(1);
// dp4 r1.x, r0, c113
temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 r1.y, r0, c114
temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 r1.z, r0, c115
temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 r0.x, r0, c116
temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// rcp r0.y, r0.x
temp0.y = 1.0f / temp0.x;
// mov oT5.w, r0.x
o.texcoord5.w = temp0.x;
// mad oT5.xyz, r1, r0.y, c1.xxyw
o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015);
//
return o;
}
VertexShader VS_TerrainTile_M_Array[2] = {
compile vs_2_0 VS_TerrainTile_M_Array_Shader_0(), // 109
compile vs_2_0 VS_TerrainTile_M_Array_Shader_1(), // 110
};
// PS_TerrainTile_M_Array_Shader_0 Pixel_2_0 Has PRES False
struct PS_TerrainTile_M_Array_Shader_0_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 PS_TerrainTile_M_Array_Shader_0(PS_TerrainTile_M_Array_Shader_0_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 2.2, -1, 1, 0
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// texld r0, t3, s3
temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r1, t0, s1
temp1 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c0.x
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mov r0.xyz, v1
temp0.xyz = i.color1.xyz;
// mad r0.xyz, r0, r2, v0
temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz;
// mul r0.xyz, r1, r0
temp0.xyz = temp1.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mov r1.xy, t3.wzyx
temp1.xy = i.texcoord3.wz;
// texld r1, r1, s0
temp1 = tex2D(MacroSamplerSampler, temp1.xy);
// texld r2, t2, s2
temp2 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mad r0.xyz, r0, r1, c0.y
temp0.xyz = temp0.xyz * temp1.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.z
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r0.xyz, r2.x, r0
temp0.xyz = temp2.xxx * temp0.xyz;
// mov r0.w, v0.w
temp0.w = i.color.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// PS_TerrainTile_M_Array_Shader_1 Pixel_2_0 Has PRES False
struct PS_TerrainTile_M_Array_Shader_1_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float4 texcoord5 : TEXCOORD5;
};
float4 PS_TerrainTile_M_Array_Shader_1(PS_TerrainTile_M_Array_Shader_1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8;
// def c0, 2.2, -0.0015, 1, 0
// def c1, 0.25, 0, 0, 0
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl t5
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// rcp r0.w, t5.w
temp0.w = 1.0f / i.texcoord5.w;
// mul r0.xy, r0.w, t5
temp0.xy = temp0.ww * i.texcoord5.xy;
// mad r1.xy, t5, r0.w, c11.zxyw
temp1.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx;
// mad r2.xy, t5, r0.w, c11.yzxw
temp2.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz;
// mad r3.xy, t5, r0.w, c11.wzyx
temp3.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz;
// mov r4.xy, t3.wzyx
temp4.xy = i.texcoord3.wz;
// texld r5, r0, s4
temp5 = tex2D(ShadowMapSampler, temp0.xy);
// texld r1, r1, s4
temp1 = tex2D(ShadowMapSampler, temp1.xy);
// texld r2, r2, s4
temp2 = tex2D(ShadowMapSampler, temp2.xy);
// texld r3, r3, s4
temp3 = tex2D(ShadowMapSampler, temp3.xy);
// texld r6, t3, s3
temp6 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r7, t0, s1
temp7 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// texld r4, r4, s0
temp4 = tex2D(MacroSamplerSampler, temp4.xy);
// texld r8, t2, s2
temp8 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mov r5.y, r1.x
temp5.y = temp1.x;
// mov r5.z, r2.x
temp5.z = temp2.x;
// mad r4.w, t5.z, r0.w, c0.y
temp4.w = i.texcoord5.z * temp0.w + float1(-0.0015);
// mov r5.w, r3.x
temp5.w = temp3.x;
// add r0, r5, -r4.w
temp0 = temp5 + -temp4.w;
// cmp r0, r0, c0.z, c0.w
temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r4.w, c0.z, r0
temp4.w = dot(float4(1, 1, 1, 1), temp0);
// mul r4.w, r4.w, c1.x
temp4.w = temp4.w * float1(0.25);
// log r0.x, r6.x
temp0.x = log2(temp6.x);
// log r0.y, r6.y
temp0.y = log2(temp6.y);
// log r0.z, r6.z
temp0.z = log2(temp6.z);
// mul r0.xyz, r0, c0.x
temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2);
// exp r1.x, r0.x
temp1.x = exp2(temp0.x);
// exp r1.y, r0.y
temp1.y = exp2(temp0.y);
// exp r1.z, r0.z
temp1.z = exp2(temp0.z);
// mul r0.xyz, r1, v1
temp0.xyz = temp1.xyz * i.color1.xyz;
// mad r0.xyz, r0, r4.w, v0
temp0.xyz = temp0.xyz * temp4.www + i.color.xyz;
// mul r0.xyz, r7, r0
temp0.xyz = temp7.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mad r0.xyz, r0, r4, -c0.z
temp0.xyz = temp0.xyz * temp4.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.z
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r0.xyz, r8.x, r0
temp0.xyz = temp8.xxx * temp0.xyz;
// mov r0.w, v0.w
temp0.w = i.color.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// PS_TerrainTile_M_Array_Shader_2 Pixel_2_0 Has PRES False
struct PS_TerrainTile_M_Array_Shader_2_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 PS_TerrainTile_M_Array_Shader_2(PS_TerrainTile_M_Array_Shader_2_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5;
float3 temp6;
// def c0, 2.2, -1, 1, 0
// dcl v0
// dcl v1
// dcl t0
// dcl t1
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// texld r0, t3, s3
temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// log r1.x, r0.x
temp1.x = log2(temp0.x);
// log r1.y, r0.y
temp1.y = log2(temp0.y);
// log r1.z, r0.z
temp1.z = log2(temp0.z);
// mul r0.xyz, r1, c0.x
temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2);
// exp r1.x, r0.x
temp1.x = exp2(temp0.x);
// exp r1.y, r0.y
temp1.y = exp2(temp0.y);
// exp r1.z, r0.z
temp1.z = exp2(temp0.z);
// mov r0.xyz, v1
temp0.xyz = i.color1.xyz;
// mad r0.xyz, r0, r1, v0
temp0.xyz = temp0.xyz * temp1.xyz + i.color.xyz;
// mov r1.xy, t1.wzyx
temp1.xy = i.texcoord1.wz;
// mov r2.xy, t3.wzyx
temp2.xy = i.texcoord3.wz;
// texld r1, r1, s1
temp1 = tex2D(BaseSamplerClampedSampler, temp1.xy);
// texld r3, t0, s1
temp3 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// texld r4, t1, s1
temp4 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy);
// texld r2, r2, s0
temp2 = tex2D(MacroSamplerSampler, temp2.xy);
// texld r5, t2, s2
temp5 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mov_sat r5.zw, t0
temp5.zw = saturate(i.texcoord.zw);
// lrp r6.xyz, r5.w, r4, r3
temp6.xyz = lerp(temp3.xyz, temp4.xyz, temp5.www);
// lrp r3.xyz, r5.z, r1, r6
temp3.xyz = lerp(temp6.xyz, temp1.xyz, temp5.zzz);
// mul r0.xyz, r0, r3
temp0.xyz = temp0.xyz * temp3.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mad r0.xyz, r0, r2, c0.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.z
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r0.xyz, r5.x, r0
temp0.xyz = temp5.xxx * temp0.xyz;
// mov r0.w, v0.w
temp0.w = i.color.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// PS_TerrainTile_M_Array_Shader_3 Pixel_2_0 Has PRES False
struct PS_TerrainTile_M_Array_Shader_3_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float3 texcoord5 : TEXCOORD5;
};
float4 PS_TerrainTile_M_Array_Shader_3(PS_TerrainTile_M_Array_Shader_3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9;
// def c0, 2.2, 1, 0, 0.25
// dcl v0
// dcl v1
// dcl t0
// dcl t1
// dcl t2.xy
// dcl t3
// dcl t5.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// add r0.xy, t5, c11.zxyw
temp0.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx;
// add r1.xy, t5, c11.yzxw
temp1.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz;
// add r2.xy, t5, c11.wzyx
temp2.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz;
// mov r3.xy, t1.wzyx
temp3.xy = i.texcoord1.wz;
// mov r4.xy, t3.wzyx
temp4.xy = i.texcoord3.wz;
// texld r0, r0, s4
temp0 = tex2D(ShadowMapSampler, temp0.xy);
// texld r1, r1, s4
temp1 = tex2D(ShadowMapSampler, temp1.xy);
// texld r2, r2, s4
temp2 = tex2D(ShadowMapSampler, temp2.xy);
// texld r5, t5, s4
temp5 = tex2D(ShadowMapSampler, i.texcoord5.xy);
// texld r6, t3, s3
temp6 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r3, r3, s1
temp3 = tex2D(BaseSamplerClampedSampler, temp3.xy);
// texld r7, t0, s1
temp7 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// texld r8, t1, s1
temp8 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy);
// texld r4, r4, s0
temp4 = tex2D(MacroSamplerSampler, temp4.xy);
// texld r9, t2, s2
temp9 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mov r5.y, r0.x
temp5.y = temp0.x;
// mov r5.z, r1.x
temp5.z = temp1.x;
// mov r5.w, r2.x
temp5.w = temp2.x;
// add r0, r5, -t5.z
temp0 = temp5 + -i.texcoord5.z;
// cmp r0, r0, c0.y, c0.z
temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r3.w, c0.y, r0
temp3.w = dot(float4(1, 1, 1, 1), temp0);
// mul r3.w, r3.w, c0.w
temp3.w = temp3.w * float1(0.25);
// log r0.x, r6.x
temp0.x = log2(temp6.x);
// log r0.y, r6.y
temp0.y = log2(temp6.y);
// log r0.z, r6.z
temp0.z = log2(temp6.z);
// mul r0.xyz, r0, c0.x
temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2);
// exp r1.x, r0.x
temp1.x = exp2(temp0.x);
// exp r1.y, r0.y
temp1.y = exp2(temp0.y);
// exp r1.z, r0.z
temp1.z = exp2(temp0.z);
// mul r0.xyz, r1, v1
temp0.xyz = temp1.xyz * i.color1.xyz;
// mad r0.xyz, r0, r3.w, v0
temp0.xyz = temp0.xyz * temp3.www + i.color.xyz;
// mov_sat r1.xy, t0.wzyx
temp1.xy = saturate(i.texcoord.wz);
// lrp r2.xyz, r1.x, r8, r7
temp2.xyz = lerp(temp7.xyz, temp8.xyz, temp1.xxx);
// lrp r5.xyz, r1.y, r3, r2
temp5.xyz = lerp(temp2.xyz, temp3.xyz, temp1.yyy);
// mul r0.xyz, r0, r5
temp0.xyz = temp0.xyz * temp5.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mad r0.xyz, r0, r4, -c0.y
temp0.xyz = temp0.xyz * temp4.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.y
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r0.xyz, r9.x, r0
temp0.xyz = temp9.xxx * temp0.xyz;
// mov r0.w, v0.w
temp0.w = i.color.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
PixelShader PS_TerrainTile_M_Array[4] = {
compile ps_2_0 PS_TerrainTile_M_Array_Shader_0(), // 111
compile ps_2_0 PS_TerrainTile_M_Array_Shader_1(), // 112
compile ps_2_0 PS_TerrainTile_M_Array_Shader_2(), // 113
compile ps_2_0 PS_TerrainTile_M_Array_Shader_3(), // 114
};
// PS_Cliff_M_Array_Shader_0 Pixel_2_0 Has PRES False
struct PS_Cliff_M_Array_Shader_0_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 PS_Cliff_M_Array_Shader_0(PS_Cliff_M_Array_Shader_0_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 2.2, -1, 1, 0
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// texld r0, t3, s3
temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r1, t0, s1
temp1 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c0.x
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mov r0.xyz, v1
temp0.xyz = i.color1.xyz;
// mad r0.xyz, r0, r2, v0
temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz;
// mul r0.xyz, r1, r0
temp0.xyz = temp1.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mov r1.xy, t3.wzyx
temp1.xy = i.texcoord3.wz;
// texld r1, r1, s0
temp1 = tex2D(MacroSamplerSampler, temp1.xy);
// texld r2, t2, s2
temp2 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mad r0.xyz, r0, r1, c0.y
temp0.xyz = temp0.xyz * temp1.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.z
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r0.xyz, r2.x, r0
temp0.xyz = temp2.xxx * temp0.xyz;
// mov r0.w, v0.w
temp0.w = i.color.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// PS_Cliff_M_Array_Shader_1 Pixel_2_0 Has PRES False
struct PS_Cliff_M_Array_Shader_1_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float3 texcoord5 : TEXCOORD5;
};
float4 PS_Cliff_M_Array_Shader_1(PS_Cliff_M_Array_Shader_1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
// def c0, 2.2, 1, 0, 0.25
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl t5.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// add r0.xy, t5, c11.zxyw
temp0.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx;
// add r1.xy, t5, c11.yzxw
temp1.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz;
// add r2.xy, t5, c11.wzyx
temp2.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz;
// mov r3.xy, t3.wzyx
temp3.xy = i.texcoord3.wz;
// texld r0, r0, s4
temp0 = tex2D(ShadowMapSampler, temp0.xy);
// texld r1, r1, s4
temp1 = tex2D(ShadowMapSampler, temp1.xy);
// texld r2, r2, s4
temp2 = tex2D(ShadowMapSampler, temp2.xy);
// texld r4, t5, s4
temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy);
// texld r5, t3, s3
temp5 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r6, t0, s1
temp6 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// texld r3, r3, s0
temp3 = tex2D(MacroSamplerSampler, temp3.xy);
// texld r7, t2, s2
temp7 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mov r4.y, r0.x
temp4.y = temp0.x;
// mov r4.z, r1.x
temp4.z = temp1.x;
// mov r4.w, r2.x
temp4.w = temp2.x;
// add r0, r4, -t5.z
temp0 = temp4 + -i.texcoord5.z;
// cmp r0, r0, c0.y, c0.z
temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r3.w, c0.y, r0
temp3.w = dot(float4(1, 1, 1, 1), temp0);
// mul r3.w, r3.w, c0.w
temp3.w = temp3.w * float1(0.25);
// log r0.x, r5.x
temp0.x = log2(temp5.x);
// log r0.y, r5.y
temp0.y = log2(temp5.y);
// log r0.z, r5.z
temp0.z = log2(temp5.z);
// mul r0.xyz, r0, c0.x
temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2);
// exp r1.x, r0.x
temp1.x = exp2(temp0.x);
// exp r1.y, r0.y
temp1.y = exp2(temp0.y);
// exp r1.z, r0.z
temp1.z = exp2(temp0.z);
// mul r0.xyz, r1, v1
temp0.xyz = temp1.xyz * i.color1.xyz;
// mad r0.xyz, r0, r3.w, v0
temp0.xyz = temp0.xyz * temp3.www + i.color.xyz;
// mul r0.xyz, r6, r0
temp0.xyz = temp6.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mad r0.xyz, r0, r3, -c0.y
temp0.xyz = temp0.xyz * temp3.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.y
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r0.xyz, r7.x, r0
temp0.xyz = temp7.xxx * temp0.xyz;
// mov r0.w, v0.w
temp0.w = i.color.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
PixelShader PS_Cliff_M_Array[2] = {
compile ps_2_0 PS_Cliff_M_Array_Shader_0(), // 117
compile ps_2_0 PS_Cliff_M_Array_Shader_1(), // 118
};
// PS_Road_M_Array_Shader_0 Pixel_2_0 Has PRES False
struct PS_Road_M_Array_Shader_0_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 PS_Road_M_Array_Shader_0(PS_Road_M_Array_Shader_0_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
// def c0, 2.2, -1, 1, 0
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// texld r0, t3, s3
temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r1, t0, s1
temp1 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c0.x
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mov r0.xyz, v1
temp0.xyz = i.color1.xyz;
// mad r0.xyz, r0, r2, v0
temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz;
// mul r0.xyz, r1, r0
temp0.xyz = temp1.xyz * temp0.xyz;
// mul r1.w, r1.w, v0.w
temp1.w = temp1.w * i.color.w;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mov r2.xy, t3.wzyx
temp2.xy = i.texcoord3.wz;
// texld r2, r2, s0
temp2 = tex2D(MacroSamplerSampler, temp2.xy);
// texld r3, t2, s2
temp3 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mad r0.xyz, r0, r2, c0.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.z
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r1.xyz, r3.x, r0
temp1.xyz = temp3.xxx * temp0.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// PS_Road_M_Array_Shader_1 Pixel_2_0 Has PRES False
struct PS_Road_M_Array_Shader_1_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float4 texcoord5 : TEXCOORD5;
};
float4 PS_Road_M_Array_Shader_1(PS_Road_M_Array_Shader_1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8;
// def c0, 2.2, -0.0015, 1, 0
// def c1, 0.25, 0, 0, 0
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl t5
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// rcp r0.w, t5.w
temp0.w = 1.0f / i.texcoord5.w;
// mul r0.xy, r0.w, t5
temp0.xy = temp0.ww * i.texcoord5.xy;
// mad r1.xy, t5, r0.w, c11.zxyw
temp1.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx;
// mad r2.xy, t5, r0.w, c11.yzxw
temp2.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz;
// mad r3.xy, t5, r0.w, c11.wzyx
temp3.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz;
// mov r4.xy, t3.wzyx
temp4.xy = i.texcoord3.wz;
// texld r5, r0, s4
temp5 = tex2D(ShadowMapSampler, temp0.xy);
// texld r1, r1, s4
temp1 = tex2D(ShadowMapSampler, temp1.xy);
// texld r2, r2, s4
temp2 = tex2D(ShadowMapSampler, temp2.xy);
// texld r3, r3, s4
temp3 = tex2D(ShadowMapSampler, temp3.xy);
// texld r6, t3, s3
temp6 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r7, t0, s1
temp7 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy);
// texld r4, r4, s0
temp4 = tex2D(MacroSamplerSampler, temp4.xy);
// texld r8, t2, s2
temp8 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mov r5.y, r1.x
temp5.y = temp1.x;
// mov r5.z, r2.x
temp5.z = temp2.x;
// mad r4.w, t5.z, r0.w, c0.y
temp4.w = i.texcoord5.z * temp0.w + float1(-0.0015);
// mov r5.w, r3.x
temp5.w = temp3.x;
// add r0, r5, -r4.w
temp0 = temp5 + -temp4.w;
// cmp r0, r0, c0.z, c0.w
temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r4.w, c0.z, r0
temp4.w = dot(float4(1, 1, 1, 1), temp0);
// mul r4.w, r4.w, c1.x
temp4.w = temp4.w * float1(0.25);
// log r0.x, r6.x
temp0.x = log2(temp6.x);
// log r0.y, r6.y
temp0.y = log2(temp6.y);
// log r0.z, r6.z
temp0.z = log2(temp6.z);
// mul r0.xyz, r0, c0.x
temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2);
// exp r1.x, r0.x
temp1.x = exp2(temp0.x);
// exp r1.y, r0.y
temp1.y = exp2(temp0.y);
// exp r1.z, r0.z
temp1.z = exp2(temp0.z);
// mul r0.xyz, r1, v1
temp0.xyz = temp1.xyz * i.color1.xyz;
// mad r0.xyz, r0, r4.w, v0
temp0.xyz = temp0.xyz * temp4.www + i.color.xyz;
// mul r0.xyz, r7, r0
temp0.xyz = temp7.xyz * temp0.xyz;
// mul r1.w, r7.w, v0.w
temp1.w = temp7.w * i.color.w;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mad r0.xyz, r0, r4, -c0.z
temp0.xyz = temp0.xyz * temp4.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.z
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r1.xyz, r8.x, r0
temp1.xyz = temp8.xxx * temp0.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
PixelShader PS_Road_M_Array[2] = {
compile ps_2_0 PS_Road_M_Array_Shader_0(), // 121
compile ps_2_0 PS_Road_M_Array_Shader_1(), // 122
};
// PS_Scorch_M_Array_Shader_0 Pixel_2_0 Has PRES False
struct PS_Scorch_M_Array_Shader_0_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 PS_Scorch_M_Array_Shader_0(PS_Scorch_M_Array_Shader_0_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
// def c0, 2.2, -1, 1, 0
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// texld r0, t3, s3
temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r1, t0, s1
temp1 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// log r2.x, r0.x
temp2.x = log2(temp0.x);
// log r2.y, r0.y
temp2.y = log2(temp0.y);
// log r2.z, r0.z
temp2.z = log2(temp0.z);
// mul r0.xyz, r2, c0.x
temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.x
temp2.x = exp2(temp0.x);
// exp r2.y, r0.y
temp2.y = exp2(temp0.y);
// exp r2.z, r0.z
temp2.z = exp2(temp0.z);
// mov r0.xyz, v1
temp0.xyz = i.color1.xyz;
// mad r0.xyz, r0, r2, v0
temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz;
// mul r0.xyz, r1, r0
temp0.xyz = temp1.xyz * temp0.xyz;
// mul r1.w, r1.w, v0.w
temp1.w = temp1.w * i.color.w;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mov r2.xy, t3.wzyx
temp2.xy = i.texcoord3.wz;
// texld r2, r2, s0
temp2 = tex2D(MacroSamplerSampler, temp2.xy);
// texld r3, t2, s2
temp3 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mad r0.xyz, r0, r2, c0.y
temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.z
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r1.xyz, r3.x, r0
temp1.xyz = temp3.xxx * temp0.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// PS_Scorch_M_Array_Shader_1 Pixel_2_0 Has PRES False
struct PS_Scorch_M_Array_Shader_1_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float3 texcoord5 : TEXCOORD5;
};
float4 PS_Scorch_M_Array_Shader_1(PS_Scorch_M_Array_Shader_1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
// def c0, 2.2, 1, 0, 0.25
// dcl v0
// dcl v1
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl t5.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// dcl_2d s4
// add r0.xy, t5, c11.zxyw
temp0.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx;
// add r1.xy, t5, c11.yzxw
temp1.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz;
// add r2.xy, t5, c11.wzyx
temp2.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz;
// mov r3.xy, t3.wzyx
temp3.xy = i.texcoord3.wz;
// texld r0, r0, s4
temp0 = tex2D(ShadowMapSampler, temp0.xy);
// texld r1, r1, s4
temp1 = tex2D(ShadowMapSampler, temp1.xy);
// texld r2, r2, s4
temp2 = tex2D(ShadowMapSampler, temp2.xy);
// texld r4, t5, s4
temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy);
// texld r5, t3, s3
temp5 = tex2D(CloudSamplerSampler, i.texcoord3.xy);
// texld r6, t0, s1
temp6 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy);
// texld r3, r3, s0
temp3 = tex2D(MacroSamplerSampler, temp3.xy);
// texld r7, t2, s2
temp7 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mov r4.y, r0.x
temp4.y = temp0.x;
// mov r4.z, r1.x
temp4.z = temp1.x;
// mov r4.w, r2.x
temp4.w = temp2.x;
// add r0, r4, -t5.z
temp0 = temp4 + -i.texcoord5.z;
// cmp r0, r0, c0.y, c0.z
temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0);
// dp4 r3.w, c0.y, r0
temp3.w = dot(float4(1, 1, 1, 1), temp0);
// mul r3.w, r3.w, c0.w
temp3.w = temp3.w * float1(0.25);
// log r0.x, r5.x
temp0.x = log2(temp5.x);
// log r0.y, r5.y
temp0.y = log2(temp5.y);
// log r0.z, r5.z
temp0.z = log2(temp5.z);
// mul r0.xyz, r0, c0.x
temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2);
// exp r1.x, r0.x
temp1.x = exp2(temp0.x);
// exp r1.y, r0.y
temp1.y = exp2(temp0.y);
// exp r1.z, r0.z
temp1.z = exp2(temp0.z);
// mul r0.xyz, r1, v1
temp0.xyz = temp1.xyz * i.color1.xyz;
// mad r0.xyz, r0, r3.w, v0
temp0.xyz = temp0.xyz * temp3.www + i.color.xyz;
// mul r0.xyz, r6, r0
temp0.xyz = temp6.xyz * temp0.xyz;
// mul r1.w, r6.w, v0.w
temp1.w = temp6.w * i.color.w;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mad r0.xyz, r0, r3, -c0.y
temp0.xyz = temp0.xyz * temp3.xyz + float3(-1, -1, -1);
// mad r0.xyz, v1.w, r0, c0.y
temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1);
// mul r1.xyz, r7.x, r0
temp1.xyz = temp7.xxx * temp0.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
PixelShader PS_Scorch_M_Array[2] = {
compile ps_2_0 PS_Scorch_M_Array_Shader_0(), // 125
compile ps_2_0 PS_Scorch_M_Array_Shader_1(), // 126
};
// _CreateDepthMap_PixelShader25 Pixel_2_0 Has PRES False
float4 _CreateDepthMap_PixelShader25(float texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.x
// mov r0, t0.x
temp0 = texcoord.x;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// _CreateDepthMap_VertexShader26 Vertex_2_0 Has PRES False
struct _CreateDepthMap_VertexShader26_Output
{
float4 position : POSITION;
float texcoord : TEXCOORD;
};
_CreateDepthMap_VertexShader26_Output _CreateDepthMap_VertexShader26(float4 position : POSITION)
{
_CreateDepthMap_VertexShader26_Output o;
float4 temp0;
float2 temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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 r1.y, r0, c122
temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// dp4 r1.x, r0, c121
temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// rcp r0.x, r1.y
temp0.x = 1.0f / temp1.y;
// mov oPos.zw, r1.xyxy
o.position.zw = temp1.xy;
// mul oT0.x, r1.x, r0.x
o.texcoord = temp1.x * temp0.x;
//
return o;
}
// _CreateShadowMap_PixelShader27 Pixel_2_0 Has PRES False
float4 _CreateShadowMap_PixelShader27(float texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.x
// mov r0, t0.x
temp0 = texcoord.x;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// _CreateShadowMap_VertexShader28 Vertex_2_0 Has PRES False
struct _CreateShadowMap_VertexShader28_Output
{
float4 position : POSITION;
float texcoord : TEXCOORD;
};
_CreateShadowMap_VertexShader28_Output _CreateShadowMap_VertexShader28(float4 position : POSITION)
{
_CreateShadowMap_VertexShader28_Output o;
float4 temp0;
float2 temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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 r1.y, r0, c122
temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// dp4 r1.x, r0, c121
temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// rcp r0.x, r1.y
temp0.x = 1.0f / temp1.y;
// mov oPos.zw, r1.xyxy
o.position.zw = temp1.xy;
// mul oT0.x, r1.x, r0.x
o.texcoord = temp1.x * temp0.x;
//
return o;
}
// Scorch_L_PixelShader29 Pixel_2_0 Has PRES False
struct Scorch_L_PixelShader29_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 Scorch_L_PixelShader29(Scorch_L_PixelShader29_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// texld r0, t2, s1
temp0 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// texld r1, t0, s0
temp1 = tex2D(BaseSamplerClamped_LSampler, i.texcoord.xy);
// mul r1, r1, t3
temp1 = temp1 * i.texcoord3;
// mul r1.xyz, r0.x, r1
temp1.xyz = temp0.xxx * temp1.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Scorch_L_VertexShader30 Vertex_2_0 Has PRES False
struct Scorch_L_VertexShader30_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Scorch_L_VertexShader30_Output
{
float4 position : POSITION;
float4 texcoord3 : TEXCOORD3;
float2 texcoord2 : TEXCOORD2;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
Scorch_L_VertexShader30_Output Scorch_L_VertexShader30(Scorch_L_VertexShader30_Input i)
{
Scorch_L_VertexShader30_Output o;
float4 temp0;
float3 temp1;
// def c0, 2.55, -1, 1, 0
// def c1, 3.333333E-05, 0, 0, 0
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// mad r0, v0.xyzx, c0.zzzw, c0.wwwz
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// mad r0.xyz, v1, c0.x, c0.y
temp0.xyz = i.normal.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1);
// dp3 r0.w, r0, c8
temp0.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz);
// max r0.w, r0.w, c0.w
temp0.w = max(temp0.w, float1(0));
// mul r1.xyz, r0.w, c7
temp1.xyz = temp0.www * DirectionalLight[1].Color.xyz;
// dp3 r0.w, r0, c6
temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz);
// dp3 r0.x, r0, c10
temp0.x = dot(temp0.xyz, DirectionalLight[2].Direction.xyz);
// max r0.y, r0.w, c0.w
temp0.y = max(temp0.w, float1(0));
// mad r0.yzw, c5.xxyz, r0.y, r1.xxyz
temp0.yzw = DirectionalLight[0].Color.xyz * temp0.yyy + temp1.xyz;
// max r0.x, r0.x, c0.w
temp0.x = max(temp0.x, float1(0));
// mad r0.xyz, c9, r0.x, r0.yzww
temp0.xyz = DirectionalLight[2].Color.xyz * temp0.xxx + temp0.yzw;
// add r0.xyz, r0, c4
temp0.xyz = temp0.xyz + AmbientLightColor.xyz;
// mul oT3.xyz, r0, v2
o.texcoord3.xyz = temp0.xyz * i.color.xyz;
// add r0.xy, v0, c11.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c11
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mul oT0.xy, v3, c1.x
o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05);
// mov oT0.zw, c0.w
o.texcoord.zw = float2(0, 0);
// mov oT1, c0.w
o.texcoord1 = float4(0, 0, 0, 0);
// mov oT3.w, v2.w
o.texcoord3.w = i.color.w;
//
return o;
}
// Road_L_PixelShader31 Pixel_2_0 Has PRES False
struct Road_L_PixelShader31_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 Road_L_PixelShader31(Road_L_PixelShader31_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// texld r0, t2, s1
temp0 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// texld r1, t0, s0
temp1 = tex2D(BaseSamplerWrapped_LSampler, i.texcoord.xy);
// mul r1, r1, t3
temp1 = temp1 * i.texcoord3;
// mul r1.xyz, r0.x, r1
temp1.xyz = temp0.xxx * temp1.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Road_L_VertexShader32 Vertex_2_0 Has PRES False
struct Road_L_VertexShader32_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Road_L_VertexShader32_Output
{
float4 position : POSITION;
float4 texcoord3 : TEXCOORD3;
float2 texcoord2 : TEXCOORD2;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
Road_L_VertexShader32_Output Road_L_VertexShader32(Road_L_VertexShader32_Input i)
{
Road_L_VertexShader32_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// dp3 r0.x, v1, c8
temp0.x = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r0.x, r0.x, c0.y
temp0.x = max(temp0.x, float1(0));
// mul r0.xyz, r0.x, c7
temp0.xyz = temp0.xxx * DirectionalLight[1].Color.xyz;
// dp3 r0.w, v1, c6
temp0.w = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz);
// max r0.w, r0.w, c0.y
temp0.w = max(temp0.w, float1(0));
// mad r0.xyz, c5, r0.w, r0
temp0.xyz = DirectionalLight[0].Color.xyz * temp0.www + temp0.xyz;
// dp3 r0.w, v1, c10
temp0.w = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r0.w, r0.w, c0.y
temp0.w = max(temp0.w, float1(0));
// mad r0.xyz, c9, r0.w, r0
temp0.xyz = DirectionalLight[2].Color.xyz * temp0.www + temp0.xyz;
// add r0.xyz, r0, c4
temp0.xyz = temp0.xyz + AmbientLightColor.xyz;
// mul oT3.xyz, r0, v2
o.texcoord3.xyz = temp0.xyz * i.color.xyz;
// add r0.xy, v0, c11.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c11
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v3
o.texcoord.xy = i.texcoord.xy;
// mov oT0.zw, c0.y
o.texcoord.zw = float2(0, 0);
// mov oT1, c0.y
o.texcoord1 = float4(0, 0, 0, 0);
// mov oT3.w, v2.w
o.texcoord3.w = i.color.w;
//
return o;
}
// Cliff_L_PixelShader33 Pixel_2_0 Has PRES False
struct Cliff_L_PixelShader33_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 Cliff_L_PixelShader33(Cliff_L_PixelShader33_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// dcl t0.xy
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(BaseSamplerWrapped_LSampler, i.texcoord.xy);
// texld r1, t2, s1
temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mul r0.xyz, r0, t3
temp0.xyz = temp0.xyz * i.texcoord3.xyz;
// mul r0.xyz, r1.x, r0
temp0.xyz = temp1.xxx * temp0.xyz;
// mov r0.w, t3.w
temp0.w = i.texcoord3.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Cliff_L_VertexShader34 Vertex_2_0 Has PRES False
struct Cliff_L_VertexShader34_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Cliff_L_VertexShader34_Output
{
float4 position : POSITION;
float4 texcoord3 : TEXCOORD3;
float2 texcoord2 : TEXCOORD2;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
Cliff_L_VertexShader34_Output Cliff_L_VertexShader34(Cliff_L_VertexShader34_Input i)
{
Cliff_L_VertexShader34_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// dp3 r0.x, v1, c8
temp0.x = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r0.x, r0.x, c0.y
temp0.x = max(temp0.x, float1(0));
// mul r0.xyz, r0.x, c7
temp0.xyz = temp0.xxx * DirectionalLight[1].Color.xyz;
// dp3 r0.w, v1, c6
temp0.w = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz);
// max r0.w, r0.w, c0.y
temp0.w = max(temp0.w, float1(0));
// mad r0.xyz, c5, r0.w, r0
temp0.xyz = DirectionalLight[0].Color.xyz * temp0.www + temp0.xyz;
// dp3 r0.w, v1, c10
temp0.w = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r0.w, r0.w, c0.y
temp0.w = max(temp0.w, float1(0));
// mad r0.xyz, c9, r0.w, r0
temp0.xyz = DirectionalLight[2].Color.xyz * temp0.www + temp0.xyz;
// add r0.xyz, r0, c4
temp0.xyz = temp0.xyz + AmbientLightColor.xyz;
// mul oT3.xyz, r0, v2
o.texcoord3.xyz = temp0.xyz * i.color.xyz;
// add r0.xy, v0, c11.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c11
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v3
o.texcoord.xy = i.texcoord.xy;
// mov oT0.zw, c0.y
o.texcoord.zw = float2(0, 0);
// mov oT1, c0.y
o.texcoord1 = float4(0, 0, 0, 0);
// mov oT3.w, v2.w
o.texcoord3.w = i.color.w;
//
return o;
}
// TerrainTile_L_PixelShader35 Pixel_2_0 Has PRES False
struct TerrainTile_L_PixelShader35_Input
{
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
};
float4 TerrainTile_L_PixelShader35(TerrainTile_L_PixelShader35_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
float3 temp4;
// dcl t0
// dcl t1
// dcl t2.xy
// dcl t3
// dcl_2d s0
// dcl_2d s1
// mov r0.xy, t1.wzyx
temp0.xy = i.texcoord1.wz;
// texld r0, r0, s0
temp0 = tex2D(BaseSamplerClamped_LSampler, temp0.xy);
// texld r1, t0, s0
temp1 = tex2D(BaseSamplerClamped_LSampler, i.texcoord.xy);
// texld r2, t1, s0
temp2 = tex2D(BaseSamplerClamped_LSampler, i.texcoord1.xy);
// texld r3, t2, s1
temp3 = tex2D(ShroudSamplerSampler, i.texcoord2.xy);
// mov_sat r3.zw, t0
temp3.zw = saturate(i.texcoord.zw);
// lrp r4.xyz, r3.w, r2, r1
temp4.xyz = lerp(temp1.xyz, temp2.xyz, temp3.www);
// lrp r1.xyz, r3.z, r0, r4
temp1.xyz = lerp(temp4.xyz, temp0.xyz, temp3.zzz);
// mul r0.xyz, r1, t3
temp0.xyz = temp1.xyz * i.texcoord3.xyz;
// mul r0.xyz, r3.x, r0
temp0.xyz = temp3.xxx * temp0.xyz;
// mov r0.w, t3.w
temp0.w = i.texcoord3.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// TerrainTile_L_VertexShader36 Vertex_2_0 Has PRES False
struct TerrainTile_L_VertexShader36_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
};
struct TerrainTile_L_VertexShader36_Output
{
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 position : POSITION;
float4 texcoord3 : TEXCOORD3;
float2 texcoord2 : TEXCOORD2;
};
TerrainTile_L_VertexShader36_Output TerrainTile_L_VertexShader36(TerrainTile_L_VertexShader36_Input i)
{
TerrainTile_L_VertexShader36_Output o;
float4 temp0;
float3 temp1;
// def c0, 0.01, -1, 3.333333E-05, -0
// dcl_position v0
// dcl_normal v1
// dcl_texcoord v2
// dcl_texcoord1 v3
// dcl_texcoord2 v4
// mul oT0.xy, v2, c0.z
o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05);
// mul oT1.xy, v3, c0.z
o.texcoord1.xy = i.texcoord1.xy * float2(3.3333334E-05, 3.3333334E-05);
// mul oT1.zw, v4.xyyx, c0.z
o.texcoord1.zw = i.texcoord2.yx * float2(3.3333334E-05, 3.3333334E-05);
// add oT0.w, v0.w, c0.y
o.texcoord.w = i.position.w + float1(-1);
// add oT0.z, v1.w, c0.y
o.texcoord.z = i.normal.w + float1(-1);
// mad r0, v0.xyzx, -c0.yyyw, -c0.wwwy
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// mad r0.xyz, v1, c0.x, c0.y
temp0.xyz = i.normal.xyz * float3(0.01, 0.01, 0.01) + float3(-1, -1, -1);
// dp3 r0.w, r0, c8
temp0.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz);
// max r0.w, r0.w, -c0.w
temp0.w = max(temp0.w, float1(0));
// mul r1.xyz, r0.w, c7
temp1.xyz = temp0.www * DirectionalLight[1].Color.xyz;
// dp3 r0.w, r0, c6
temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz);
// dp3 r0.x, r0, c10
temp0.x = dot(temp0.xyz, DirectionalLight[2].Direction.xyz);
// max r0.y, r0.w, -c0.w
temp0.y = max(temp0.w, float1(0));
// mad r0.yzw, c5.xxyz, r0.y, r1.xxyz
temp0.yzw = DirectionalLight[0].Color.xyz * temp0.yyy + temp1.xyz;
// max r0.x, r0.x, -c0.w
temp0.x = max(temp0.x, float1(0));
// mad r0.xyz, c9, r0.x, r0.yzww
temp0.xyz = DirectionalLight[2].Color.xyz * temp0.xxx + temp0.yzw;
// add oT3.xyz, r0, c4
o.texcoord3.xyz = temp0.xyz + AmbientLightColor.xyz;
// add r0.xy, v0, c11.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c11
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT3.w, -c0.y
o.texcoord3.w = float1(1);
//
return o;
}
// Scorch_M_Expression37 Expression_2_0 Has PRES False
float Scorch_M_Expression37()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = HasShadow.x;
return expr0;
}
// Scorch_M_VertexShader38 Vertex_2_0 Has PRES True
struct Scorch_M_VertexShader38_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Scorch_M_VertexShader38_Output
{
float4 position : POSITION;
float4 color1 : COLOR1;
float4 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord5 : TEXCOORD5;
};
Scorch_M_VertexShader38_Output Scorch_M_VertexShader38(Scorch_M_VertexShader38_Input i)
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
Scorch_M_VertexShader38_Output o;
float4 temp0, temp1;
float3 temp2;
// def c0, 2.55, -1, 1, 0
// def c1, 0.5, 3.333333E-05, 0, -0.0015
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// mad r0, v0.xyzx, c0.zzzw, c0.wwwz
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// mad r1.xyz, v1, c0.x, c0.y
temp1.xyz = i.normal.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1);
// dp3 r1.w, r1, c6
temp1.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz);
// max r1.w, r1.w, c0.w
temp1.w = max(temp1.w, float1(0));
// mul r2.xyz, r1.w, c5
temp2.xyz = temp1.www * DirectionalLight[0].Color.xyz;
// mul oD1.xyz, r2, c1.x
o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5);
// dp3 r1.w, r1, c10
temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz);
// dp3 r1.x, r1, c8
temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz);
// max r1.y, r1.w, c0.w
temp1.y = max(temp1.w, float1(0));
// mul r1.yzw, r1.y, c9.xxyz
temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz;
// max r1.x, r1.x, c0.w
temp1.x = max(temp1.x, float1(0));
// mad r1.xyz, c7, r1.x, r1.yzww
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul r1.xyz, r1, v2
temp1.xyz = temp1.xyz * i.color.xyz;
// mul oD0.xyz, r1, c1.x
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, v0, c11.zwzw
temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mul r1.xy, v0.z, c117.zwzw
temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw;
// mad r1.xy, v0, c117, -r1
temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add oT3.xy, r1, c118
o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r1.yz, c0
temp1.yz = float2(-1, 1);
// mul r1.xy, r1.yzzw, c12.x
temp1.xy = temp1.yz * expr12.xx;
// mul oT3.zw, r1.xyxy, v0.xyyx
o.texcoord3.zw = temp1.xy * i.position.yx;
// mov oD0.w, v2.w
o.color.w = i.color.w;
// mov oD1.w, c0.z
o.color1.w = float1(1);
// mul oT0.xy, v3, c1.y
o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05);
// mov oT0.zw, c0.w
o.texcoord.zw = float2(0, 0);
// mov oT1, c0.w
o.texcoord1 = float4(0, 0, 0, 0);
// dp4 r1.x, r0, c113
temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 r1.y, r0, c114
temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 r1.z, r0, c115
temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 r0.x, r0, c116
temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// rcp r0.y, r0.x
temp0.y = 1.0f / temp0.x;
// mov oT5.w, r0.x
o.texcoord5.w = temp0.x;
// mad oT5.xyz, r1, r0.y, c1.zzww
o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015);
//
return o;
}
// Road_M_Expression39 Expression_2_0 Has PRES False
float Road_M_Expression39()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = HasShadow.x;
return expr0;
}
// Road_M_VertexShader40 Vertex_2_0 Has PRES True
struct Road_M_VertexShader40_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Road_M_VertexShader40_Output
{
float4 position : POSITION;
float4 color1 : COLOR1;
float4 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float4 texcoord5 : TEXCOORD5;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
Road_M_VertexShader40_Output Road_M_VertexShader40(Road_M_VertexShader40_Input i)
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
Road_M_VertexShader40_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 0.5, -1
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// dp3 r1.x, v1, c6
temp1.x = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c5
temp1.xyz = temp1.xxx * DirectionalLight[0].Color.xyz;
// mul oD1.xyz, r1, c0.z
o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// dp3 r1.x, v1, c10
temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c9
temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz;
// dp3 r1.w, v1, c8
temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r1.w, r1.w, c0.y
temp1.w = max(temp1.w, float1(0));
// mad r1.xyz, c7, r1.w, r1
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul r1.xyz, r1, v2
temp1.xyz = temp1.xyz * i.color.xyz;
// mul oD0.xyz, r1, c0.z
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, v0, c11.zwzw
temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mul r1.xy, v0.z, c117.zwzw
temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw;
// mad r1.xy, v0, c117, -r1
temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add oT3.xy, r1, c118
o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r1.xw, c0
temp1.xw = float2(1, -1);
// mul r1.xy, r1.wxzw, c12.x
temp1.xy = temp1.wx * expr12.xx;
// mul oT3.zw, r1.xyxy, v0.xyyx
o.texcoord3.zw = temp1.xy * i.position.yx;
// dp4 oT5.x, r0, c113
o.texcoord5.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 oT5.y, r0, c114
o.texcoord5.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 oT5.z, r0, c115
o.texcoord5.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 oT5.w, r0, c116
o.texcoord5.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// mov oD0.w, v2.w
o.color.w = i.color.w;
// mov oD1.w, c0.x
o.color1.w = float1(1);
// mov oT0.xy, v3
o.texcoord.xy = i.texcoord.xy;
// mov oT0.zw, c0.y
o.texcoord.zw = float2(0, 0);
// mov oT1, c0.y
o.texcoord1 = float4(0, 0, 0, 0);
//
return o;
}
// Cliff_M_Expression41 Expression_2_0 Has PRES False
float Cliff_M_Expression41()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = HasShadow.x;
return expr0;
}
// Cliff_M_VertexShader42 Vertex_2_0 Has PRES True
struct Cliff_M_VertexShader42_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Cliff_M_VertexShader42_Output
{
float4 position : POSITION;
float4 color1 : COLOR1;
float4 color : COLOR;
float2 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord5 : TEXCOORD5;
};
Cliff_M_VertexShader42_Output Cliff_M_VertexShader42(Cliff_M_VertexShader42_Input i)
{
/*
PRSI
OutputRegisterOffset: 12
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 12
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr12;
{
float4 temp0;
// Expression_2_1
// mul r0.x, c0.x, (66)
temp0.x = MapCellSize.x * (66);
// rcp c12.x, r0.x
expr12.x = 1.0f / (temp0.x);
}
Cliff_M_VertexShader42_Output o;
float4 temp0, temp1;
// def c0, 0, -0.0015, 0, 0
// def c1, 1, 0, 0.5, -1
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// mad r0, v0.xyzx, c1.xxxy, c1.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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));
// dp3 r1.x, v1, c6
temp1.x = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz);
// max r1.x, r1.x, c1.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c5
temp1.xyz = temp1.xxx * DirectionalLight[0].Color.xyz;
// mul oD1.xyz, r1, c1.z
o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// dp3 r1.x, v1, c10
temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r1.x, r1.x, c1.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c9
temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz;
// dp3 r1.w, v1, c8
temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r1.w, r1.w, c1.y
temp1.w = max(temp1.w, float1(0));
// mad r1.xyz, c7, r1.w, r1
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul r1.xyz, r1, v2
temp1.xyz = temp1.xyz * i.color.xyz;
// mul oD0.xyz, r1, c1.z
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, v0, c11.zwzw
temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mul r1.xy, v0.z, c117.zwzw
temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw;
// mad r1.xy, v0, c117, -r1
temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy;
// add oT3.xy, r1, c118
o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy;
// mov r1.xw, c1
temp1.xw = float2(1, -1);
// mul r1.xy, r1.wxzw, c12.x
temp1.xy = temp1.wx * expr12.xx;
// mul oT3.zw, r1.xyxy, v0.xyyx
o.texcoord3.zw = temp1.xy * i.position.yx;
// mov oD0.w, v2.w
o.color.w = i.color.w;
// mov oD1.w, c1.x
o.color1.w = float1(1);
// mov oT0.xy, v3
o.texcoord.xy = i.texcoord.xy;
// mov oT0.zw, c1.y
o.texcoord.zw = float2(0, 0);
// mov oT1, c1.y
o.texcoord1 = float4(0, 0, 0, 0);
// dp4 r1.x, r0, c113
temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 r1.y, r0, c114
temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 r1.z, r0, c115
temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 r0.x, r0, c116
temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// rcp r0.y, r0.x
temp0.y = 1.0f / temp0.x;
// mov oT5.w, r0.x
o.texcoord5.w = temp0.x;
// mad oT5.xyz, r1, r0.y, c0.xxyw
o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015);
//
return o;
}
// TerrainTile_M_Expression43 Expression_2_0 Has PRES False
float TerrainTile_M_Expression43()
{
float4 temp0;
float1 expr0;
// add r0.x, c0.x, c0.x
temp0.x = IsTerrainAtlasEnabled.x + IsTerrainAtlasEnabled.x;
// add c0.x, r0.x, c1.x
expr0.x = temp0.x + HasShadow.x;
return expr0;
}
// TerrainTile_M_Expression44 Expression_2_0 Has PRES False
float TerrainTile_M_Expression44()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = IsTerrainAtlasEnabled.x;
return expr0;
}
// Scorch_Expression45 Expression_2_0 Has PRES False
float Scorch_Expression45()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = HasShadow.x;
return expr0;
}
// Scorch_VertexShader46 Vertex_3_0 Has PRES False
struct Scorch_VertexShader46_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
float4 tangent : TANGENT;
};
struct Scorch_VertexShader46_Output
{
float4 position : POSITION;
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float4 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float4 texcoord6 : TEXCOORD6;
};
Scorch_VertexShader46_Output Scorch_VertexShader46(Scorch_VertexShader46_Input i)
{
Scorch_VertexShader46_Output o;
float4 temp0, temp1;
float3 temp2, temp4;
float2 temp3;
// def c0, 2.55, -1, 1, 0
// def c1, 0.5, 3.333333E-05, 0, -0.0015
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// dcl_tangent v4
// dcl_position o0
// dcl_color o1
// dcl_color1 o2.x
// dcl_texcoord o3
// dcl_texcoord1 o4
// dcl_texcoord2 o5.xy
// dcl_texcoord3 o6.xyz
// dcl_texcoord4 o7
// dcl_texcoord5 o8.xyz
// dcl_texcoord6 o9
// mad r0, v0.xyzx, c0.zzzw, c0.wwwz
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 o0.x, r0, c119
o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30));
// dp4 o0.y, r0, c120
o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31));
// dp4 o0.z, r0, c121
o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// dp4 o0.w, r0, c122
o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// add r1.xyz, c123, -v0
temp1.xyz = EyePosition.xyz + -i.position.xyz;
// dp3 r1.w, r1, r1
temp1.w = dot(temp1.xyz, temp1.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mad r1.xyz, r1, r1.w, c6
temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz;
// mad r2.xyz, v4, c0.x, c0.y
temp2.xyz = i.tangent.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1);
// dp3 r3.x, r1, -r2
temp3.x = dot(temp1.xyz, -temp2.xyz);
// dp3 r2.x, c6, -r2
temp2.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz);
// mad r4.xyz, v1, c0.x, c0.y
temp4.xyz = i.normal.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1);
// dp3 r3.y, r1, r4
temp3.y = dot(temp1.xyz, temp4.xyz);
// dp3 r1.x, r3.xxyw, r3.xxyw
temp1.x = dot(temp3.xxy, temp3.xxy);
// rsq r1.x, r1.x
temp1.x = 1 / sqrt(temp1.x);
// mul o8.xyz, r3.xxyw, r1.x
o.texcoord5 = temp3.xxyw * temp1.x;
// dp3 r1.x, r4, c10
temp1.x = dot(temp4.xyz, DirectionalLight[2].Direction.xyz);
// max r1.x, r1.x, c0.w
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c9
temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz;
// dp3 r1.w, r4, c8
temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz);
// dp3 r2.y, c6, r4
temp2.y = dot(DirectionalLight[0].Direction.xyz, temp4.xyz);
// max r1.w, r1.w, c0.w
temp1.w = max(temp1.w, float1(0));
// mad r1.xyz, c7, r1.w, r1
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul r1.xyz, r1, v2
temp1.xyz = temp1.xyz * i.color.xyz;
// mul o1.xyz, r1, c1.x
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, c11.zwzw, v0
temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy;
// mul o5.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mov o1.w, v2.w
o.color.w = i.color.w;
// mov o2.x, c0.z
o.color1 = float4(1, 1, 1, 1);
// mul o3.xy, c1.y, v3
o.texcoord.xy = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord.xy;
// mov o3.zw, c0.w
o.texcoord.zw = float2(0, 0);
// mov o4, c0.w
o.texcoord1 = float4(0, 0, 0, 0);
// mov o6.xyz, v0
o.texcoord3 = i.position;
// max r2.z, r2.y, c0.w
temp2.z = max(temp2.y, float1(0));
// mov o7, r2.xxyz
o.texcoord4 = temp2.xxyz;
// dp4 r1.x, r0, c113
temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 r1.y, r0, c114
temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 r1.z, r0, c115
temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 r0.x, r0, c116
temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// rcp r0.y, r0.x
temp0.y = 1.0f / temp0.x;
// mov o9.w, r0.x
o.texcoord6.w = temp0.x;
// mad o9.xyz, r1, r0.y, c1.zzww
o.texcoord6.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015);
//
return o;
}
// Road_Expression47 Expression_2_0 Has PRES False
float Road_Expression47()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = HasShadow.x;
return expr0;
}
// Road_VertexShader48 Vertex_3_0 Has PRES False
struct Road_VertexShader48_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Road_VertexShader48_Output
{
float4 position : POSITION;
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float4 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float4 texcoord6 : TEXCOORD6;
};
Road_VertexShader48_Output Road_VertexShader48(Road_VertexShader48_Input i)
{
Road_VertexShader48_Output o;
float4 temp0, temp1;
float3 temp2, temp3;
// def c0, 1, 0, -1, 0.5
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// dcl_position o0
// dcl_color o1
// dcl_color1 o2.x
// dcl_texcoord o3
// dcl_texcoord1 o4
// dcl_texcoord2 o5.xy
// dcl_texcoord3 o6.xyz
// dcl_texcoord4 o7
// dcl_texcoord5 o8.xyz
// dcl_texcoord6 o9
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 o0.x, r0, c119
o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30));
// dp4 o0.y, r0, c120
o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31));
// dp4 o0.z, r0, c121
o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// dp4 o0.w, r0, c122
o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// mul r1.xyz, c0.xyyw, v1.zxyw
temp1.xyz = float3(1, 0, 0) * i.normal.zxy;
// mad r1.xyz, v1.yzxw, c0.yyxw, -r1
temp1.xyz = i.normal.yzx * float3(0, 0, 1) + -temp1.xyz;
// dp3 o7.x, c6, -r1
o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz);
// mul r2.xyz, c0.yyzw, v1.zxyw
temp2.xyz = float3(0, 0, -1) * i.normal.zxy;
// mad r2.xyz, v1.yzxw, c0.yzyw, -r2
temp2.xyz = i.normal.yzx * float3(0, -1, 0) + -temp2.xyz;
// dp3 o7.y, c6, -r2
o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz);
// dp3 r1.w, c6, v1
temp1.w = dot(DirectionalLight[0].Direction.xyz, i.normal.xyz);
// max o7.w, r1.w, c0.y
o.texcoord4.w = max(temp1.w, float1(0));
// mov o7.z, r1.w
o.texcoord4.z = temp1.w;
// add r3.xyz, c123, -v0
temp3.xyz = EyePosition.xyz + -i.position.xyz;
// dp3 r1.w, r3, r3
temp1.w = dot(temp3.xyz, temp3.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mad r3.xyz, r3, r1.w, c6
temp3.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz;
// dp3 r1.x, r3, -r1
temp1.x = dot(temp3.xyz, -temp1.xyz);
// dp3 r1.y, r3, -r2
temp1.y = dot(temp3.xyz, -temp2.xyz);
// dp3 r1.z, r3, v1
temp1.z = dot(temp3.xyz, i.normal.xyz);
// dp3 r1.w, r1, r1
temp1.w = dot(temp1.xyz, temp1.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mul o8.xyz, r1, r1.w
o.texcoord5 = temp1 * temp1.w;
// dp3 r1.x, v1, c10
temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c9
temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz;
// dp3 r1.w, v1, c8
temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r1.w, r1.w, c0.y
temp1.w = max(temp1.w, float1(0));
// mad r1.xyz, c7, r1.w, r1
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul r1.xyz, r1, v2
temp1.xyz = temp1.xyz * i.color.xyz;
// mul o1.xyz, r1, c0.w
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, c11.zwzw, v0
temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy;
// mul o5.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// dp4 o9.x, r0, c113
o.texcoord6.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 o9.y, r0, c114
o.texcoord6.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 o9.z, r0, c115
o.texcoord6.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 o9.w, r0, c116
o.texcoord6.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// mov o1.w, v2.w
o.color.w = i.color.w;
// mov o2.x, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov o3.xy, v3
o.texcoord.xy = i.texcoord.xy;
// mov o3.zw, c0.y
o.texcoord.zw = float2(0, 0);
// mov o4, c0.y
o.texcoord1 = float4(0, 0, 0, 0);
// mov o6.xyz, v0
o.texcoord3 = i.position;
//
return o;
}
// Cliff_Expression49 Expression_2_0 Has PRES False
float Cliff_Expression49()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = HasShadow.x;
return expr0;
}
// Cliff_VertexShader50 Vertex_3_0 Has PRES False
struct Cliff_VertexShader50_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Cliff_VertexShader50_Output
{
float4 position : POSITION;
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float4 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float4 texcoord6 : TEXCOORD6;
};
Cliff_VertexShader50_Output Cliff_VertexShader50(Cliff_VertexShader50_Input i)
{
Cliff_VertexShader50_Output o;
float4 temp0, temp1;
float3 temp2, temp3;
// def c0, 1, 0, -1, 0.5
// def c1, 0, -0.0015, 0, 0
// dcl_position v0
// dcl_normal v1
// dcl_color v2
// dcl_texcoord v3
// dcl_position o0
// dcl_color o1
// dcl_color1 o2.x
// dcl_texcoord o3
// dcl_texcoord1 o4
// dcl_texcoord2 o5.xy
// dcl_texcoord3 o6.xyz
// dcl_texcoord4 o7
// dcl_texcoord5 o8.xyz
// dcl_texcoord6 o9
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 o0.x, r0, c119
o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30));
// dp4 o0.y, r0, c120
o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31));
// dp4 o0.z, r0, c121
o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32));
// dp4 o0.w, r0, c122
o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33));
// mul r1.xyz, c0.xyyw, v1.zxyw
temp1.xyz = float3(1, 0, 0) * i.normal.zxy;
// mad r1.xyz, v1.yzxw, c0.yyxw, -r1
temp1.xyz = i.normal.yzx * float3(0, 0, 1) + -temp1.xyz;
// dp3 o7.x, c6, -r1
o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz);
// mul r2.xyz, c0.yyzw, v1.zxyw
temp2.xyz = float3(0, 0, -1) * i.normal.zxy;
// mad r2.xyz, v1.yzxw, c0.yzyw, -r2
temp2.xyz = i.normal.yzx * float3(0, -1, 0) + -temp2.xyz;
// dp3 o7.y, c6, -r2
o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz);
// dp3 r1.w, c6, v1
temp1.w = dot(DirectionalLight[0].Direction.xyz, i.normal.xyz);
// max o7.w, r1.w, c0.y
o.texcoord4.w = max(temp1.w, float1(0));
// mov o7.z, r1.w
o.texcoord4.z = temp1.w;
// add r3.xyz, c123, -v0
temp3.xyz = EyePosition.xyz + -i.position.xyz;
// dp3 r1.w, r3, r3
temp1.w = dot(temp3.xyz, temp3.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mad r3.xyz, r3, r1.w, c6
temp3.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz;
// dp3 r1.x, r3, -r1
temp1.x = dot(temp3.xyz, -temp1.xyz);
// dp3 r1.y, r3, -r2
temp1.y = dot(temp3.xyz, -temp2.xyz);
// dp3 r1.z, r3, v1
temp1.z = dot(temp3.xyz, i.normal.xyz);
// dp3 r1.w, r1, r1
temp1.w = dot(temp1.xyz, temp1.xyz);
// rsq r1.w, r1.w
temp1.w = 1 / sqrt(temp1.w);
// mul o8.xyz, r1, r1.w
o.texcoord5 = temp1 * temp1.w;
// dp3 r1.x, v1, c10
temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// mul r1.xyz, r1.x, c9
temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz;
// dp3 r1.w, v1, c8
temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz);
// max r1.w, r1.w, c0.y
temp1.w = max(temp1.w, float1(0));
// mad r1.xyz, c7, r1.w, r1
temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz;
// add r1.xyz, r1, c4
temp1.xyz = temp1.xyz + AmbientLightColor.xyz;
// mul r1.xyz, r1, v2
temp1.xyz = temp1.xyz * i.color.xyz;
// mul o1.xyz, r1, c0.w
o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5);
// add r1.xy, c11.zwzw, v0
temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy;
// mul o5.xy, r1, c11
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// mov o1.w, v2.w
o.color.w = i.color.w;
// mov o2.x, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov o3.xy, v3
o.texcoord.xy = i.texcoord.xy;
// mov o3.zw, c0.y
o.texcoord.zw = float2(0, 0);
// mov o4, c0.y
o.texcoord1 = float4(0, 0, 0, 0);
// mov o6.xyz, v0
o.texcoord3 = i.position;
// dp4 r1.x, r0, c113
temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30));
// dp4 r1.y, r0, c114
temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31));
// dp4 r1.z, r0, c115
temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32));
// dp4 r0.x, r0, c116
temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33));
// rcp r0.y, r0.x
temp0.y = 1.0f / temp0.x;
// mov o9.w, r0.x
o.texcoord6.w = temp0.x;
// mad o9.xyz, r1, r0.y, c1.xxyw
o.texcoord6.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015);
//
return o;
}
// TerrainTile_Expression51 Expression_2_0 Has PRES False
float TerrainTile_Expression51()
{
float4 temp0;
float1 expr0;
// add r0.x, c0.x, c0.x
temp0.x = IsTerrainAtlasEnabled.x + IsTerrainAtlasEnabled.x;
// add c0.x, r0.x, c1.x
expr0.x = temp0.x + HasShadow.x;
return expr0;
}
// TerrainTile_Expression52 Expression_2_0 Has PRES False
float TerrainTile_Expression52()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = IsTerrainAtlasEnabled.x;
return expr0;
}
technique TerrainTile
{
pass P0
{
VertexShader = VS_TerrainTile_Array[TerrainTile_Expression52()]; // 95
PixelShader = PS_TerrainTile_Array[TerrainTile_Expression51()]; // 96
ZEnable = 1;
ZWriteEnable = 1;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique Cliff
{
pass P0
{
VertexShader = compile vs_3_0 Cliff_VertexShader50(); // 99
PixelShader = PS_Cliff_Array[Cliff_Expression49()]; // 100
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}
technique Road
{
pass P0
{
VertexShader = compile vs_3_0 Road_VertexShader48(); // 103
PixelShader = PS_Road_Array[Road_Expression47()]; // 104
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
DepthBias = -0.0004;
}
}
technique Scorch
{
pass P0
{
VertexShader = compile vs_3_0 Scorch_VertexShader46(); // 107
PixelShader = PS_Scorch_Array[Scorch_Expression45()]; // 108
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
DepthBias = -0.0002;
}
}
technique TerrainTile_M
{
pass P0
{
VertexShader = VS_TerrainTile_M_Array[TerrainTile_M_Expression44()]; // 115
PixelShader = PS_TerrainTile_M_Array[TerrainTile_M_Expression43()]; // 116
ZEnable = 1;
ZWriteEnable = 1;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique Cliff_M
{
pass P0
{
VertexShader = compile vs_2_0 Cliff_M_VertexShader42(); // 119
PixelShader = PS_Cliff_M_Array[Cliff_M_Expression41()]; // 120
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}
technique Road_M
{
pass P0
{
VertexShader = compile vs_2_0 Road_M_VertexShader40(); // 123
PixelShader = PS_Road_M_Array[Road_M_Expression39()]; // 124
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
DepthBias = -0.0004;
}
}
technique Scorch_M
{
pass P0
{
VertexShader = compile vs_2_0 Scorch_M_VertexShader38(); // 127
PixelShader = PS_Scorch_M_Array[Scorch_M_Expression37()]; // 128
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
DepthBias = -0.0002;
}
}
technique TerrainTile_L
{
pass P0
{
VertexShader = compile vs_2_0 TerrainTile_L_VertexShader36(); // 129
PixelShader = compile ps_2_0 TerrainTile_L_PixelShader35(); // 130
ZEnable = 1;
ZWriteEnable = 1;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique Cliff_L
{
pass P0
{
VertexShader = compile vs_2_0 Cliff_L_VertexShader34(); // 131
PixelShader = compile ps_2_0 Cliff_L_PixelShader33(); // 132
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}
technique Road_L
{
pass P0
{
VertexShader = compile vs_2_0 Road_L_VertexShader32(); // 133
PixelShader = compile ps_2_0 Road_L_PixelShader31(); // 134
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
DepthBias = -0.0004;
}
}
technique Scorch_L
{
pass P0
{
VertexShader = compile vs_2_0 Scorch_L_VertexShader30(); // 135
PixelShader = compile ps_2_0 Scorch_L_PixelShader29(); // 136
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
DepthBias = -0.0002;
}
}
technique _CreateShadowMap
{
pass P0
{
VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader28(); // 137
PixelShader = compile ps_2_0 _CreateShadowMap_PixelShader27(); // 138
ZEnable = 1;
ZWriteEnable = 1;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique _CreateDepthMap
{
pass P0
{
VertexShader = compile vs_2_0 _CreateDepthMap_VertexShader26(); // 139
PixelShader = compile ps_2_0 _CreateDepthMap_PixelShader25(); // 140
ZEnable = 1;
ZWriteEnable = 1;
ZFunc = 4;
CullMode = 2;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}