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