上传文件

This commit is contained in:
lanyi 2021-12-28 10:06:46 +01:00
commit a6390b1508
88 changed files with 253728 additions and 0 deletions

3473
basicw3d.fx Normal file

File diff suppressed because it is too large Load Diff

1942
basicw3dholographic.fx Normal file

File diff suppressed because it is too large Load Diff

3486
basicw3dsupporthdr.fx Normal file

File diff suppressed because it is too large Load Diff

110
bootupscreen.fx Normal file
View File

@ -0,0 +1,110 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture BaseTexture <string UIWidget = "None";>; // 2
sampler2D BaseTextureSampler : register(ps_2_0, s0) <string Texture = "BaseTexture"; string UIWidget = "None";> =
sampler_state
{
Texture = <BaseTexture>; // 4
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
// Blit_PixelShader1 Pixel_2_0 Has PRES False
struct Blit_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float4 color : COLOR;
};
float4 Blit_PixelShader1(Blit_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.xy
// dcl v0
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Blit_VertexShader2 Vertex_2_0 Has PRES False
struct Blit_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Blit_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float4 color : COLOR;
};
Blit_VertexShader2_Output Blit_VertexShader2(Blit_VertexShader2_Input i)
{
Blit_VertexShader2_Output o;
// def c0, 0, 1, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color v2
// mov oPos.xy, v0
o.position.xy = i.position.xy;
// mov oPos.zw, c0.xyxy
o.position.zw = float2(0, 1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
// mov oD0, v2
o.color = i.color;
//
return o;
}
technique Blit
{
pass P0
{
VertexShader = compile vs_2_0 Blit_VertexShader2(); // 7
PixelShader = compile ps_2_0 Blit_PixelShader1(); // 8
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaBlendEnable = 1;
AlphaTestEnable = 0;
}
}

3168
buildingsallied.fx Normal file

File diff suppressed because it is too large Load Diff

5429
buildingsfactionfrozen.fx Normal file

File diff suppressed because it is too large Load Diff

3149
buildingsgeneric.fx Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5374
buildingsgenericfrozen.fx Normal file

File diff suppressed because it is too large Load Diff

3168
buildingsjapan.fx Normal file

File diff suppressed because it is too large Load Diff

3482
buildingsjapanbuildup.fx Normal file

File diff suppressed because it is too large Load Diff

3168
buildingssoviet.fx Normal file

File diff suppressed because it is too large Load Diff

194
connectionline.fx Normal file
View File

@ -0,0 +1,194 @@
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] <bool unmanaged = 1;>;
column_major float4x4 View : View : register(vs_2_0, c11);
float Time : Time;
float4 HouseColor : register(ps_2_0, c11) <string UIWidget = "None"; string SasBindAddress = "ConnectionLine.HouseColor"; int WW3DDynamicSet = 2;> = { 1, 1, 1, 1 };
float LineLength : register(vs_2_0, c16) <string UIWidget = "None"; string SasBindAddress = "ConnectionLine.LineLength"; int WW3DDynamicSet = 2;> = { 2.5 };
texture LineTexture <string UIWidget = "None";>; // 6
sampler2D LineTextureSampler : register(ps_2_0, s0) <string Texture = "LineTexture"; string UIWidget = "None";> =
sampler_state
{
Texture = <LineTexture>; // 8
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c17) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 13
sampler2D ShroudTextureSampler : register(ps_2_0, s1) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 17
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
// Default_PixelShader1 Pixel_2_0 Has PRES False
struct Default_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 Default_PixelShader1(Default_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(LineTextureSampler, i.texcoord.xy);
// texld r1, t1, s0
temp1 = tex2D(LineTextureSampler, i.texcoord1.xy);
// texld r2, t2, s1
temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// add r0, r0, r1
temp0 = temp0 + temp1;
// mul r0, r0, c11
temp0 = temp0 * HouseColor;
// mul r0.xyz, r2.x, r0
temp0.xyz = temp2.xxx * temp0.xyz;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_VertexShader2 Vertex_2_0 Has PRES True
struct Default_VertexShader2_Input
{
float4 position : POSITION;
float4 tangent : TANGENT;
float4 texcoord : TEXCOORD;
};
struct Default_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
Default_VertexShader2_Output Default_VertexShader2(Default_VertexShader2_Input i)
{
/*
PRSI
OutputRegisterOffset: 14
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 2
Unknown3: 0
Unknown4: 0
Unknown5: 14
Unknown6: 2
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr14;
float4 expr15;
{
// Expression_2_1
// mul c14.x, c0.x, (4)
expr14.x = Time.x * (4);
// mul c15.x, c0.x, (0.8)
expr15.x = Time.x * (0.8);
}
Default_VertexShader2_Output o;
float4 temp0;
// def c0, -0.5, 10, 1, 0.006666667
// dcl_position v0
// dcl_tangent v1
// dcl_texcoord v2
// mul r0.xyz, v1.zxyw, c13.yzxw
temp0.xyz = i.tangent.zxy * (View._m02_m12_m22_m32).yzx;
// mad r0.xyz, v1.yzxw, c13.zxyw, -r0
temp0.xyz = i.tangent.yzx * (View._m02_m12_m22_m32).zxy + -temp0.xyz;
// add r0.w, v2.x, c0.x
temp0.w = i.texcoord.x + float1(-0.5);
// mul r0.w, r0.w, c0.y
temp0.w = temp0.w * float1(10);
// mad r0.xyz, r0, r0.w, v0
temp0.xyz = temp0.xyz * temp0.www + i.position.xyz;
// mov r0.w, c0.z
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, c17.zwzw
temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul r0.z, v2.y, c16.x
temp0.z = i.texcoord.y * LineLength.x;
// mov r0.w, c0.w
temp0.w = float1(0.006666667);
// mad oT0.y, r0.z, r0.w, -c14.x
o.texcoord.y = temp0.z * temp0.w + -expr14.x;
// mad oT1.y, r0.z, r0.w, -c15.x
o.texcoord1.y = temp0.z * temp0.w + -expr15.x;
// mul oT2.xy, r0, c17
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.x, v2.x
o.texcoord.x = i.texcoord.x;
// mov oT1.x, v2.x
o.texcoord1.x = i.texcoord.x;
//
return o;
}
technique Default
{
pass pass0
{
VertexShader = compile vs_2_0 Default_VertexShader2(); // 22
PixelShader = compile ps_2_0 Default_PixelShader1(); // 23
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 2;
DestBlend = 2;
}
}

3753
cpuparticle.fx Normal file

File diff suppressed because it is too large Load Diff

529
debug.fx Normal file
View File

@ -0,0 +1,529 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture ShadowMap <string SasBindAddress = "Sas.Shadow[0].ShadowMap";>; // 2
sampler2D ShadowMapSampler : register(ps_2_0, s0) <string Texture = "ShadowMap"; string SasBindAddress = "Sas.Shadow[0].ShadowMap";> =
sampler_state
{
Texture = <ShadowMap>; // 4
MinFilter = 1;
MagFilter = 1;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
float4 FlatColorOverride <string UIWidget = "None"; string SasBindAddress = "WW3D.FlatColor"; int WW3DDynamicSet = 2;>;
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
// CollisionBox_PixelShader1 Pixel_2_0 Has PRES False
float4 CollisionBox_PixelShader1(float4 color : COLOR) : COLOR
{
float4 out_color;
// dcl v0
// mov oC0, v0
out_color = color;
//
return out_color;
}
// CollisionBox_VertexShader2 Vertex_2_0 Has PRES False
struct CollisionBox_VertexShader2_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 color : COLOR;
};
struct CollisionBox_VertexShader2_Output
{
float4 position : POSITION;
float4 color : COLOR;
};
CollisionBox_VertexShader2_Output CollisionBox_VertexShader2(CollisionBox_VertexShader2_Input i)
{
CollisionBox_VertexShader2_Output o;
float4 temp0;
// def c0, 1, 0, 0.5, 0.25
// def c1, 0.8, 0.7, 0.2, 0
// def c2, 0, 0.3, 0.9, 0
// dcl_position v0
// dcl_normal v1
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// dp3 r0.x, v1.xzyw, -c0.zzww
temp0.x = dot(i.normal.xzy, float3(-0.5, -0.5, -0.25));
// max r0.x, r0.x, c0.y
temp0.x = max(temp0.x, float1(0));
// min r0.x, r0.x, c0.x
temp0.x = min(temp0.x, float1(1));
// mul r0.xyz, r0.x, c2
temp0.xyz = temp0.xxx * float3(0, 0.3, 0.9);
// dp3 r0.w, v1.xzyw, c0.zzww
temp0.w = dot(i.normal.xzy, float3(0.5, 0.5, 0.25));
// max r0.w, r0.w, c0.y
temp0.w = max(temp0.w, float1(0));
// min r0.w, r0.w, c0.x
temp0.w = min(temp0.w, float1(1));
// mad oD0.xyz, r0.w, c1, r0
o.color.xyz = temp0.www * float3(0.8, 0.7, 0.2) + temp0.xyz;
// mov oD0.w, v2.w
o.color.w = i.color.w;
//
return o;
}
// DrawObject_Alpha_PixelShader3 Pixel_2_0 Has PRES False
float4 DrawObject_Alpha_PixelShader3(float4 color : COLOR) : COLOR
{
float4 out_color;
// dcl v0
// mov oC0, v0
out_color = color;
//
return out_color;
}
// DrawObject_Alpha_VertexShader4 Vertex_2_0 Has PRES False
struct DrawObject_Alpha_VertexShader4_Input
{
float4 position : POSITION;
float4 color : COLOR;
};
struct DrawObject_Alpha_VertexShader4_Output
{
float4 position : POSITION;
float4 color : COLOR;
};
DrawObject_Alpha_VertexShader4_Output DrawObject_Alpha_VertexShader4(DrawObject_Alpha_VertexShader4_Input i)
{
DrawObject_Alpha_VertexShader4_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_color v1
// 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v1
o.color = i.color;
//
return o;
}
// DrawObject_Opaque_ZTest_PixelShader5 Pixel_2_0 Has PRES False
float4 DrawObject_Opaque_ZTest_PixelShader5(float4 color : COLOR) : COLOR
{
float4 out_color;
// dcl v0
// mov oC0, v0
out_color = color;
//
return out_color;
}
// DrawObject_Opaque_ZTest_VertexShader6 Vertex_2_0 Has PRES False
struct DrawObject_Opaque_ZTest_VertexShader6_Input
{
float4 position : POSITION;
float4 color : COLOR;
};
struct DrawObject_Opaque_ZTest_VertexShader6_Output
{
float4 position : POSITION;
float4 color : COLOR;
};
DrawObject_Opaque_ZTest_VertexShader6_Output DrawObject_Opaque_ZTest_VertexShader6(DrawObject_Opaque_ZTest_VertexShader6_Input i)
{
DrawObject_Opaque_ZTest_VertexShader6_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_color v1
// 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v1
o.color = i.color;
//
return o;
}
// DrawObject_Opaque_PixelShader7 Pixel_2_0 Has PRES False
float4 DrawObject_Opaque_PixelShader7(float4 color : COLOR) : COLOR
{
float4 out_color;
// dcl v0
// mov oC0, v0
out_color = color;
//
return out_color;
}
// DrawObject_Opaque_VertexShader8 Vertex_2_0 Has PRES False
struct DrawObject_Opaque_VertexShader8_Input
{
float4 position : POSITION;
float4 color : COLOR;
};
struct DrawObject_Opaque_VertexShader8_Output
{
float4 position : POSITION;
float4 color : COLOR;
};
DrawObject_Opaque_VertexShader8_Output DrawObject_Opaque_VertexShader8(DrawObject_Opaque_VertexShader8_Input i)
{
DrawObject_Opaque_VertexShader8_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_color v1
// 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v1
o.color = i.color;
//
return o;
}
// DebugDisplay_PixelShader9 Pixel_2_0 Has PRES False
float4 DebugDisplay_PixelShader9(float4 color : COLOR) : COLOR
{
float4 out_color;
// dcl v0
// mov oC0, v0
out_color = color;
//
return out_color;
}
// DebugDisplay_VertexShader10 Vertex_2_0 Has PRES True
struct DebugDisplay_VertexShader10_Output
{
float4 position : POSITION;
float4 color : COLOR;
};
DebugDisplay_VertexShader10_Output DebugDisplay_VertexShader10(float4 position : POSITION)
{
/*
PRSI
OutputRegisterOffset: 15
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 15
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr15;
{
// Expression_2_1
// mov c15, c0
expr15 = FlatColorOverride;
}
DebugDisplay_VertexShader10_Output o;
float4 temp0;
// 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, c15
o.color = expr15;
//
return o;
}
// DebugIcons_Regular_PixelShader11 Pixel_2_0 Has PRES False
float4 DebugIcons_Regular_PixelShader11(float4 color : COLOR) : COLOR
{
float4 out_color;
// dcl v0
// mov oC0, v0
out_color = color;
//
return out_color;
}
// DebugIcons_Regular_VertexShader12 Vertex_2_0 Has PRES False
struct DebugIcons_Regular_VertexShader12_Input
{
float4 position : POSITION;
float4 color : COLOR;
};
struct DebugIcons_Regular_VertexShader12_Output
{
float4 position : POSITION;
float4 color : COLOR;
};
DebugIcons_Regular_VertexShader12_Output DebugIcons_Regular_VertexShader12(DebugIcons_Regular_VertexShader12_Input i)
{
DebugIcons_Regular_VertexShader12_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_color v1
// 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v1
o.color = i.color;
//
return o;
}
// DisplayShadowMap_PixelShader13 Pixel_2_0 Has PRES False
float4 DisplayShadowMap_PixelShader13(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(ShadowMapSampler, texcoord.xy);
// mov r0, r0.x
temp0 = temp0.x;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// DisplayShadowMap_VertexShader14 Vertex_2_0 Has PRES False
struct DisplayShadowMap_VertexShader14_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct DisplayShadowMap_VertexShader14_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
DisplayShadowMap_VertexShader14_Output DisplayShadowMap_VertexShader14(DisplayShadowMap_VertexShader14_Input i)
{
DisplayShadowMap_VertexShader14_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique DisplayShadowMap
{
pass P0
{
VertexShader = compile vs_2_0 DisplayShadowMap_VertexShader14(); // 9
PixelShader = compile ps_2_0 DisplayShadowMap_PixelShader13(); // 10
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique DebugIcons_Regular
{
pass P0
{
VertexShader = compile vs_2_0 DebugIcons_Regular_VertexShader12(); // 11
PixelShader = compile ps_2_0 DebugIcons_Regular_PixelShader11(); // 12
ZEnable = 0;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}
technique DebugDisplay
{
pass P0
{
VertexShader = compile vs_2_0 DebugDisplay_VertexShader10(); // 13
PixelShader = compile ps_2_0 DebugDisplay_PixelShader9(); // 14
ZEnable = 0;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique DrawObject_Opaque
{
pass P0
{
VertexShader = compile vs_2_0 DrawObject_Opaque_VertexShader8(); // 15
PixelShader = compile ps_2_0 DrawObject_Opaque_PixelShader7(); // 16
FillMode = 3;
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
ColorWriteEnable = 15;
}
}
technique DrawObject_Opaque_ZTest
{
pass P0
{
VertexShader = compile vs_2_0 DrawObject_Opaque_ZTest_VertexShader6(); // 17
PixelShader = compile ps_2_0 DrawObject_Opaque_ZTest_PixelShader5(); // 18
FillMode = 3;
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
ColorWriteEnable = 15;
}
}
technique DrawObject_Alpha
{
pass P0
{
VertexShader = compile vs_2_0 DrawObject_Alpha_VertexShader4(); // 19
PixelShader = compile ps_2_0 DrawObject_Alpha_PixelShader3(); // 20
FillMode = 3;
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
ColorWriteEnable = 15;
}
}
technique CollisionBox
{
pass P0
{
VertexShader = compile vs_2_0 CollisionBox_VertexShader2(); // 21
PixelShader = compile ps_2_0 CollisionBox_PixelShader1(); // 22
FillMode = 3;
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
ColorWriteEnable = 15;
}
}

495
decal.fx Normal file
View File

@ -0,0 +1,495 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture BaseSampler <string UIWidget = "None"; string SasBindAddress = "Decal.BaseTexture";>; // 2
sampler2D BaseSamplerSampler <string Texture = "BaseSampler"; string UIWidget = "None"; string SasBindAddress = "Decal.BaseTexture";> =
sampler_state
{
Texture = <BaseSampler>; // 5
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
texture MaskSampler <string UIWidget = "None"; string SasBindAddress = "Decal.MaskTexture";>; // 9
sampler2D MaskSamplerSampler <string Texture = "MaskSampler"; string UIWidget = "None"; string SasBindAddress = "Decal.MaskTexture";> =
sampler_state
{
Texture = <MaskSampler>; // 12
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
row_major float4x3 World : World;
float Time : Time;
// MergeCombinePass_PixelShader1 Pixel_2_0 Has PRES False
struct MergeCombinePass_PixelShader1_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 MergeCombinePass_PixelShader1(MergeCombinePass_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// MergeCombinePass_VertexShader2 Vertex_2_0 Has PRES False
struct MergeCombinePass_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct MergeCombinePass_VertexShader2_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
MergeCombinePass_VertexShader2_Output MergeCombinePass_VertexShader2(MergeCombinePass_VertexShader2_Input i)
{
MergeCombinePass_VertexShader2_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// MergeStencilPass_PixelShader3 Pixel_2_0 Has PRES False
struct MergeStencilPass_PixelShader3_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 MergeStencilPass_PixelShader3(MergeStencilPass_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(MaskSamplerSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// MergeStencilPass_VertexShader4 Vertex_2_0 Has PRES False
struct MergeStencilPass_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct MergeStencilPass_VertexShader4_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
MergeStencilPass_VertexShader4_Output MergeStencilPass_VertexShader4(MergeStencilPass_VertexShader4_Input i)
{
MergeStencilPass_VertexShader4_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Multiply_PixelShader5 Pixel_2_0 Has PRES False
struct Multiply_PixelShader5_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Multiply_PixelShader5(Multiply_PixelShader5_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Multiply_VertexShader6 Vertex_2_0 Has PRES False
struct Multiply_VertexShader6_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Multiply_VertexShader6_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Multiply_VertexShader6_Output Multiply_VertexShader6(Multiply_VertexShader6_Input i)
{
Multiply_VertexShader6_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Add_PixelShader7 Pixel_2_0 Has PRES False
struct Add_PixelShader7_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Add_PixelShader7(Add_PixelShader7_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Add_VertexShader8 Vertex_2_0 Has PRES False
struct Add_VertexShader8_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Add_VertexShader8_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Add_VertexShader8_Output Add_VertexShader8(Add_VertexShader8_Input i)
{
Add_VertexShader8_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Alpha_PixelShader9 Pixel_2_0 Has PRES False
struct Alpha_PixelShader9_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Alpha_PixelShader9(Alpha_PixelShader9_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Alpha_VertexShader10 Vertex_2_0 Has PRES False
struct Alpha_VertexShader10_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Alpha_VertexShader10_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Alpha_VertexShader10_Output Alpha_VertexShader10(Alpha_VertexShader10_Input i)
{
Alpha_VertexShader10_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique Alpha
{
pass P0
{
VertexShader = compile vs_2_0 Alpha_VertexShader10(); // 16
PixelShader = compile ps_2_0 Alpha_PixelShader9(); // 17
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
DepthBias = -0.0001;
}
}
technique Add
{
pass P0
{
VertexShader = compile vs_2_0 Add_VertexShader8(); // 18
PixelShader = compile ps_2_0 Add_PixelShader7(); // 19
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
AlphaTestEnable = 0;
DepthBias = -0.0001;
}
}
technique Multiply
{
pass P0
{
VertexShader = compile vs_2_0 Multiply_VertexShader6(); // 20
PixelShader = compile ps_2_0 Multiply_PixelShader5(); // 21
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 1;
DestBlend = 3;
AlphaTestEnable = 0;
DepthBias = -0.0001;
}
}
technique MergeStencilPass
{
pass P0
{
VertexShader = compile vs_2_0 MergeStencilPass_VertexShader4(); // 22
PixelShader = compile ps_2_0 MergeStencilPass_PixelShader3(); // 23
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 2;
ColorWriteEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 1;
DestBlend = 2;
AlphaTestEnable = 1;
AlphaFunc = 7;
AlphaRef = 96;
StencilFunc = 8;
StencilPass = 3;
StencilEnable = 1;
StencilRef = 255;
StencilMask = 4;
StencilWriteMask = 4;
StencilZFail = 1;
StencilFail = 1;
DepthBias = -0.0001;
}
}
technique MergeCombinePass
{
pass P0
{
VertexShader = compile vs_2_0 MergeCombinePass_VertexShader2(); // 24
PixelShader = compile ps_2_0 MergeCombinePass_PixelShader1(); // 25
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 2;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
ColorWriteEnable = 15;
AlphaTestEnable = 1;
AlphaFunc = 7;
AlphaRef = 96;
StencilFunc = 6;
StencilPass = 1;
StencilEnable = 1;
StencilRef = 255;
StencilMask = 4;
StencilWriteMask = 4;
StencilZFail = 1;
StencilFail = 1;
DepthBias = -0.0001;
}
}

42818
defaultw3d.fx Normal file

File diff suppressed because it is too large Load Diff

39456
defaultw3dnofognocloud.fx Normal file

File diff suppressed because it is too large Load Diff

481
distortingobject.fx Normal file
View File

@ -0,0 +1,481 @@
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 : register(vs_2_0, c1) <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 _SasGlobal : SasGlobal <string UIWidget = "None"; int3 SasVersion = int3(1, 0, 0); string RenderBin = "Distorter";>;
int NumJointsPerVertex <string UIWidget = "None"; string SasBindAddress = "Sas.Skeleton.NumJointsPerVertex";>;
column_major float4x3 World : World : register(vs_2_0, c124);
texture NormalMap <string UIName = "Normal Texture";>; // 6
sampler2D NormalMapSampler : register(ps_2_0, s0) <string Texture = "NormalMap"; string UIName = "Normal Texture";> =
sampler_state
{
Texture = <NormalMap>; // 8
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
MaxAnisotropy = 8;
AddressU = 1;
AddressV = 1;
};
float4 TexCoordTransform_0 : register(vs_2_0, c14) <string UIName = "UV0 Scl/Move"; string UIWidget = "Spinner"; int UIMin = 0xfffffc18; int UIMax = 1000;> = { 1, 1, 0, 0 };
float BumpScale : register(ps_2_0, c11) <string UIName = "Bump Height"; string UIWidget = "Slider"; float UIMin = 0; float UIMax = 10; float UIStep = 0.1;> = { 1 };
bool AlphaTestEnable <string UIName = "Alpha Test Enable";>;
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c15) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture";>; // 18
sampler2D ShroudTextureSampler : register(ps_2_0, s1) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture";> =
sampler_state
{
Texture = <ShroudTexture>; // 21
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
column_major float4x4 View : View : register(vs_2_0, c11);
float Time : Time;
// VS_Array_Shader_0 Vertex_2_0 Has PRES True
struct VS_Array_Shader_0_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 tangent : TANGENT;
float4 binormal : BINORMAL;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct VS_Array_Shader_0_Output
{
float4 position : POSITION;
float3 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i)
{
/*
PRSI
OutputRegisterOffset: 16
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 16
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr16;
{
// Expression_2_1
// mul c16.xy, c1.x, c0.zw
expr16.xy = Time.x * TexCoordTransform_0.zw;
}
VS_Array_Shader_0_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 200, 500
// dcl_position v0
// dcl_normal v1
// dcl_tangent v2
// dcl_binormal v3
// dcl_texcoord v4
// dcl_color v5
// 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));
// dp4 r0.x, r1, c13
temp0.x = dot(temp1, (View._m02_m12_m22_m32));
// add r0.yz, r1.xxyw, c15.xzww
temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// dp3 r1.x, v3, c124
temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r1.y, v3, c125
temp1.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r1.z, v3, c126
temp1.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz);
// dp3 oT2.x, -r1, c11
o.texcoord2.x = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT3.x, -r1, c12
o.texcoord3.x = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT4.x, -r1, c13
o.texcoord4.x = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz);
// dp3 r1.x, v2, c124
temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r1.y, v2, c125
temp1.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r1.z, v2, c126
temp1.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz);
// dp3 oT2.y, -r1, c11
o.texcoord2.y = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT3.y, -r1, c12
o.texcoord3.y = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT4.y, -r1, c13
o.texcoord4.y = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz);
// dp3 r1.x, v1, c124
temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r1.y, v1, c125
temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r1.z, v1, c126
temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz);
// dp3 oT2.z, r1, c11
o.texcoord2.z = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT3.z, r1, c12
o.texcoord3.z = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT4.z, r1, c13
o.texcoord4.z = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz);
// add r0.x, -r0.x, c0.z
temp0.x = -temp0.x + float1(200);
// rcp r0.x, r0.x
temp0.x = 1.0f / temp0.x;
// mul r1.xyz, r0.x, c0.w
temp1.xyz = temp0.xxx * float3(500, 500, 500);
// mov r1.w, c1.x
temp1.w = OpacityOverride.x;
// mul oD0, r1, v5
o.color = temp1 * i.color;
// mov r1.xy, c14
temp1.xy = TexCoordTransform_0.xy;
// mad oT0.xy, v4, r1, c16
o.texcoord = i.texcoord * temp1 + expr16;
// mul oT1.xy, r0.yzzw, c15
o.texcoord1 = temp0.yzzw * Shroud.ScaleUV_OffsetUV;
//
return o;
}
// VS_Array_Shader_1 Vertex_2_0 Has PRES True
struct VS_Array_Shader_1_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 tangent : TANGENT;
float4 binormal : BINORMAL;
float4 blendindices : BLENDINDICES;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct VS_Array_Shader_1_Output
{
float4 position : POSITION;
float3 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i)
{
/*
PRSI
OutputRegisterOffset: 16
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 16
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr16;
{
// Expression_2_1
// mul c16.xy, c1.x, c0.zw
expr16.xy = Time.x * TexCoordTransform_0.zw;
}
VS_Array_Shader_1_Output o;
float4 temp0, temp1, temp2;
float addr0;
// def c0, 1, -1, 200, 500
// dcl_position v0
// dcl_normal v1
// dcl_tangent v2
// dcl_binormal v3
// dcl_blendindices v4
// dcl_texcoord v5
// dcl_color v6
// add r0.x, v4.x, v4.x
temp0.x = i.blendindices.x + i.blendindices.x;
// frc r0.y, r0.x
temp0.y = frac(temp0.x);
// add r0.z, r0.x, -r0.y
temp0.z = temp0.x + -temp0.y;
// slt r0.y, -r0.y, r0.y
temp0.y = (-temp0.y < temp0.y) ? 1 : 0;
// slt r0.x, r0.x, -r0.x
temp0.x = (temp0.x < -temp0.x) ? 1 : 0;
// mad r0.x, r0.x, r0.y, r0.z
temp0.x = temp0.x * temp0.y + temp0.z;
// mova a0.x, r0.x
addr0.x = temp0.x;
// mul r0, v0.zxyy, c128[a0.x].yzxy
temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy;
// mad r0, c128[a0.x].wwwx, v0.xyzx, r0
temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0;
// mul r1, v0.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));
// dp4 r0.z, r0, c13
temp0.z = dot(temp0, (View._m02_m12_m22_m32));
// add r0.xy, r0, c15.zwzw
temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul r1, v3.zxyy, c128[a0.x].yzxy
temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy;
// mad r1, c128[a0.x].wwwx, v3.xyzx, r1
temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1;
// mul r2, v3.yzxz, c128[a0.x].zxyz
temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz;
// mad r1, r1, c0.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;
// dp3 oT2.x, -r1, c11
o.texcoord2.x = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT3.x, -r1, c12
o.texcoord3.x = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT4.x, -r1, c13
o.texcoord4.x = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz);
// mul r1, v2.zxyy, c128[a0.x].yzxy
temp1 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy;
// mad r1, c128[a0.x].wwwx, v2.xyzx, r1
temp1 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp1;
// mul r2, v2.yzxz, c128[a0.x].zxyz
temp2 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz;
// mad r1, r1, c0.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;
// dp3 oT2.y, -r1, c11
o.texcoord2.y = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT3.y, -r1, c12
o.texcoord3.y = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT4.y, -r1, c13
o.texcoord4.y = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz);
// mul r1, v1.zxyy, c128[a0.x].yzxy
temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy;
// mad r1, c128[a0.x].wwwx, v1.xyzx, r1
temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1;
// mul r2, v1.yzxz, c128[a0.x].zxyz
temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz;
// mad r1, r1, c0.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;
// dp3 oT2.z, r1, c11
o.texcoord2.z = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT3.z, r1, c12
o.texcoord3.z = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT4.z, r1, c13
o.texcoord4.z = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz);
// add r0.z, -r0.z, c0.z
temp0.z = -temp0.z + float1(200);
// rcp r0.z, r0.z
temp0.z = 1.0f / temp0.z;
// mul r1.xyz, r0.z, c0.w
temp1.xyz = temp0.zzz * float3(500, 500, 500);
// mov r1.w, c1.x
temp1.w = OpacityOverride.x;
// mul oD0, r1, v6
o.color = temp1 * i.color;
// mov r1.xy, c14
temp1.xy = TexCoordTransform_0.xy;
// mad oT0.xy, v5, r1, c16
o.texcoord = i.texcoord * temp1 + expr16;
// mul oT1.xy, r0, c15
o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV;
//
return o;
}
VertexShader VS_Array[2] = {
compile vs_2_0 VS_Array_Shader_0(), // 25
compile vs_2_0 VS_Array_Shader_1(), // 26
};
// Default_M_Expression3 Expression_2_0 Has PRES False
float Default_M_Expression3()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = AlphaTestEnable.x;
return expr0;
}
// Default_M_PixelShader4 Pixel_2_0 Has PRES False
struct Default_M_PixelShader4_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float3 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
};
float4 Default_M_PixelShader4(Default_M_PixelShader4_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 2, -1, 0.5, 0
// dcl v0
// dcl t0.xy
// dcl t1.xy
// dcl t2.xyz
// dcl t3.xyz
// dcl t4.xyz
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(NormalMapSampler, i.texcoord.xy);
// texld r1, t1, s1
temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// mad r0.xyz, r0, c0.x, c0.y
temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mul r0.w, r0.w, v0.w
temp0.w = temp0.w * i.color.w;
// mul r0.xy, r0, c11.x
temp0.xy = temp0.xy * BumpScale.xx;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r1, t2
temp0.x = dot(temp1.xyz, i.texcoord2.xyz);
// dp3 r0.y, r1, t3
temp0.y = dot(temp1.xyz, i.texcoord3.xyz);
// dp3 r0.z, r1, t4
temp0.z = dot(temp1.xyz, i.texcoord4.xyz);
// mul r0.xyz, r0, v0
temp0.xyz = temp0.xyz * i.color.xyz;
// mad r2.xyz, r0, c0.z, c0.z
temp2.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5);
// mul r2.w, r1.w, r0.w
temp2.w = temp1.w * temp0.w;
// mov oC0, r2
out_color = temp2;
//
return out_color;
}
// Default_M_Expression5 Expression_2_0 Has PRES False
float Default_M_Expression5()
{
float1 expr0;
// min c0.x, c0.x, (1)
expr0.x = min(NumJointsPerVertex.x, (1));
return expr0;
}
technique Default_M
{
pass p0 <string ExpressionEvaluator = "DistortingObject";>
{
VertexShader = VS_Array[Default_M_Expression5()]; // 28
PixelShader = compile ps_2_0 Default_M_PixelShader4(); // 29
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = Default_M_Expression3(); // 0
AlphaFunc = 7;
AlphaRef = 96;
}
}
technique Default_L
{
}

73
errormissing.fx Normal file
View File

@ -0,0 +1,73 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
// Default_PixelShader1 Pixel_2_0 Has PRES False
float4 Default_PixelShader1() : COLOR
{
float4 out_color;
// def c0, 1, 0, 1, 1
// mov oC0, c0
out_color = float4(1, 0, 1, 1);
//
return out_color;
}
// Default_VertexShader2 Vertex_2_0 Has PRES False
float4 Default_VertexShader2(float4 position : POSITION) : POSITION
{
float4 out_position;
float4 temp0;
// 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, c11
out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
//
return out_position;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader2(); // 2
PixelShader = compile ps_2_0 Default_PixelShader1(); // 3
ZEnable = 0;
ZWriteEnable = 1;
CullMode = 1;
AlphaBlendEnable = 0;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}

485
fxbeamhit.fx Normal file
View File

@ -0,0 +1,485 @@
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 : register(vs_2_0, c1) <bool unmanaged = 1;> = { 1 };
float3 TintColor <bool unmanaged = 1;> = { 1, 1, 1 };
float3 EyePosition <bool unmanaged = 1;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
struct {
float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand;
float4 ColorAnimationFunctions[6];
float4 TimeKeys;
int ShaderType;
float SpeedMultiplier;
float2 ColorScaleRange;
} Draw <string UIWidget = "None"; string SasBindAddress = "Particle.Draw";> = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 };
struct {
float3 Gravity;
float3 DriftVelocity;
float2 VelocityDampingRange;
} Physics <string UIWidget = "None"; string SasBindAddress = "Particle.Physics";> = { 0, 0, 0, 0, 0, 0, 1, 0 };
struct {
float3 Size_Rate_Damping__Min;
float3 Size_Rate_Damping__Spread;
float3 XYRotation_Rate_Damping__Min;
float3 XYRotation_Rate_Damping__Spread;
float3 ZRotation_Rate_Damping__Min;
float3 ZRotation_Rate_Damping__Spread;
} Update <string UIWidget = "None"; string SasBindAddress = "Particle.Update";> = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 };
texture BaseTexture <string UIName = "Base Texture";>; // 8
sampler2D BaseTextureSampler : register(ps_2_0, s0) <string Texture = "BaseTexture"; string UIName = "Base Texture";> =
sampler_state
{
Texture = <BaseTexture>; // 10
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 2;
AddressV = 2;
};
texture SwirlTexture <string UIName = "Swirl Texture";>; // 13
sampler2D SwirlTextureSampler : register(ps_2_0, s1) <string Texture = "SwirlTexture"; string UIName = "Swirl Texture";> =
sampler_state
{
Texture = <SwirlTexture>; // 15
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 2;
AddressV = 2;
};
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
float Time : Time;
// Textured_PixelShader1 Pixel_2_0 Has PRES True
struct Textured_PixelShader1_Input
{
float3 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Textured_PixelShader1(Textured_PixelShader1_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 4
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 1
Mappings: 2
0 - ConstOutput: 13 ConstInput 2
1 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// mul c11.x, c0.x, (0.1075)
expr11.x = Time.x * (0.1075);
// mul c13.x, c0.x, (5.3882655)
expr13.x = Time.x * (5.3882655);
// mul r0.x, c0.x, (10.75)
temp0.x = Time.x * (10.75);
// add r1.x, r0.x, (1000)
temp1.x = temp0.x + (1000);
// mul r0.x, r1.x, (-0.01)
temp0.x = temp1.x * (-0.01);
// mul r0.y, c0.x, (0.5375)
temp0.y = Time.x * (0.5375);
// add c14.x, r0.x, r0.y
expr14.x = temp0.x + temp0.y;
}
float4 out_color;
float4 temp0, temp1;
float2 temp2;
// def c0, -0.5, 0.1193662, 0.5, 0
// def c1, 6.283185, -3.141593, 1, -1
// def c2, 5, 0, 0, 0
// def c3, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167
// def c4, -0.02083333, -0.125, 1, 0.5
// dcl v0.xyz
// dcl t0.xy
// dcl_2d s0
// dcl_2d s1
// mov r0.w, c13.x
temp0.w = expr13.x;
// add r0.y, r0.w, t0.y
temp0.y = temp0.w + i.texcoord.y;
// add r0.x, t0.x, c11.x
temp0.x = i.texcoord.x + expr11.x;
// mov r0.z, c14.x
temp0.z = expr14.x;
// add r1.y, r0.z, t0.y
temp1.y = temp0.z + i.texcoord.y;
// mov r1.x, t0.x
temp1.x = i.texcoord.x;
// texld r0, r0, s1
temp0 = tex2D(SwirlTextureSampler, temp0.xy);
// texld r1, r1, s1
temp1 = tex2D(SwirlTextureSampler, temp1.xy);
// add r0.x, -r0.x, r1.x
temp0.x = -temp0.x + temp1.x;
// mad r0.x, r0.x, c0.y, c0.z
temp0.x = temp0.x * float1(0.119366206) + float1(0.5);
// frc r0.x, r0.x
temp0.x = frac(temp0.x);
// mad r0.x, r0.x, c1.x, c1.y
temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927);
// sincos r1.xy, r0.x, c3, c4
temp1.xy = float2(cos(temp0.x), sin(temp0.x));
// mul r0.x, r1.y, c1.w
temp0.x = temp1.y * float1(-1);
// mul r0.y, r1.x, c1.z
temp0.y = temp1.x * float1(1);
// add r2.xy, t0, c0.x
temp2.xy = i.texcoord.xy + float2(-0.5, -0.5);
// dp2add r0.y, r2, r0, c0.w
temp0.y = dot(temp2.xy, temp0.xy) + float1(0);
// dp2add r0.x, r2, r1, c0.w
temp0.x = dot(temp2.xy, temp1.xy) + float1(0);
// add r0.xy, r0, c0.z
temp0.xy = temp0.xy + float2(0.5, 0.5);
// texld r0, r0, s0
temp0 = tex2D(BaseTextureSampler, temp0.xy);
// min r1.x, r0.x, c1.z
temp1.x = min(temp0.x, float1(1));
// mul r0.w, r1.x, c2.x
temp0.w = temp1.x * float1(5);
// mov r0.xyz, v0
temp0.xyz = i.color.xyz;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Textured_VertexShader2 Vertex_2_0 Has PRES True
struct Textured_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Textured_VertexShader2_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Textured_VertexShader2_Output Textured_VertexShader2(Textured_VertexShader2_Input i)
{
/*
PRSI
OutputRegisterOffset: 28
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 6
Unknown3: 0
Unknown4: 0
Unknown5: 28
Unknown6: 6
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr28;
float4 expr29;
float4 expr30;
float4 expr31;
float4 expr32;
float4 expr33;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// mul r0.x, c0.x, (3.75)
temp0.x = Time.x * (3.75);
// add r1.x, r0.x, (3.4375)
temp1.x = temp0.x + (3.4375);
// frc r0.y, r1.x
temp0.y = frac(temp1.x);
// mul r1.x, r0.y, (16)
temp1.x = temp0.y * (16);
// frc r0.y, r1.x
temp0.y = frac(temp1.x);
// neg r1.y, r0.y
temp1.y = -temp0.y;
// add c28.x, r1.x, r1.y
expr28.x = temp1.x + temp1.y;
// add r1.x, r0.x, (4.125)
temp1.x = temp0.x + (4.125);
// add r1.y, r0.x, (4.8125)
temp1.y = temp0.x + (4.8125);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// mul r1.x, r0.x, (16)
temp1.x = temp0.x * (16);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// neg r1.z, r0.x
temp1.z = -temp0.x;
// add c29.x, r1.x, r1.z
expr29.x = temp1.x + temp1.z;
// frc r0.x, r1.y
temp0.x = frac(temp1.y);
// mul r1.x, r0.x, (16)
temp1.x = temp0.x * (16);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// neg r1.y, r0.x
temp1.y = -temp0.x;
// add c30.x, r1.x, r1.y
expr30.x = temp1.x + temp1.y;
// mul r0.x, c0.x, (1.875)
temp0.x = Time.x * (1.875);
// add r1.x, r0.x, (3.4375)
temp1.x = temp0.x + (3.4375);
// frc r0.y, r1.x
temp0.y = frac(temp1.x);
// mul r1.x, r0.y, (16)
temp1.x = temp0.y * (16);
// frc r0.y, r1.x
temp0.y = frac(temp1.x);
// neg r1.y, r0.y
temp1.y = -temp0.y;
// add c31.x, r1.x, r1.y
expr31.x = temp1.x + temp1.y;
// add r1.x, r0.x, (4.125)
temp1.x = temp0.x + (4.125);
// add r1.y, r0.x, (4.8125)
temp1.y = temp0.x + (4.8125);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// mul r1.x, r0.x, (16)
temp1.x = temp0.x * (16);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// neg r1.z, r0.x
temp1.z = -temp0.x;
// add c32.x, r1.x, r1.z
expr32.x = temp1.x + temp1.z;
// frc r0.x, r1.y
temp0.x = frac(temp1.y);
// mul r1.x, r0.x, (16)
temp1.x = temp0.x * (16);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// neg r1.y, r0.x
temp1.y = -temp0.x;
// add c33.x, r1.x, r1.y
expr33.x = temp1.x + temp1.y;
}
Textured_VertexShader2_Output o;
float4 addr0;
float4 temp0;
// def c27, -1, 1, 0.25, 0
// def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609
// def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284
// def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138
// def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577
// def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847
// def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574
// def c17, 0.229799, 0.897999, 0.753822, 0.1316504
// def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481
// def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052
// def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229
// def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565
// def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764
// def c23, 0.861564, 0.2251601, 0.082332, 0.8790039
// def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381
// def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963
// def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567
// dcl_position v0
// dcl_texcoord v1
// dcl_color v2
// mova a0.w, c28.x
addr0.w = expr28.x;
// add r0.x, v0.x, c11[a0.w].x
temp0.x = i.position.x + float1(0.957897);
// mova a0.w, c29.x
addr0.w = expr29.x;
// add r0.y, v0.y, c11[a0.w].x
temp0.y = i.position.y + float1(0.957897);
// mova a0.w, c30.x
addr0.w = expr30.x;
// add r0.z, v0.z, c11[a0.w].x
temp0.z = i.position.z + float1(0.957897);
// add r0.xyz, r0, c27.x
temp0.xyz = temp0.xyz + float3(-1, -1, -1);
// mov r0.w, c27.y
temp0.w = float1(1);
// dp4 oPos.x, r0, c34
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c35
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c36
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c37
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov r0.z, c27.z
temp0.z = float1(0.25);
// mova a0.w, c31.x
addr0.w = expr31.x;
// mad oD0.x, v2.x, c11[a0.w].x, r0.z
o.color.x = i.color.x * float1(0.957897) + temp0.z;
// mova a0.w, c32.x
addr0.w = expr32.x;
// mad oD0.y, v2.y, c11[a0.w].x, r0.z
o.color.y = i.color.y * float1(0.957897) + temp0.z;
// mova a0.w, c33.x
addr0.w = expr33.x;
// mad oD0.z, v2.z, c11[a0.w].x, r0.z
o.color.z = i.color.z * float1(0.957897) + temp0.z;
// mov oD0.w, c1.x
o.color.w = OpacityOverride.x;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// DynamicParameter_PixelShader3 Pixel_2_0 Has PRES False
float4 DynamicParameter_PixelShader3() : COLOR
{
float4 out_color;
// def c0, 1, 0, 0, 1
// mov oC0, c0
out_color = float4(1, 0, 0, 1);
//
return out_color;
}
// DynamicParameter_VertexShader4 Vertex_2_0 Has PRES False
float4 DynamicParameter_VertexShader4(float4 position : POSITION) : POSITION
{
float4 out_position;
float4 temp0;
// 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, c11
out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
//
return out_position;
}
// Simplest_PixelShader5 Pixel_2_0 Has PRES False
float4 Simplest_PixelShader5() : COLOR
{
float4 out_color;
// def c0, 1, 0, 0, 1
// mov oC0, c0
out_color = float4(1, 0, 0, 1);
//
return out_color;
}
// Simplest_VertexShader6 Vertex_2_0 Has PRES False
float4 Simplest_VertexShader6(float4 position : POSITION) : POSITION
{
float4 out_position;
float4 temp0;
// 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, c11
out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
//
return out_position;
}
technique Simplest
{
pass P0
{
VertexShader = compile vs_2_0 Simplest_VertexShader6(); // 18
PixelShader = compile ps_2_0 Simplest_PixelShader5(); // 19
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}
technique DynamicParameter
{
pass P0
{
VertexShader = compile vs_2_0 DynamicParameter_VertexShader4(); // 20
PixelShader = compile ps_2_0 DynamicParameter_PixelShader3(); // 21
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}
technique Textured
{
pass P0
{
VertexShader = compile vs_2_0 Textured_VertexShader2(); // 22
PixelShader = compile ps_2_0 Textured_PixelShader1(); // 23
ZEnable = 1;
ZWriteEnable = 0;
CullMode = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaBlendEnable = 1;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}

457
fxlightning.fx Normal file
View File

@ -0,0 +1,457 @@
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 };
bool HasRecolorColors <string UIWidget = "None"; string SasBindAddress = "WW3D.HasRecolorColors"; bool ExportValue = 0;>;
float3 RecolorColor : register(ps_2_0, c0) <bool unmanaged = 1;>;
row_major float4x4 ShadowMapWorldToShadow <bool unmanaged = 1;>;
float OpacityOverride : register(vs_2_0, c1) <bool unmanaged = 1;> = { 1 };
float3 TintColor <bool unmanaged = 1;> = { 1, 1, 1 };
float3 EyePosition : register(vs_2_0, c123) <bool unmanaged = 1;>;
column_major float4x4 ViewProjection : register(vs_2_0, c119) <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
int NumJointsPerVertex <string UIWidget = "None"; string SasBindAddress = "Sas.Skeleton.NumJointsPerVertex";>;
column_major float4x3 World : World : register(vs_2_0, c124);
float Time : Time;
texture Texture_0 <string UIName = "Diffuse Texture";>; // 6
sampler2D Texture_0Sampler : register(ps_2_0, s0) <string Texture = "Texture_0"; string UIName = "Diffuse Texture";> =
sampler_state
{
Texture = <Texture_0>; // 8
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
float3 ColorDiffuse : register(vs_2_0, c22) <string UIName = "Diffuse Material Color"; string UIWidget = "Color";> = { 1, 1, 1 };
float EmissiveHDRMultipler : register(ps_2_0, c11) <string UIName = "Emissive HDR Multiplier"; string UIWidget = "Slider"; float UIMax = 200;> = { 1 };
bool MultiTextureEnable : register(ps_2_0, c12) <string UIName = "Multi-Texture Enable";>;
float4 DiffuseCoordOffset : register(vs_2_0, c23) <string UIName = "Diffuse Coord Offset/Scale"; string UIWidget = "Slider"; float UIMax = 1; float UIMin = 0; float UIStep = 0.001;> = { 0, 0, 1, 1 };
bool MultiplyBlendEnable : register(ps_2_0, c13) <string UIName = "Multiply Blend Enable";>;
float EdgeFadeOut <string UIName = "Edge fade out"; string UIWidget = "Slider";>;
texture Texture_1 <string UIName = "Displace Texture";>; // 21
sampler2D Texture_1Sampler : register(ps_2_0, s1) <string Texture = "Texture_1"; string UIName = "Displace Texture";> =
sampler_state
{
Texture = <Texture_1>; // 23
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
bool UniqueWorldCoordEnable <string UIName = "Unique World Coords Enable";>;
float UniqueWorldCoordScalar : register(vs_2_0, c24) <string UIName = "Unique World Coords Scale"; string UIWidget = "Slider"; float UIMax = 1; float UIMin = 0; float UIStep = 0.001;> = { 0.01 };
float UniqueWorldCoordStrength <string UIName = "Unique World Coords Strength"; string UIWidget = "Slider"; float UIMax = 1; float UIMin = 0; float UIStep = 0.01;> = { 1 };
float DisplaceScalar : register(vs_2_0, c25) <string UIName = "Displace Scale"; string UIWidget = "Slider"; float UIMax = 50; float UIMin = 0; float UIStep = 0.01;> = { 1 };
float DisplaceAmp : register(ps_2_0, c14) <string UIName = "Displace Amplitude"; string UIWidget = "Slider"; float UIMax = 50; float UIMin = 0; float UIStep = 0.01;> = { 1 };
float DisplaceDivergenceAngle <string UIName = "Displace Divergence Angle"; string UIWidget = "Slider"; float UIMax = 180; float UIMin = 0; float UIStep = 0.5;>;
float DisplaceSpeed <string UIName = "Displace Speed"; string UIWidget = "Slider"; float UIMax = 50; float UIMin = 0; float UIStep = 0.01;> = { 1 };
bool UseRecolorColors : register(ps_2_0, c15) <string UIName = "Allow House Color";>;
bool CullingEnable <string UIName = "Culling Enable";> = { 1 };
// Default_Expression1 Expression_2_0 Has PRES False
float Default_Expression1()
{
float4 temp0;
float4 temp1;
float4 temp2;
float1 expr0;
// add r0.x, c0.x, (-1)
temp0.x = MultiplyBlendEnable.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 r2.x, r0.x, r1.x
temp2.x = temp0.x >= temp1.x;
// neg r0.x, r2.x
temp0.x = -temp2.x;
// add c0.x, r0.x, (2)
expr0.x = temp0.x + (2);
return expr0;
}
// Default_Expression2 Expression_2_0 Has PRES False
float Default_Expression2()
{
float4 temp0;
float4 temp1;
float4 temp2;
float1 expr0;
// add r0.x, c0.x, (-1)
temp0.x = MultiplyBlendEnable.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 r2.x, r0.x, r1.x
temp2.x = temp0.x >= temp1.x;
// mul r0.x, r2.x, (7)
temp0.x = temp2.x * (7);
// add c0.x, r0.x, (2)
expr0.x = temp0.x + (2);
return expr0;
}
// Default_Expression3 Expression_2_0 Has PRES False
float Default_Expression3()
{
float1 expr0;
// add c0.x, c0.x, (1)
expr0.x = CullingEnable.x + (1);
return expr0;
}
// Default_PixelShader4 Pixel_2_0 Has PRES False
struct Default_PixelShader4_Input
{
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
float texcoord4 : TEXCOORD4;
};
float4 Default_PixelShader4(Default_PixelShader4_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// def c1, -1, 2.2, 0.5, 1
// def c2, 0.35, 0, 0, 0
// dcl t0
// dcl t1
// dcl t2
// dcl t4.x
// dcl_2d s0
// dcl_2d s1
// mov r0.x, t2.z
temp0.x = i.texcoord2.z;
// mov r0.y, t2.w
temp0.y = i.texcoord2.w;
// texld r0, r0, s1
temp0 = tex2D(Texture_1Sampler, temp0.xy);
// texld r1, t2, s1
temp1 = tex2D(Texture_1Sampler, i.texcoord2.xy);
// add r2.yw, r0.y, r1.y
temp2.yw = temp0.y + temp1.y;
// add r2.xz, r0.x, r1.x
temp2.xz = temp0.x + temp1.x;
// add r0, r2, c1.x
temp0 = temp2 + float4(-1, -1, -1, -1);
// mad r0, r0, c14.x, t1
temp0 = temp0 * DisplaceAmp.x + i.texcoord1;
// mov r1.x, r0.z
temp1.x = temp0.z;
// mov r1.y, r0.w
temp1.y = temp0.w;
// texld r0, r0, s0
temp0 = tex2D(Texture_0Sampler, temp0.xy);
// texld r1, r1, s0
temp1 = tex2D(Texture_0Sampler, temp1.xy);
// mul r1, r0, r1
temp1 = temp0 * temp1;
// cmp r0, -c12.x, r0, r1
temp0 = (-MultiTextureEnable.x >= 0) ? temp0 : temp1;
// 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 r1.xyz, r1, c1.y
temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2);
// exp r0.x, r1.x
temp0.x = exp2(temp1.x);
// exp r0.y, r1.y
temp0.y = exp2(temp1.y);
// exp r0.z, r1.z
temp0.z = exp2(temp1.z);
// mul r1.xyz, t0, c11.x
temp1.xyz = i.texcoord.xyz * EmissiveHDRMultipler.xxx;
// mul r1.w, t0.w, t0.w
temp1.w = i.texcoord.w * i.texcoord.w;
// mov r2.xyz, t0.w
temp2.xyz = i.texcoord.w;
// mov r2.w, c11.x
temp2.w = EmissiveHDRMultipler.x;
// mul r1, r1, r2
temp1 = temp1 * temp2;
// mul r2, r0, r1
temp2 = temp0 * temp1;
// mad r0, r1, -r0, c1.z
temp0 = temp1 * -temp0 + float4(0.5, 0.5, 0.5, 0.5);
// cmp r0, -c13.x, r2, r0
temp0 = (-MultiplyBlendEnable.x >= 0) ? temp2 : temp0;
// mov r1.w, c1.w
temp1.w = float1(1);
// add r1.xyz, r1.w, -c0
temp1.xyz = temp1.www + -RecolorColor.xyz;
// mov r2.xyz, c0
temp2.xyz = RecolorColor.xyz;
// mad r1.xyz, r1, c2.x, r2
temp1.xyz = temp1.xyz * float3(0.35, 0.35, 0.35) + temp2.xyz;
// mul r1.xyz, r0, r1
temp1.xyz = temp0.xyz * temp1.xyz;
// cmp r1.xyz, -c15.x, r0, r1
temp1.xyz = (-UseRecolorColors.xxx >= 0) ? temp0.xyz : temp1.xyz;
// add r1.xyz, r1, r1
temp1.xyz = temp1.xyz + temp1.xyz;
// mul r0.xyz, r1, t4.x
temp0.xyz = temp1.xyz * i.texcoord4.xxx;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_VertexShader5 Vertex_2_0 Has PRES True
struct Default_VertexShader5_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Default_VertexShader5_Output
{
float4 texcoord2 : TEXCOORD2;
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float texcoord4 : TEXCOORD4;
};
Default_VertexShader5_Output Default_VertexShader5(Default_VertexShader5_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 11
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 5
Mappings: 3
0 - ConstOutput: 17 ConstInput 3
1 - ConstOutput: 21 ConstInput 1
2 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
float4 expr15;
float4 expr16;
float4 expr17;
float4 expr18;
float4 expr19;
float4 expr20;
float4 expr21;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// mul r0.x, c0.x, c8.x
temp0.x = Time.x * DisplaceSpeed.x;
// mul c14.x, r0.x, (0.01)
expr14.x = temp0.x * (0.01);
// add r0.x, c6.x, (-1)
temp0.x = UniqueWorldCoordEnable.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 c11.x, r0.x, r1.x
expr11.x = temp0.x >= temp1.x;
// rcp c15.x, c5.x
expr15.x = 1.0f / (EdgeFadeOut.x);
// add r0.x, c4.x, (-1)
temp0.x = MultiplyBlendEnable.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 c18.x, r0.x, r1.x
expr18.x = temp0.x >= temp1.x;
// neg r0.xyz, c1.xyz
temp0.xyz = -ColorDiffuse.xyz;
// add c17.xyz, (1, 1, 1), r0.xyz
expr17.xyz = float3(1, 1, 1) + temp0.xyz;
// mul r0.xy, c0.x, c3.xy
temp0.xy = Time.x * DiffuseCoordOffset.xy;
// frc c19.xy, r0.xy
expr19.xy = frac(temp0.xy);
// add r0.x, c2.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 c21.x, r0.x, r1.x
expr21.x = temp0.x >= temp1.x;
// mul r0.x, c7.x, (0.0027777312217828493)
temp0.x = DisplaceDivergenceAngle.x * (0.0027777312217828493);
// add r1.x, r0.x, (0.5)
temp1.x = temp0.x + (0.5);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// mul r1.x, r0.x, (6.283185307179586)
temp1.x = temp0.x * (6.283185307179586);
// add r0.x, r1.x, (-3.141592653589793)
temp0.x = temp1.x + (-3.141592653589793);
// cos r1.x, r0.x
temp1.x = cos(temp0.x);
// sin r1.y, r0.x
temp1.y = sin(temp0.x);
// mov c12.x, r1.y
expr12.x = temp1.y;
// mov c13.x, r1.x
expr13.x = temp1.x;
}
Default_VertexShader5_Output o;
float4 temp0, temp1, temp2;
// def c0, 1, 0, 0.1, 0
// def c2, -2, 3, 0, 0
// dcl_position v0
// dcl_normal v1
// dcl_texcoord v2
// dcl_color v3
// mad r0, v0.xyzx, c0.xxxy, c0.yyyx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 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 r1.z, r0, c126
temp1.z = dot(temp0, (World._m02_m12_m22_m32));
// add r0.x, r1.x, r1.y
temp0.x = temp1.x + temp1.y;
// mul r0.x, r0.x, c24.x
temp0.x = temp0.x * UniqueWorldCoordScalar.x;
// mul r0.x, r0.x, c11.x
temp0.x = temp0.x * expr11.x;
// mul r0.yz, v2.xxyw, c25.x
temp0.yz = i.texcoord.xy * DisplaceScalar.xx;
// mad r0.x, r0.x, c0.z, r0.z
temp0.x = temp0.x * float1(0.1) + temp0.z;
// mul r0.z, r0.x, c13.x
temp0.z = temp0.x * expr13.x;
// mad oT2.y, r0.y, -c12.x, r0.z
o.texcoord2.y = temp0.y * -expr12.x + temp0.z;
// mad oT2.w, r0.y, c12.x, r0.z
o.texcoord2.w = temp0.y * expr12.x + temp0.z;
// mul r0.y, r0.y, c13.x
temp0.y = temp0.y * expr13.x;
// mad r0.z, r0.x, c12.x, r0.y
temp0.z = temp0.x * expr12.x + temp0.y;
// mad r0.x, r0.x, -c12.x, r0.y
temp0.x = temp0.x * -expr12.x + temp0.y;
// add oT2.xz, r0.zyxw, c14.x
o.texcoord2.xz = temp0.zx + expr14.xx;
// mov r1.w, c0.x
temp1.w = float1(1);
// 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.xyz, -r1, c123
temp0.xyz = -temp1.xyz + EyePosition.xyz;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, v1, c124
temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r0.y, v1, c125
temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r0.z, v1, c126
temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz);
// dp3 r0.x, r1, r0
temp0.x = dot(temp1.xyz, temp0.xyz);
// abs r0.x, r0.x
temp0.x = abs(temp0.x);
// mul r0.x, r0.x, c15.x
temp0.x = temp0.x * expr15.x;
// max r0.x, r0.x, c0.y
temp0.x = max(temp0.x, float1(0));
// min r0.x, r0.x, c0.x
temp0.x = min(temp0.x, float1(1));
// mad r0.y, r0.x, c2.x, c2.y
temp0.y = temp0.x * float1(-2) + float1(3);
// mul r0.x, r0.x, r0.x
temp0.x = temp0.x * temp0.x;
// mul r0.x, r0.y, r0.x
temp0.x = temp0.y * temp0.x;
// mul r0.w, r0.x, v3.w
temp0.w = temp0.x * i.color.w;
// mov r1.xy, c0
temp1.xy = float2(1, 0);
// mad r2, c22.xyzx, r1.xxxy, r1.yyyx
temp2 = ColorDiffuse.xyzx * temp1.xxxy + temp1.yyyx;
// mul r0.xyz, v3, c1.x
temp0.xyz = i.color.xyz * OpacityOverride.xxx;
// mul r2, r0, r2
temp2 = temp0 * temp2;
// mad r1, c17.xyzx, r1.xxxy, r1.yyyx
temp1 = expr17.xyzx * temp1.xxxy + temp1.yyyx;
// mad r0, r0, r1, -r2
temp0 = temp0 * temp1 + -temp2;
// mad oT0, c18.x, r0, r2
o.texcoord = expr18.x * temp0 + temp2;
// mul r0.xy, v2, c23.zwzw
temp0.xy = i.texcoord.xy * DiffuseCoordOffset.zw;
// mov r0.zw, c23
temp0.zw = DiffuseCoordOffset.zw;
// mad r0.xy, r0, r0.zwzw, -c19
temp0.xy = temp0.xy * temp0.zw + -expr19.xy;
// mad r0.zw, v2.xyxy, r0, c19.xyxy
temp0.zw = i.texcoord.xy * temp0.zw + expr19.xy;
// add r0.xy, r0, -r0.zwzw
temp0.xy = temp0.xy + -temp0.zw;
// mad oT1.zw, c21.x, r0.xyxy, r0
o.texcoord1.zw = expr21.xx * temp0.xy + temp0.zw;
// mov oT1.xy, r0.zwzw
o.texcoord1.xy = temp0.zw;
// mov oT4.x, c0.x
o.texcoord4 = float4(1, 1, 1, 1);
//
return o;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader5(); // 41
PixelShader = compile ps_2_0 Default_PixelShader4(); // 42
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
AlphaBlendEnable = 1;
CullMode = Default_Expression3(); // 0
SrcBlend = Default_Expression2(); // 0
DestBlend = Default_Expression1(); // 0
}
}

368
fxprotoncollider.fx Normal file
View File

@ -0,0 +1,368 @@
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 };
bool HasRecolorColors <string UIWidget = "None"; string SasBindAddress = "WW3D.HasRecolorColors"; bool ExportValue = 0;>;
float3 RecolorColor : register(ps_2_0, c0) <bool unmanaged = 1;>;
row_major float4x4 ShadowMapWorldToShadow <bool unmanaged = 1;>;
float OpacityOverride : register(vs_2_0, c1) <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] <bool unmanaged = 1;>;
int NumJointsPerVertex <string UIWidget = "None"; string SasBindAddress = "Sas.Skeleton.NumJointsPerVertex";>;
column_major float4x3 World : World : register(vs_2_0, c124);
float Time : Time;
texture Texture_0 <string UIName = "Diffuse Texture";>; // 6
sampler2D Texture_0Sampler : register(ps_2_0, s0) <string Texture = "Texture_0"; string UIName = "Diffuse Texture";> =
sampler_state
{
Texture = <Texture_0>; // 8
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
float3 ColorDiffuse : register(vs_2_0, c18) <string UIName = "Diffuse Material Color"; string UIWidget = "Color";> = { 1, 1, 1 };
float EmissiveHDRMultipler : register(ps_2_0, c11) <string UIName = "Emissive HDR Multiplier"; string UIWidget = "Slider"; float UIMax = 200;> = { 1 };
bool MultiTextureEnable : register(ps_2_0, c12) <string UIName = "Multi-Texture Enable";>;
float4 DiffuseCoordOffset : register(vs_2_0, c19) <string UIName = "Diffuse Coord Offset/Scale"; string UIWidget = "Slider"; float UIMax = 1; float UIMin = 0; float UIStep = 0.001;> = { 0, 0, 1, 1 };
texture Texture_1 <string UIName = "Displace Texture";>; // 18
sampler2D Texture_1Sampler : register(ps_2_0, s1) <string Texture = "Texture_1"; string UIName = "Displace Texture";> =
sampler_state
{
Texture = <Texture_1>; // 20
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
bool UniqueWorldCoordEnable <string UIName = "Unique World Coords Enable";>;
float UniqueWorldCoordScalar : register(vs_2_0, c20) <string UIName = "Unique World Coords Scale"; string UIWidget = "Slider"; float UIMax = 1; float UIMin = 0; float UIStep = 0.001;> = { 0.01 };
float UniqueWorldCoordStrength : register(vs_2_0, c21) <string UIName = "Unique World Coords Strength"; string UIWidget = "Slider"; float UIMax = 1; float UIMin = 0; float UIStep = 0.01;> = { 1 };
float DisplaceScalar : register(vs_2_0, c22) <string UIName = "Displace Scale"; string UIWidget = "Slider"; float UIMax = 50; float UIMin = 0; float UIStep = 0.01;> = { 1 };
float DisplaceAmp : register(ps_2_0, c13) <string UIName = "Displace Amplitude"; string UIWidget = "Slider"; float UIMax = 50; float UIMin = 0; float UIStep = 0.01;> = { 1 };
float DisplaceDivergenceAngle <string UIName = "Displace Divergence Angle"; string UIWidget = "Slider"; float UIMax = 180; float UIMin = 0; float UIStep = 0.5;>;
float DisplaceSpeed <string UIName = "Displace Speed"; string UIWidget = "Slider"; float UIMax = 50; float UIMin = 0; float UIStep = 0.01;> = { 1 };
texture Texture_2 <string UIName = "Mask Texture";>; // 36
sampler2D Texture_2Sampler : register(ps_2_0, s2) <string Texture = "Texture_2"; string UIName = "Mask Texture";> =
sampler_state
{
Texture = <Texture_2>; // 38
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
bool UseRecolorColors : register(ps_2_0, c14) <string UIName = "Allow House Color";>;
bool CullingEnable <string UIName = "Culling Enable";> = { 1 };
// Default_Expression1 Expression_2_0 Has PRES False
float Default_Expression1()
{
float1 expr0;
// add c0.x, c0.x, (1)
expr0.x = CullingEnable.x + (1);
return expr0;
}
// Default_PixelShader2 Pixel_2_0 Has PRES False
struct Default_PixelShader2_Input
{
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
float texcoord3 : TEXCOORD3;
float texcoord4 : TEXCOORD4;
};
float4 Default_PixelShader2(Default_PixelShader2_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
float3 temp3;
// def c1, -1, 2.2, 1, 0.35
// dcl t0
// dcl t1
// dcl t2
// dcl t3.x
// dcl t4.x
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// mov r0.x, t2.z
temp0.x = i.texcoord2.z;
// mov r0.y, t2.w
temp0.y = i.texcoord2.w;
// texld r0, r0, s1
temp0 = tex2D(Texture_1Sampler, temp0.xy);
// texld r1, t2, s1
temp1 = tex2D(Texture_1Sampler, i.texcoord2.xy);
// add r2.yw, r0.y, r1.y
temp2.yw = temp0.y + temp1.y;
// add r2.xz, r0.x, r1.x
temp2.xz = temp0.x + temp1.x;
// add r0, r2, c1.x
temp0 = temp2 + float4(-1, -1, -1, -1);
// mad r0, r0, c13.x, t1
temp0 = temp0 * DisplaceAmp.x + i.texcoord1;
// mov r1.x, r0.z
temp1.x = temp0.z;
// mov r1.y, r0.w
temp1.y = temp0.w;
// mov r2.xy, t1
temp2.xy = i.texcoord1.xy;
// add r2.xy, r2, -t3.x
temp2.xy = temp2.xy + -i.texcoord3.xx;
// texld r0, r0, s0
temp0 = tex2D(Texture_0Sampler, temp0.xy);
// texld r1, r1, s0
temp1 = tex2D(Texture_0Sampler, temp1.xy);
// texld r2, r2, s2
temp2 = tex2D(Texture_2Sampler, temp2.xy);
// mul r1.xyz, r0, r1
temp1.xyz = temp0.xyz * temp1.xyz;
// cmp r0.xyz, -c12.x, r0, r1
temp0.xyz = (-MultiTextureEnable.xxx >= 0) ? temp0.xyz : temp1.xyz;
// 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, c1.y
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);
// mul r0.xyz, t0, c11.x
temp0.xyz = i.texcoord.xyz * EmissiveHDRMultipler.xxx;
// mul r0.xyz, r0, t0.w
temp0.xyz = temp0.xyz * i.texcoord.www;
// mul r0.xyz, r1, r0
temp0.xyz = temp1.xyz * temp0.xyz;
// mov r1.zw, c1
temp1.zw = float2(1, 0.35);
// lrp r3.xyz, r1.w, r1.z, c0
temp3.xyz = lerp(RecolorColor.xyz, temp1.zzz, temp1.www);
// mul r1.xyz, r0, r3
temp1.xyz = temp0.xyz * temp3.xyz;
// cmp r0.xyz, -c14.x, r0, r1
temp0.xyz = (-UseRecolorColors.xxx >= 0) ? temp0.xyz : temp1.xyz;
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// add r0.xyz, r0, r0
temp0.xyz = temp0.xyz + temp0.xyz;
// mul r0.xyz, r0, t4.x
temp0.xyz = temp0.xyz * i.texcoord4.xxx;
// mov r0.w, c1.z
temp0.w = float1(1);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_VertexShader3 Vertex_2_0 Has PRES True
struct Default_VertexShader3_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Default_VertexShader3_Output
{
float4 texcoord2 : TEXCOORD2;
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float texcoord3 : TEXCOORD3;
float texcoord4 : TEXCOORD4;
};
Default_VertexShader3_Output Default_VertexShader3(Default_VertexShader3_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 7
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 5
Mappings: 2
0 - ConstOutput: 17 ConstInput 1
1 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
float4 expr15;
float4 expr16;
float4 expr17;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// mul r0.x, c0.x, c5.x
temp0.x = Time.x * DisplaceSpeed.x;
// mul c14.x, r0.x, (0.01)
expr14.x = temp0.x * (0.01);
// add r0.x, c3.x, (-1)
temp0.x = UniqueWorldCoordEnable.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 c11.x, r0.x, r1.x
expr11.x = temp0.x >= temp1.x;
// mul r0.xy, c0.x, c2.xy
temp0.xy = Time.x * DiffuseCoordOffset.xy;
// frc c15.xy, r0.xy
expr15.xy = frac(temp0.xy);
// add r0.x, c1.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 c17.x, r0.x, r1.x
expr17.x = temp0.x >= temp1.x;
// mul r0.x, c4.x, (0.0027777312217828493)
temp0.x = DisplaceDivergenceAngle.x * (0.0027777312217828493);
// add r1.x, r0.x, (0.5)
temp1.x = temp0.x + (0.5);
// frc r0.x, r1.x
temp0.x = frac(temp1.x);
// mul r1.x, r0.x, (6.283185307179586)
temp1.x = temp0.x * (6.283185307179586);
// add r0.x, r1.x, (-3.141592653589793)
temp0.x = temp1.x + (-3.141592653589793);
// cos r1.x, r0.x
temp1.x = cos(temp0.x);
// sin r1.y, r0.x
temp1.y = sin(temp0.x);
// mov c12.x, r1.y
expr12.x = temp1.y;
// mov c13.x, r1.x
expr13.x = temp1.x;
}
Default_VertexShader3_Output o;
float4 temp0, temp1, temp2;
// def c0, 1, 0, 0.01, -3
// dcl_position v0
// dcl_texcoord v1
// dcl_color v2
// mul r0.xy, v1, c22.x
temp0.xy = i.texcoord.xy * DisplaceScalar.xx;
// mad r1, v0.xyzx, c0.xxxy, c0.yyyx
temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 r2.x, r1, c124
temp2.x = dot(temp1, (World._m00_m10_m20_m30));
// dp4 r2.y, r1, c125
temp2.y = dot(temp1, (World._m01_m11_m21_m31));
// dp4 r2.z, r1, c126
temp2.z = dot(temp1, (World._m02_m12_m22_m32));
// mul r0.zw, r2.xyxy, c20.x
temp0.zw = temp2.xy * UniqueWorldCoordScalar.xx;
// mul r0.zw, r0, c21.x
temp0.zw = temp0.zw * UniqueWorldCoordStrength.xx;
// mad r0.zw, r0, c0.z, -r0.xyxy
temp0.zw = temp0.zw * float2(0.01, 0.01) + -temp0.xy;
// mad r0.xy, c11.x, r0.zwzw, r0
temp0.xy = expr11.xx * temp0.zw + temp0.xy;
// mul r0.zw, r0.xyxy, c13.x
temp0.zw = temp0.xy * expr13.xx;
// mad oT2.y, r0.x, -c12.x, r0.w
o.texcoord2.y = temp0.x * -expr12.x + temp0.w;
// mul r1.x, r0.y, c12.x
temp1.x = temp0.y * expr12.x;
// mad r1.x, r0.x, c13.x, r1.x
temp1.x = temp0.x * expr13.x + temp1.x;
// add oT2.x, r1.x, c14.x
o.texcoord2.x = temp1.x + expr14.x;
// mad oT2.w, r0.x, c12.x, r0.w
o.texcoord2.w = temp0.x * expr12.x + temp0.w;
// mad r0.x, r0.y, -c12.x, r0.z
temp0.x = temp0.y * -expr12.x + temp0.z;
// add oT2.z, r0.x, c14.x
o.texcoord2.z = temp0.x + expr14.x;
// mov r2.w, c0.x
temp2.w = float1(1);
// dp4 oPos.x, r2, c119
o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r2, c120
o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r2, c121
o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r2, c122
o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33));
// mov r0.xyw, c0
temp0.xyw = float3(1, 0, -3);
// mad r1, c18.xyzx, r0.xxxy, r0.yyyx
temp1 = ColorDiffuse.xyzx * temp0.xxxy + temp0.yyyx;
// mul oT0, r1, v2
o.texcoord = temp1 * i.color;
// mul r0.yz, v1.xxyw, c19.xzww
temp0.yz = i.texcoord.xy * DiffuseCoordOffset.zw;
// mov r1.zw, c19
temp1.zw = DiffuseCoordOffset.zw;
// mad r0.yz, r0, r1.xzww, -c15.xxyw
temp0.yz = temp0.yz * temp1.zw + -expr15.xy;
// mad r1.xy, v1, r1.zwzw, c15
temp1.xy = i.texcoord.xy * temp1.zw + expr15.xy;
// add r0.yz, r0, -r1.xxyw
temp0.yz = temp0.yz + -temp1.xy;
// mad oT1.zw, c17.x, r0.xyyz, r1.xyxy
o.texcoord1.zw = expr17.xx * temp0.yz + temp1.xy;
// mov oT1.xy, r1
o.texcoord1.xy = temp1.xy;
// mad oT3.x, c1.x, -r0.w, -r0.x
o.texcoord3 = OpacityOverride.x * -temp0.w + -temp0.x;
// mov oT4.x, c0.x
o.texcoord4 = float4(1, 1, 1, 1);
//
return o;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader3(); // 43
PixelShader = compile ps_2_0 Default_PixelShader2(); // 44
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
AlphaBlendEnable = 1;
CullMode = Default_Expression1(); // 0
SrcBlend = 2;
DestBlend = 2;
}
}

3216
gpuparticle.fx Normal file

File diff suppressed because it is too large Load Diff

3430
gpuparticledistort.fx Normal file

File diff suppressed because it is too large Load Diff

1252
gpuparticledistortion.fx Normal file

File diff suppressed because it is too large Load Diff

1701
gpuparticlelit.fx Normal file

File diff suppressed because it is too large Load Diff

1680
gpuparticlelitaccumlight.fx Normal file

File diff suppressed because it is too large Load Diff

1844
gpuparticlenormalmap.fx Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,477 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
struct
{
float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand;
float4 ColorAnimationFunctions[6];
float4 TimeKeys;
int ShaderType;
float SpeedMultiplier;
float2 ColorScaleRange;
} Draw : register(vs_3_0, c39) <string UIWidget = "None"; string SasBindAddress = "Particle.Draw";> = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 };
struct
{
float3 Gravity;
float3 DriftVelocity;
float2 VelocityDampingRange;
} Physics : register(vs_3_0, c60) <string UIWidget = "None"; string SasBindAddress = "Particle.Physics";> = { 0, 0, 0, 0, 0, 0, 1, 0 };
struct
{
float3 Size_Rate_Damping__Min;
float3 Size_Rate_Damping__Spread;
float3 XYRotation_Rate_Damping__Min;
float3 XYRotation_Rate_Damping__Spread;
float3 ZRotation_Rate_Damping__Min;
float3 ZRotation_Rate_Damping__Spread;
} Update : register(vs_3_0, c50) <string UIWidget = "None"; string SasBindAddress = "Particle.Update";> = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 };
int _SasGlobal : SasGlobal <string UIWidget = "None"; int3 SasVersion = int3(1, 0, 0); string RenderBin = "OceanDisplacement";>;
texture NormalTexture <string UIWidget = "None"; string SasBindAddress = "Particle.Draw.Texture";>; // 10
sampler2D NormalTextureSampler : register(ps_3_0, s0) <string Texture = "NormalTexture"; string UIWidget = "None"; string SasBindAddress = "Particle.Draw.Texture";> =
sampler_state
{
Texture = <NormalTexture>; // 13
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
float4 ParticleMiscValues : register(vs_3_0, c66) <string UIWidget = "None"; string SasBindAddress = "Particle.Draw.MiscValues";> = { 1, 1, 1, 1 };
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_3_0, c56);
float Time : Time;
// Default_M_PixelShader1 Pixel_3_0 Has PRES False
struct Default_M_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// def c0, 1, 0, 0, 0
// dcl_texcoord v0.xy
// dcl_texcoord1 v1.w
// dcl_2d s0
// texld r0, v0, s0
temp0 = tex2D(NormalTextureSampler, i.texcoord.xy);
// mul r1, c0.xxxy, v1.w
temp1 = float4(1, 1, 1, 0) * i.texcoord1.w;
// mul oC0, r0, r1
out_color = temp0 * temp1;
//
return out_color;
}
// Default_M_VertexShader2 Vertex_3_0 Has PRES True
struct Default_M_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
struct Default_M_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i)
{
/*
PRSI
OutputRegisterOffset: 63
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 3
Unknown3: 0
Unknown4: 0
Unknown5: 63
Unknown6: 3
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr63;
float4 expr64;
float4 expr65;
{
// Expression_2_1
// mul c63.x, c1.x, (30)
expr63.x = Time.x * (30);
// rcp c64.x, c0.y
expr64.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y);
// rcp c65.x, c0.x
expr65.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x);
}
Default_M_VertexShader2_Output o;
float4 temp0, temp1, addr0, temp2, temp3, temp4;
// def c28, 0.5, -0.5, 16, -1
// def c36, 1.375, 2.0625, 8.9375, 6.1875
// def c30, -0.5, 0.5, 0.1591549, 0
// def c31, 0, 0, 6.283185, -3.141593
// def c37, 0.1875, 4.8125, 2.75, 0
// def c38, 1, -1, 0.5, 0
// def c29, 0.5, 0.5, 1.0001, 0.6931472
// def c27, -0.5, -0.5, 0, 0.1875
// def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609
// def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284
// def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138
// def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577
// def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847
// def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574
// def c17, 0.229799, 0.897999, 0.753822, 0.1316504
// def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481
// def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052
// def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229
// def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565
// def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764
// def c23, 0.861564, 0.2251601, 0.082332, 0.8790039
// def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381
// def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963
// def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567
// def c32, -0.25, -0.25, 0, 0
// def c33, 0.25, -0.25, 0, 0
// def c34, 0.25, 0.25, 0, 0
// def c35, -0.25, 0.25, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_texcoord1 v2
// dcl_position o0
// dcl_texcoord o1.xy
// dcl_texcoord1 o2
// mov r0.w, c27.w
temp0.w = float1(0.1875);
// mad r0, v2.x, r0.w, c36
temp0 = i.texcoord1.x * temp0.w + float4(1.375, 2.0625, 8.9375, 6.1875);
// frc r0, r0
temp0 = frac(temp0);
// mul r0, r0, c28.z
temp0 = temp0 * float4(16, 16, 16, 16);
// frc r1, r0
temp1 = frac(temp0);
// add r0, r0, -r1
temp0 = temp0 + -temp1;
// mova a0, r0
addr0 = temp0;
// mov r0.xyz, c11[a0.x]
temp0.xyz = float3(0.957897, 0.37887052, 0.36357188);
// mov r1.xyz, c55
temp1.xyz = Update.ZRotation_Rate_Damping__Spread.xyz;
// mad r0.xyz, r0, r1, c54
temp0.xyz = temp0.xyz * temp1.xyz + Update.ZRotation_Rate_Damping__Min.xyz;
// add r0.w, r0.z, c28.w
temp0.w = temp0.z + float1(-1);
// sge r0.w, -r0_abs.w, r0_abs.w
temp0.w = (r0.w == 0) ? 1 : 0;
// lrp r1.x, r0.w, c29.z, r0.z
temp1.x = lerp(temp0.z, float1(1.0001), temp0.w);
// log r0.z, r1.x
temp0.z = log2(temp1.x);
// mul r0.w, r0.z, c29.w
temp0.w = temp0.z * float1(0.6931472);
// rcp r0.w, r0.w
temp0.w = 1.0f / temp0.w;
// add r1.x, c63.x, -v1.w
temp1.x = expr63.x + -i.texcoord.w;
// mul r0.z, r0.z, r1.x
temp0.z = temp0.z * temp1.x;
// exp r0.z, r0.z
temp0.z = exp2(temp0.z);
// add r0.z, r0.z, c28.w
temp0.z = temp0.z + float1(-1);
// mul r0.z, r0.w, r0.z
temp0.z = temp0.w * temp0.z;
// mad r0.x, r0.y, r0.z, r0.x
temp0.x = temp0.y * temp0.z + temp0.x;
// mad r0.x, r0.x, c30.z, c30.y
temp0.x = temp0.x * float1(0.15915494) + float1(0.5);
// frc r0.x, r0.x
temp0.x = frac(temp0.x);
// mad r0.x, r0.x, c31.z, c31.w
temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927);
// sincos r2.xy, r0.x
temp2.xy = float2(cos(temp0.x), sin(temp0.x));
// mul r0.xyz, r2.xyxw, v1.xyyw
temp0.xyz = temp2.xyx * i.texcoord.xyy;
// mad r0.w, v1.x, -r2.y, r0.z
temp0.w = i.texcoord.x * -temp2.y + temp0.z;
// add r0.z, r0.y, r0.x
temp0.z = temp0.y + temp0.x;
// mov r0.xy, c62
temp0.xy = Physics.VelocityDampingRange.xy;
// mad r0.x, c11[a0.z].x, r0.y, r0.x
temp0.x = float1(0.957897) * temp0.y + temp0.x;
// add r0.y, r0.x, c28.w
temp0.y = temp0.x + float1(-1);
// sge r0.y, -r0_abs.y, r0_abs.y
temp0.y = (r0.y == 0) ? 1 : 0;
// lrp r1.y, r0.y, c29.z, r0.x
temp1.y = lerp(temp0.x, float1(1.0001), temp0.y);
// log r0.x, r1.y
temp0.x = log2(temp1.y);
// mul r0.y, r0.x, c29.w
temp0.y = temp0.x * float1(0.6931472);
// mul r0.x, r1.x, r0.x
temp0.x = temp1.x * temp0.x;
// rcp r0.y, r0.y
temp0.y = 1.0f / temp0.y;
// exp r0.x, r0.x
temp0.x = exp2(temp0.x);
// add r0.x, r0.x, c28.w
temp0.x = temp0.x + float1(-1);
// mul r0.x, r0.y, r0.x
temp0.x = temp0.y * temp0.x;
// mad r1.yzw, r0.xzww, r0.x, v0.xxyy
temp1.yzw = temp0.zww * temp0.xxx + i.position.xyy;
// mul r0.x, r1.x, -c27.x
temp0.x = temp1.x * float1(0.5);
// mov r2.xy, c60
temp2.xy = Physics.Gravity.xy;
// mad r2.xyz, r0.x, r2.xyyw, c61.xyyw
temp2.xyz = temp0.xxx * temp2.xyy + Physics.DriftVelocity.xyy;
// mad r1.yzw, r2.xxyz, r1.x, r1
temp1.yzw = temp2.xyz * temp1.xxx + temp1.yzw;
// add r1.yzw, r1, -v0.xxyy
temp1.yzw = temp1.yzw + -i.position.xyy;
// mov r2.xyz, c11[a0.w]
temp2.xyz = float3(0.957897, 0.37887052, 0.36357188);
// mov r3.xyz, c53
temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz;
// mad r2.xyz, r2, r3, c52
temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz;
// mov r3.xyz, c11[a0.y]
temp3.xyz = float3(0.957897, 0.37887052, 0.36357188);
// mov r4.xyz, c51
temp4.xyz = Update.Size_Rate_Damping__Spread.xyz;
// mad r3.xyz, r3, r4, c50
temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz;
// add r0.x, r2.z, c28.w
temp0.x = temp2.z + float1(-1);
// sge r0.x, -r0_abs.x, r0_abs.x
temp0.x = (r0.x == 0) ? 1 : 0;
// lrp r3.w, r0.x, c29.z, r2.z
temp3.w = lerp(temp2.z, float1(1.0001), temp0.x);
// log r0.x, r3.w
temp0.x = log2(temp3.w);
// mul r0.y, r0.x, c29.w
temp0.y = temp0.x * float1(0.6931472);
// mul r0.x, r1.x, r0.x
temp0.x = temp1.x * temp0.x;
// rcp r0.y, r0.y
temp0.y = 1.0f / temp0.y;
// exp r0.x, r0.x
temp0.x = exp2(temp0.x);
// add r0.x, r0.x, c28.w
temp0.x = temp0.x + float1(-1);
// mul r0.x, r0.y, r0.x
temp0.x = temp0.y * temp0.x;
// mad r0.x, r2.y, r0.x, r2.x
temp0.x = temp2.y * temp0.x + temp2.x;
// mad r0.x, r0.x, c30.z, c30.y
temp0.x = temp0.x * float1(0.15915494) + float1(0.5);
// frc r0.x, r0.x
temp0.x = frac(temp0.x);
// mad r0.x, r0.x, c31.z, c31.w
temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927);
// sincos r2.xy, r0.x
temp2.xy = float2(cos(temp0.x), sin(temp0.x));
// mul r2.xzw, r1.yyzw, r2.xyyx
temp2.xzw = temp1.yzw * temp2.xyx;
// mad r0.y, r1.y, -r2.y, r2.w
temp0.y = temp1.y * -temp2.y + temp2.w;
// add r0.x, r2.z, r2.x
temp0.x = temp2.z + temp2.x;
// add r0.xy, r0, v0
temp0.xy = temp0.xy + i.position.xy;
// mul r1.yz, r0.xzww, r0.xzww
temp1.yz = temp0.zw * temp0.zw;
// add r1.y, r1.z, r1.y
temp1.y = temp1.z + temp1.y;
// rsq r1.y, r1.y
temp1.y = 1 / sqrt(temp1.y);
// mul r1.yz, r0.xzww, r1.y
temp1.yz = temp0.zw * temp1.yy;
// mov r1.w, -r1.z
temp1.w = -temp1.z;
// slt r0.z, v0.w, r1.x
temp0.z = (i.position.w < temp1.x) ? 1 : 0;
// mad r0.z, r0.z, -v2.y, v2.y
temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y;
// frc r0.w, r0.z
temp0.w = frac(temp0.z);
// add r0.z, r0.z, -r0.w
temp0.z = temp0.z + -temp0.w;
// mova a0.x, r0.z
addr0.x = temp0.z;
// mul r2, r1.wyyz, c27[a0.x].xxyy
temp2 = temp1.wyyz * float4(-0.5, -0.5, -0.5, -0.5);
// mov r4.xy, c27[a0.x]
temp4.xy = float2(-0.5, -0.5);
// mad r0.zw, r4.xyxy, c38.xyxy, c38.z
temp0.zw = temp4.xy * float2(1, -1) + float2(0.5, 0.5);
// mad r1.yz, r2.xxyw, c66.x, r2.xzww
temp1.yz = temp2.xy * ParticleMiscValues.xx + temp2.zw;
// add r1.w, r3.z, c28.w
temp1.w = temp3.z + float1(-1);
// sge r1.w, -r1_abs.w, r1_abs.w
temp1.w = (r1.w == 0) ? 1 : 0;
// lrp r2.x, r1.w, c29.z, r3.z
temp2.x = lerp(temp3.z, float1(1.0001), temp1.w);
// log r1.w, r2.x
temp1.w = log2(temp2.x);
// mul r2.x, r1.w, c29.w
temp2.x = temp1.w * float1(0.6931472);
// mul r1.w, r1.x, r1.w
temp1.w = temp1.x * temp1.w;
// rcp r2.x, r2.x
temp2.x = 1.0f / temp2.x;
// exp r1.w, r1.w
temp1.w = exp2(temp1.w);
// add r1.w, r1.w, c28.w
temp1.w = temp1.w + float1(-1);
// mul r1.w, r2.x, r1.w
temp1.w = temp2.x * temp1.w;
// mad r1.w, r3.y, r1.w, r3.x
temp1.w = temp3.y * temp1.w + temp3.x;
// mad r1.yz, r1.w, r1, r0.xxyw
temp1.yz = temp1.ww * temp1.yz + temp0.xy;
// mov r1.w, -c28.w
temp1.w = float1(1);
// dp3 o0.x, r1.yzww, c56.xyww
o.position.x = dot(temp1.yzw, (WorldViewProjection._m00_m10_m20_m30).xyw);
// dp3 o0.y, r1.yzww, c57.xyww
o.position.y = dot(temp1.yzw, (WorldViewProjection._m01_m11_m21_m31).xyw);
// dp3 o0.z, r1.yzww, c58.xyww
o.position.z = dot(temp1.yzw, (WorldViewProjection._m02_m12_m22_m32).xyw);
// dp3 o0.w, r1.yzww, c59.xyww
o.position.w = dot(temp1.yzw, (WorldViewProjection._m03_m13_m23_m33).xyw);
// mad r0.xy, v2.x, c37.x, c37.yzzw
temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75);
// frc r0.xy, r0
temp0.xy = frac(temp0.xy);
// mul r0.xy, r0, c28.z
temp0.xy = temp0.xy * float2(16, 16);
// frc r1.yz, r0.xxyw
temp1.yz = frac(temp0.xy);
// add r0.xy, r0, -r1.yzzw
temp0.xy = temp0.xy + -temp1.yz;
// mova a0.xy, r0
addr0.xy = temp0.xy;
// mov r0.y, c39.y
temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y;
// mul r0.x, r0.y, c11[a0.x].x
temp0.x = temp0.y * float1(0.957897);
// frc r0.x, r0.x
temp0.x = frac(temp0.x);
// mad r0.x, c11[a0.x].x, r0.y, -r0.x
temp0.x = float1(0.957897) * temp0.y + -temp0.x;
// mov r2.xy, c49
temp2.xy = Draw.ColorScaleRange.xy;
// mad r0.y, c11[a0.y].x, r2.y, r2.x
temp0.y = float1(0.957897) * temp2.y + temp2.x;
// mad r0.x, r1.x, c48.x, r0.x
temp0.x = temp1.x * Draw.SpeedMultiplier.x + temp0.x;
// mul r0.x, r0.x, c64.x
temp0.x = temp0.x * expr64.x;
// frc r1.y, r0_abs.x
temp1.y = frac(abs(temp0).x);
// sge r0.x, r0.x, -r0.x
temp0.x = (temp0.x >= -temp0.x) ? 1 : 0;
// lrp r2.x, r0.x, r1.y, -r1.y
temp2.x = lerp(-temp1.y, temp1.y, temp0.x);
// mul r0.x, r2.x, c39.y
temp0.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y;
// mul r1.z, r0.x, c65.x
temp1.z = temp0.x * expr65.x;
// frc r0.x, r1_abs.z
temp0.x = frac(abs(temp1).z);
// sge r1.w, r1.z, -r1.z
temp1.w = (temp1.z >= -temp1.z) ? 1 : 0;
// lrp r2.x, r1.w, r0.x, -r0.x
temp2.x = lerp(-temp0.x, temp0.x, temp1.w);
// mul r1.y, r2.x, c39.x
temp1.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x;
// frc r2.xy, r1.yzzw
temp2.xy = frac(temp1.yz);
// add r1.yz, r1, -r2.xxyw
temp1.yz = temp1.yz + -temp2.xy;
// add r0.xz, r0.zyww, r1.yyzw
temp0.xz = temp0.zw + temp1.yz;
// mul o1.xy, r0.xzzw, c65.x
o.texcoord = temp0.xzzw * expr65.x;
// rcp r0.x, v0.w
temp0.x = 1.0f / i.position.w;
// mul r0.x, r1.x, r0.x
temp0.x = temp1.x * temp0.x;
// mov r1, c42
temp1 = Draw.ColorAnimationFunctions[2];
// mad r1, r1, r0.x, c43
temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3];
// mov r2, c44
temp2 = Draw.ColorAnimationFunctions[4];
// mad r2, r2, r0.x, c45
temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5];
// slt r0.zw, r0.x, c46.xyyz
temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0;
// mov r3, c40
temp3 = Draw.ColorAnimationFunctions[0];
// mad r3, r3, r0.x, c41
temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1];
// lrp r4, r0.w, r1, r2
temp4 = lerp(temp2, temp1, temp0.w);
// lrp r1, r0.z, r3, r4
temp1 = lerp(temp4, temp3, temp0.z);
// mul o2, r0.y, r1
o.texcoord1 = temp0.y * temp1;
//
return o;
}
technique Default_M
{
pass P0
{
VertexShader = compile vs_3_0 Default_M_VertexShader2(); // 19
PixelShader = compile ps_3_0 Default_M_PixelShader1(); // 20
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
AlphaTestEnable = 0;
}
}
technique Default_L
{
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3511
gpuparticleunderwater.fx Normal file

File diff suppressed because it is too large Load Diff

3130
gpuparticlexy.fx Normal file

File diff suppressed because it is too large Load Diff

4671
infantry.fx Normal file

File diff suppressed because it is too large Load Diff

3365
infantrychronorift.fx Normal file

File diff suppressed because it is too large Load Diff

2395
infantryformationpreview.fx Normal file

File diff suppressed because it is too large Load Diff

4863
infantryfrozen.fx Normal file

File diff suppressed because it is too large Load Diff

3656
infantryradiation.fx Normal file

File diff suppressed because it is too large Load Diff

325
laser.fx Normal file
View File

@ -0,0 +1,325 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
column_major float4x4 World : World : register(vs_2_0, c15);
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
texture Texture1 <string UIWidget = "None";>; // 2
sampler2D Texture1Sampler : register(ps_2_0, s0) <string Texture = "Texture1"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture1>; // 4
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 1;
};
texture Texture2 <string UIWidget = "None";>; // 7
sampler2D Texture2Sampler : register(ps_2_0, s1) <string Texture = "Texture2"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture2>; // 9
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 1;
};
float3 ColorEmissive : register(ps_2_0, c11) <string UIName = "Emissive Material Color"; string UIWidget = "Color";> = { 1, 1, 1 };
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c17) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 16
sampler2D ShroudTextureSampler : register(ps_2_0, s2) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 20
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
// Default_M_PixelShader1 Pixel_2_0 Has PRES False
struct Default_M_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float color : COLOR;
};
float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
float4 temp3;
// def c0, -0.75, 0, 0, 0
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl v0.x
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t2, s2
temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// texld r1, t0, s0
temp1 = tex2D(Texture1Sampler, i.texcoord.xy);
// texld r2, t1, s1
temp2 = tex2D(Texture2Sampler, i.texcoord1.xy);
// add r0.x, r0.x, c0.x
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r3.w, r0.x, c0.y
temp3.w = max(temp0.x, float1(0));
// add r0.x, r3.w, r3.w
temp0.x = temp3.w + temp3.w;
// mul r1, r1, r2
temp1 = temp1 * temp2;
// mul r0.yzw, r1.wzyx, c11.wzyx
temp0.yzw = temp1.zyx * ColorEmissive.zyx;
// mul r1.w, r1.w, v0.x
temp1.w = temp1.w * i.color.x;
// mul r1.xyz, r0.x, r0.wzyx
temp1.xyz = temp0.xxx * temp0.wzy;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_M_VertexShader2 Vertex_2_0 Has PRES False
struct Default_M_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 color : COLOR;
};
struct Default_M_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord2 : TEXCOORD2;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float color : COLOR;
};
Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i)
{
Default_M_VertexShader2_Output o;
float4 temp0;
float2 temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_texcoord1 v2
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// add r0.xy, r1, c17.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c17
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
// mov oT1.xy, v2
o.texcoord1 = i.texcoord1;
// mov oD0.x, v3.x
o.color = i.color.x;
//
return o;
}
// Default_PixelShader3 Pixel_2_0 Has PRES False
struct Default_PixelShader3_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float color : COLOR;
};
float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
float4 temp3;
// def c0, 2.2, -0.75, 0, 0
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl v0.x
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t2, s2
temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// texld r1, t0, s0
temp1 = tex2D(Texture1Sampler, i.texcoord.xy);
// texld r2, t1, s1
temp2 = tex2D(Texture2Sampler, i.texcoord1.xy);
// add r0.x, r0.x, c0.y
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r3.w, r0.x, c0.z
temp3.w = max(temp0.x, float1(0));
// add r0.x, r3.w, r3.w
temp0.x = temp3.w + temp3.w;
// mul r1, r1, r2
temp1 = temp1 * temp2;
// mul r0.yzw, r1.wzyx, c11.wzyx
temp0.yzw = temp1.zyx * ColorEmissive.zyx;
// mul r1.w, r1.w, v0.x
temp1.w = temp1.w * i.color.x;
// log r2.x, r0.w
temp2.x = log2(temp0.w);
// log r2.y, r0.z
temp2.y = log2(temp0.z);
// log r2.z, r0.y
temp2.z = log2(temp0.y);
// mul r0.yzw, r2.wzyx, c0.x
temp0.yzw = temp2.zyx * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.w
temp2.x = exp2(temp0.w);
// exp r2.y, r0.z
temp2.y = exp2(temp0.z);
// exp r2.z, r0.y
temp2.z = exp2(temp0.y);
// mul r1.xyz, r0.x, r2
temp1.xyz = temp0.xxx * temp2.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_VertexShader4 Vertex_2_0 Has PRES False
struct Default_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 color : COLOR;
};
struct Default_VertexShader4_Output
{
float4 position : POSITION;
float2 texcoord2 : TEXCOORD2;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float color : COLOR;
};
Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i)
{
Default_VertexShader4_Output o;
float4 temp0;
float2 temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_texcoord1 v2
// dcl_color 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// add r0.xy, r1, c17.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c17
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
// mov oT1.xy, v2
o.texcoord1 = i.texcoord1;
// mov oD0.x, v3.x
o.color = i.color.x;
//
return o;
}
technique Default
{
pass pass0
{
VertexShader = compile vs_2_0 Default_VertexShader4(); // 25
PixelShader = compile ps_2_0 Default_PixelShader3(); // 26
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 5;
DestBlend = 2;
}
}
technique Default_M
{
pass pass0
{
VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 27
PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 28
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 5;
DestBlend = 2;
}
}

302
laseralpha.fx Normal file
View File

@ -0,0 +1,302 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
column_major float4x4 World : World : register(vs_2_0, c15);
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
texture Texture1 <string UIWidget = "None";>; // 2
sampler2D Texture1Sampler : register(ps_2_0, s0) <string Texture = "Texture1"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture1>; // 4
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
texture Texture2 <string UIWidget = "None";>; // 7
sampler2D Texture2Sampler : register(ps_2_0, s1) <string Texture = "Texture2"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture2>; // 9
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c17) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 14
sampler2D ShroudTextureSampler : register(ps_2_0, s2) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 18
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
// Default_M_PixelShader1 Pixel_2_0 Has PRES False
struct Default_M_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
float4 temp3;
// def c0, -0.75, 0, 0, 0
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t2, s2
temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// texld r1, t0, s0
temp1 = tex2D(Texture1Sampler, i.texcoord.xy);
// texld r2, t1, s1
temp2 = tex2D(Texture2Sampler, i.texcoord1.xy);
// add r0.x, r0.x, c0.x
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r3.w, r0.x, c0.y
temp3.w = max(temp0.x, float1(0));
// add r0.x, r3.w, r3.w
temp0.x = temp3.w + temp3.w;
// mul r1, r1, r2
temp1 = temp1 * temp2;
// mul r1.xyz, r0.x, r1
temp1.xyz = temp0.xxx * temp1.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_M_VertexShader2 Vertex_2_0 Has PRES False
struct Default_M_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
struct Default_M_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord2 : TEXCOORD2;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i)
{
Default_M_VertexShader2_Output o;
float4 temp0;
float2 temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_texcoord1 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// add r0.xy, r1, c17.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c17
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
// mov oT1.xy, v2
o.texcoord1 = i.texcoord1;
//
return o;
}
// Default_PixelShader3 Pixel_2_0 Has PRES False
struct Default_PixelShader3_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
float4 temp3;
// def c0, 2.2, -0.75, 0, 0
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t2, s2
temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// texld r1, t0, s0
temp1 = tex2D(Texture1Sampler, i.texcoord.xy);
// texld r2, t1, s1
temp2 = tex2D(Texture2Sampler, i.texcoord1.xy);
// add r0.x, r0.x, c0.y
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r3.w, r0.x, c0.z
temp3.w = max(temp0.x, float1(0));
// add r0.x, r3.w, r3.w
temp0.x = temp3.w + temp3.w;
// mul r1, r1, r2
temp1 = temp1 * temp2;
// log r0.w, r1.x
temp0.w = log2(temp1.x);
// log r0.z, r1.y
temp0.z = log2(temp1.y);
// log r0.y, r1.z
temp0.y = log2(temp1.z);
// mul r0.yzw, r0, c0.x
temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2);
// exp r2.x, r0.w
temp2.x = exp2(temp0.w);
// exp r2.y, r0.z
temp2.y = exp2(temp0.z);
// exp r2.z, r0.y
temp2.z = exp2(temp0.y);
// mul r1.xyz, r0.x, r2
temp1.xyz = temp0.xxx * temp2.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_VertexShader4 Vertex_2_0 Has PRES False
struct Default_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
struct Default_VertexShader4_Output
{
float4 position : POSITION;
float2 texcoord2 : TEXCOORD2;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i)
{
Default_VertexShader4_Output o;
float4 temp0;
float2 temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_texcoord1 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// add r0.xy, r1, c17.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c17
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
// mov oT1.xy, v2
o.texcoord1 = i.texcoord1;
//
return o;
}
technique Default
{
pass pass0
{
VertexShader = compile vs_2_0 Default_VertexShader4(); // 23
PixelShader = compile ps_2_0 Default_PixelShader3(); // 24
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 5;
DestBlend = 6;
}
}
technique Default_M
{
pass pass0
{
VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 25
PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 26
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 5;
DestBlend = 6;
}
}

258
laserdistortion.fx Normal file
View File

@ -0,0 +1,258 @@
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] <bool unmanaged = 1;>;
column_major float4x4 World : World : register(vs_2_0, c11) <string UIWidget = "None";>;
column_major float4x4 View : View : register(vs_2_0, c14) <string UIWidget = "None";>;
texture Texture1 <string UIWidget = "None";>; // 4
sampler2D Texture1Sampler : register(ps_2_0, s0) <string Texture = "Texture1"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture1>; // 6
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
MaxAnisotropy = 8;
AddressU = 1;
AddressV = 1;
};
texture Texture2 <string UIWidget = "None";>; // 9
sampler2D Texture2Sampler : register(ps_2_0, s1) <string Texture = "Texture2"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture2>; // 11
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c17) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 16
sampler2D ShroudTextureSampler : register(ps_2_0, s2) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 20
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
// Default_M_PixelShader1 Pixel_2_0 Has PRES False
struct Default_M_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
};
float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 2, -1, 0.5, -0.75
// def c1, 0, 0, 0, 0
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl t3.xyz
// dcl t4.xyz
// dcl t5.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t0, s0
temp0 = tex2D(Texture1Sampler, i.texcoord.xy);
// texld r1, t1, s1
temp1 = tex2D(Texture2Sampler, i.texcoord1.xy);
// texld r2, t2, s2
temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// mad r0.xyz, r0, c0.x, c0.y
temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1);
// mad r0.xyz, r1, c0.x, r0
temp0.xyz = temp1.xyz * float3(2, 2, 2) + temp0.xyz;
// mul r0.w, r0.w, r1.w
temp0.w = temp0.w * temp1.w;
// add r0.xyz, r0, c0.y
temp0.xyz = temp0.xyz + float3(-1, -1, -1);
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r1, t3
temp0.x = dot(temp1.xyz, i.texcoord3.xyz);
// dp3 r0.y, r1, t4
temp0.y = dot(temp1.xyz, i.texcoord4.xyz);
// dp3 r0.z, r1, t5
temp0.z = dot(temp1.xyz, i.texcoord5.xyz);
// mad r1.xyz, r0, c0.z, c0.z
temp1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5);
// add r0.x, r2.x, c0.w
temp0.x = temp2.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r2.x, r0.x, c1.x
temp2.x = max(temp0.x, float1(0));
// mul r0.x, r0.w, r2.x
temp0.x = temp0.w * temp2.x;
// add r1.w, r0.x, r0.x
temp1.w = temp0.x + temp0.x;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_M_VertexShader2 Vertex_2_0 Has PRES False
struct Default_M_VertexShader2_Input
{
float4 position : POSITION;
float4 normal : NORMAL;
float4 tangent : TANGENT;
float4 binormal : BINORMAL;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
struct Default_M_VertexShader2_Output
{
float4 position : POSITION;
float3 texcoord3 : TEXCOORD3;
float3 texcoord4 : TEXCOORD4;
float3 texcoord5 : TEXCOORD5;
float2 texcoord2 : TEXCOORD2;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i)
{
Default_M_VertexShader2_Output o;
float4 temp0, temp1;
float3 temp2;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_normal v1
// dcl_tangent v2
// dcl_binormal v3
// dcl_texcoord v4
// dcl_texcoord1 v5
// 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, c13
temp1.z = dot(temp0, (World._m02_m12_m22_m32));
// mov r1.w, c0.x
temp1.w = float1(1);
// dp4 r1.x, r0, c11
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c12
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, c17.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// dp3 r1.x, v3, c11
temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r1.y, v3, c12
temp1.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r1.z, v3, c13
temp1.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz);
// nrm r2.xyz, r1
temp2.xyz = normalize(temp1.xyz).xyz;
// dp3 oT3.x, -r2, c14
o.texcoord3.x = dot(-temp2.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT4.x, -r2, c15
o.texcoord4.x = dot(-temp2.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT5.x, -r2, c16
o.texcoord5.x = dot(-temp2.xyz, (View._m02_m12_m22_m32).xyz);
// dp3 r1.x, v2, c11
temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r1.y, v2, c12
temp1.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r1.z, v2, c13
temp1.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz);
// nrm r2.xyz, r1
temp2.xyz = normalize(temp1.xyz).xyz;
// dp3 oT3.y, -r2, c14
o.texcoord3.y = dot(-temp2.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT4.y, -r2, c15
o.texcoord4.y = dot(-temp2.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT5.y, -r2, c16
o.texcoord5.y = dot(-temp2.xyz, (View._m02_m12_m22_m32).xyz);
// dp3 r1.x, v1, c11
temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r1.y, v1, c12
temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r1.z, v1, c13
temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz);
// nrm r2.xyz, r1
temp2.xyz = normalize(temp1.xyz).xyz;
// dp3 oT3.z, r2, c14
o.texcoord3.z = dot(temp2.xyz, (View._m00_m10_m20_m30).xyz);
// dp3 oT4.z, r2, c15
o.texcoord4.z = dot(temp2.xyz, (View._m01_m11_m21_m31).xyz);
// dp3 oT5.z, r2, c16
o.texcoord5.z = dot(temp2.xyz, (View._m02_m12_m22_m32).xyz);
// mul oT2.xy, r0, c17
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v4
o.texcoord = i.texcoord;
// mov oT1.xy, v5
o.texcoord1 = i.texcoord1;
//
return o;
}
technique Default_M
{
pass pass0
{
VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 25
PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 26
ZEnable = 1;
ZWriteEnable = 1;
ZFunc = 4;
AlphaBlendEnable = 1;
AlphaTestEnable = 0;
CullMode = 1;
SrcBlend = 5;
DestBlend = 6;
}
}
technique Default_L
{
}

1012
lightning.fx Normal file

File diff suppressed because it is too large Load Diff

1769
linerenderers.fx Normal file

File diff suppressed because it is too large Load Diff

1045
muzzleflash.fx Normal file

File diff suppressed because it is too large Load Diff

2901
normalmapped.fx Normal file

File diff suppressed because it is too large Load Diff

3045
objectsallied.fx Normal file

File diff suppressed because it is too large Load Diff

3068
objectsalliedtread.fx Normal file

File diff suppressed because it is too large Load Diff

2382
objectschronorift.fx Normal file

File diff suppressed because it is too large Load Diff

5242
objectsfactionfrozen.fx Normal file

File diff suppressed because it is too large Load Diff

2117
objectsformationpreview.fx Normal file

File diff suppressed because it is too large Load Diff

5185
objectsfrozen.fx Normal file

File diff suppressed because it is too large Load Diff

3024
objectsgeneric.fx Normal file

File diff suppressed because it is too large Load Diff

3160
objectsgenericlightmap.fx Normal file

File diff suppressed because it is too large Load Diff

2348
objectsironcurtain.fx Normal file

File diff suppressed because it is too large Load Diff

3045
objectsjapan.fx Normal file

File diff suppressed because it is too large Load Diff

3024
objectsroads.fx Normal file

File diff suppressed because it is too large Load Diff

3045
objectssoviet.fx Normal file

File diff suppressed because it is too large Load Diff

1464
objectsterrain.fx Normal file

File diff suppressed because it is too large Load Diff

4267
objectstesla.fx Normal file

File diff suppressed because it is too large Load Diff

165
occlusion.fx Normal file
View File

@ -0,0 +1,165 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
float4 FlatColor <string UIWidget = "None"; string SasBindAddress = "WW3D.FlatColor";>;
// _FillColor_PixelShader1 Pixel_2_0 Has PRES True
float4 _FillColor_PixelShader1() : 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;
{
// Expression_2_1
// mov c11, c0
expr11 = FlatColor;
}
float4 out_color;
// mov oC0, c11
out_color = expr11;
//
return out_color;
}
// _FillColor_VertexShader2 Vertex_2_0 Has PRES False
float4 _FillColor_VertexShader2(float4 position : POSITION) : POSITION
{
float4 out_position;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
out_position.xyz = position.xyz;
// mov oPos.w, c0.x
out_position.w = float1(1);
//
return out_position;
}
// _ClearStencil_PixelShader3 Pixel_2_0 Has PRES True
float4 _ClearStencil_PixelShader3() : 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;
{
// Expression_2_1
// mov c11, c0
expr11 = FlatColor;
}
float4 out_color;
// mov oC0, c11
out_color = expr11;
//
return out_color;
}
// _ClearStencil_VertexShader4 Vertex_2_0 Has PRES False
float4 _ClearStencil_VertexShader4(float4 position : POSITION) : POSITION
{
float4 out_position;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
out_position.xyz = position.xyz;
// mov oPos.w, c0.x
out_position.w = float1(1);
//
return out_position;
}
technique _ClearStencil
{
pass P0
{
VertexShader = compile vs_2_0 _ClearStencil_VertexShader4(); // 4
PixelShader = compile ps_2_0 _ClearStencil_PixelShader3(); // 5
ColorWriteEnable = 0;
ZEnable = 1;
ZFunc = 1;
ZWriteEnable = 0;
CullMode = 1;
StencilEnable = 1;
StencilFunc = 2;
StencilPass = 3;
StencilZFail = 3;
StencilFail = 2;
StencilMask = 0;
StencilWriteMask = 0;
StencilRef = 0;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique _FillColor
{
pass P0
{
VertexShader = compile vs_2_0 _FillColor_VertexShader2(); // 6
PixelShader = compile ps_2_0 _FillColor_PixelShader1(); // 7
ColorWriteEnable = 15;
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
StencilEnable = 1;
StencilFunc = 3;
StencilPass = 1;
StencilZFail = 1;
StencilFail = 1;
StencilWriteMask = -1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}

1214
ocean.fx Normal file

File diff suppressed because it is too large Load Diff

983
oceandisplacement.fx Normal file
View File

@ -0,0 +1,983 @@
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] <bool unmanaged = 1;>;
texture DisplacementTexture <string SasBindAddress = "Water.DisplacementTexture";>; // 2
sampler2D DisplacementTextureSampler <string Texture = "DisplacementTexture"; string SasBindAddress = "Water.DisplacementTexture";> =
sampler_state
{
Texture = <DisplacementTexture>; // 4
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
float DisplacementTextureSize <string SasBindAddress = "Water.DisplacementTextureSize";>;
texture StaticDisplacementTexture <string SasBindAddress = "Water.StaticDisplacementTexture";>; // 8
sampler2D StaticDisplacementTextureSampler <string Texture = "StaticDisplacementTexture"; string SasBindAddress = "Water.StaticDisplacementTexture";> =
sampler_state
{
Texture = <StaticDisplacementTexture>; // 10
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
row_major float4x4 ViewI : ViewInverse;
row_major float4x4 ProjectionI : ProjectionInverse;
float Time : Time : register(vs_2_0, c11);
// DebugDisplayDisplacement_PixelShader1 Pixel_3_0 Has PRES False
float4 DebugDisplayDisplacement_PixelShader1(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// def c0, 0.5, 1, 0, 0
// dcl_texcoord v0.xy
// dcl_2d s0
// texld r0, v0, s0
temp0 = tex2D(DisplacementTextureSampler, texcoord.xy);
// mad oC0.xyz, r0, c0.x, c0.x
out_color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5);
// mov oC0.w, c0.y
out_color.w = float1(1);
//
return out_color;
}
// DebugDisplayDisplacement_VertexShader2 Vertex_3_0 Has PRES False
struct DebugDisplayDisplacement_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct DebugDisplayDisplacement_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
DebugDisplayDisplacement_VertexShader2_Output DebugDisplayDisplacement_VertexShader2(DebugDisplayDisplacement_VertexShader2_Input i)
{
DebugDisplayDisplacement_VertexShader2_Output o;
// def c0, 0.5, 0.6666667, 0, 1
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// mul o0.xyz, c0, v0
o.position.xyz = float3(0.5, 0.6666667, 0) * i.position.xyz;
// mov o0.w, c0.w
o.position.w = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// StaticDisplacement_PixelShader3 Pixel_3_0 Has PRES True
float4 StaticDisplacement_PixelShader3(float2 texcoord1 : TEXCOORD1) : 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;
{
// Expression_2_1
// mul c11.x, c0.x, (45)
expr11.x = Time.x * (45);
}
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 0.0005, 2, -1, 0.06
// def c1, -0.9659202, 0.2588402, 0, 0.9659202
// dcl_texcoord1 v0.xy
// dcl_2d s0
// add r0.xy, v0, v0
temp0.xy = texcoord1.xy + texcoord1.xy;
// dp2add r0.w, r0, c1, c1.z
temp0.w = dot(temp0.xy, float2(-0.96592015, 0.25884023)) + float1(0);
// mov r1.xyw, c1
temp1.xyw = float3(-0.96592015, 0.25884023, 0.96592015);
// dp2add r0.z, r0, r1.ywzw, c11.x
temp0.z = dot(temp0.xy, temp1.yw) + expr11.x;
// mul r0.zw, r0, c0.x
temp0.zw = temp0.zw * float2(0.0005, 0.0005);
// texld r2, r0.zwzw, s0
temp2 = tex2D(StaticDisplacementTextureSampler, temp0.zw);
// mad r0.z, r2.w, c0.y, c0.z
temp0.z = temp2.w * float1(2) + float1(-1);
// dp2add r1.w, r0, c1.wyzw, c1.z
temp1.w = dot(temp0.xy, float2(0.96592015, 0.25884023)) + float1(0);
// dp2add r1.z, r0, r1.yxzw, c11.x
temp1.z = dot(temp0.xy, temp1.yx) + expr11.x;
// mul r0.xy, r1.zwzw, c0.x
temp0.xy = temp1.zw * float2(0.0005, 0.0005);
// texld r1, r0, s0
temp1 = tex2D(StaticDisplacementTextureSampler, temp0.xy);
// mad r0.x, r1.w, c0.y, r0.z
temp0.x = temp1.w * float1(2) + temp0.z;
// add r0.x, r0.x, c0.z
temp0.x = temp0.x + float1(-1);
// mul oC0.xyz, r0.x, c0.w
out_color.xyz = temp0.xxx * float3(0.06, 0.06, 0.06);
// mov oC0.w, c1.z
out_color.w = float1(0);
//
return out_color;
}
// StaticDisplacement_VertexShader4 Vertex_3_0 Has PRES True
struct StaticDisplacement_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct StaticDisplacement_VertexShader4_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
StaticDisplacement_VertexShader4_Output StaticDisplacement_VertexShader4(StaticDisplacement_VertexShader4_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 2
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 2
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
{
float4 temp0;
float4 temp1;
float4 temp2;
// Expression_2_1
// mul r0.x, c4.x, c0.x
temp0.x = (ViewI._m00_m10_m20_m30).x * (ProjectionI._m00_m10_m20_m30).x;
// mul r0.y, c4.x, c0.y
temp0.y = (ViewI._m00_m10_m20_m30).x * (ProjectionI._m00_m10_m20_m30).y;
// mul r0.z, c4.x, c0.w
temp0.z = (ViewI._m00_m10_m20_m30).x * (ProjectionI._m00_m10_m20_m30).w;
// mul r1.x, c4.y, c1.x
temp1.x = (ViewI._m00_m10_m20_m30).y * (ProjectionI._m01_m11_m21_m31).x;
// mul r1.y, c4.y, c1.y
temp1.y = (ViewI._m00_m10_m20_m30).y * (ProjectionI._m01_m11_m21_m31).y;
// mul r1.z, c4.y, c1.w
temp1.z = (ViewI._m00_m10_m20_m30).y * (ProjectionI._m01_m11_m21_m31).w;
// add r2.xyz, r0.xyz, r1.xyz
temp2.xyz = temp0.xyz + temp1.xyz;
// mul r0.x, c4.z, c2.x
temp0.x = (ViewI._m00_m10_m20_m30).z * (ProjectionI._m02_m12_m22_m32).x;
// mul r0.y, c4.z, c2.y
temp0.y = (ViewI._m00_m10_m20_m30).z * (ProjectionI._m02_m12_m22_m32).y;
// mul r0.z, c4.z, c2.w
temp0.z = (ViewI._m00_m10_m20_m30).z * (ProjectionI._m02_m12_m22_m32).w;
// add r1.xyz, r2.xyz, r0.xyz
temp1.xyz = temp2.xyz + temp0.xyz;
// mul r0.x, c4.w, c3.x
temp0.x = (ViewI._m00_m10_m20_m30).w * (ProjectionI._m03_m13_m23_m33).x;
// mul r0.y, c4.w, c3.y
temp0.y = (ViewI._m00_m10_m20_m30).w * (ProjectionI._m03_m13_m23_m33).y;
// mul r0.z, c4.w, c3.w
temp0.z = (ViewI._m00_m10_m20_m30).w * (ProjectionI._m03_m13_m23_m33).w;
// add c11.xyz, r1.xyz, r0.xyz
expr11.xyz = temp1.xyz + temp0.xyz;
// mul r0.x, c5.x, c0.x
temp0.x = (ViewI._m01_m11_m21_m31).x * (ProjectionI._m00_m10_m20_m30).x;
// mul r0.y, c5.x, c0.y
temp0.y = (ViewI._m01_m11_m21_m31).x * (ProjectionI._m00_m10_m20_m30).y;
// mul r0.z, c5.x, c0.w
temp0.z = (ViewI._m01_m11_m21_m31).x * (ProjectionI._m00_m10_m20_m30).w;
// mul r1.x, c5.y, c1.x
temp1.x = (ViewI._m01_m11_m21_m31).y * (ProjectionI._m01_m11_m21_m31).x;
// mul r1.y, c5.y, c1.y
temp1.y = (ViewI._m01_m11_m21_m31).y * (ProjectionI._m01_m11_m21_m31).y;
// mul r1.z, c5.y, c1.w
temp1.z = (ViewI._m01_m11_m21_m31).y * (ProjectionI._m01_m11_m21_m31).w;
// add r2.xyz, r0.xyz, r1.xyz
temp2.xyz = temp0.xyz + temp1.xyz;
// mul r0.x, c5.z, c2.x
temp0.x = (ViewI._m01_m11_m21_m31).z * (ProjectionI._m02_m12_m22_m32).x;
// mul r0.y, c5.z, c2.y
temp0.y = (ViewI._m01_m11_m21_m31).z * (ProjectionI._m02_m12_m22_m32).y;
// mul r0.z, c5.z, c2.w
temp0.z = (ViewI._m01_m11_m21_m31).z * (ProjectionI._m02_m12_m22_m32).w;
// add r1.xyz, r2.xyz, r0.xyz
temp1.xyz = temp2.xyz + temp0.xyz;
// mul r0.x, c5.w, c3.x
temp0.x = (ViewI._m01_m11_m21_m31).w * (ProjectionI._m03_m13_m23_m33).x;
// mul r0.y, c5.w, c3.y
temp0.y = (ViewI._m01_m11_m21_m31).w * (ProjectionI._m03_m13_m23_m33).y;
// mul r0.z, c5.w, c3.w
temp0.z = (ViewI._m01_m11_m21_m31).w * (ProjectionI._m03_m13_m23_m33).w;
// add c12.xyz, r1.xyz, r0.xyz
expr12.xyz = temp1.xyz + temp0.xyz;
}
StaticDisplacement_VertexShader4_Output o;
float3 temp0;
// def c0, 1, -1, 0, 2
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// dcl_texcoord1 o2.xy
// mad r0.xy, v1, c0, c0.zxzw
temp0.xy = i.texcoord.xy * float2(1, -1) + float2(0, 1);
// mad r0.xy, r0, c0.w, c0.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1);
// mov r0.z, c0.x
temp0.z = float1(1);
// dp3 o2.x, r0, c11
o.texcoord1.x = dot(temp0.xyz, expr11.xyz);
// dp3 o2.y, r0, c12
o.texcoord1.y = dot(temp0.xyz, expr12.xyz);
// mov o0.xyz, v0
o.position.xyz = i.position.xyz;
// mov o0.w, c0.x
o.position.w = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// BlurV_PixelShader5 Pixel_3_0 Has PRES True
float4 BlurV_PixelShader5(float2 texcoord : TEXCOORD) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 18
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 18
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
float4 expr15;
float4 expr16;
float4 expr17;
float4 expr18;
float4 expr19;
float4 expr20;
float4 expr21;
float4 expr22;
float4 expr23;
float4 expr24;
float4 expr25;
float4 expr26;
float4 expr27;
float4 expr28;
{
float4 temp0;
// Expression_2_1
// rcp r0.x, c0.x
temp0.x = 1.0f / (DisplacementTextureSize.x);
// mul c11.xy, r0.x, (-0, -9)
expr11.xy = temp0.x * float2(-0, -9);
// mul c12.x, r0.x, (-0)
expr12.x = temp0.x * (-0);
// mul c12.y, r0.x, (-8)
expr12.y = temp0.x * (-8);
// mul c13.x, r0.x, (-0)
expr13.x = temp0.x * (-0);
// mul c13.y, r0.x, (-7)
expr13.y = temp0.x * (-7);
// mul c14.xy, r0.x, (-0, -6)
expr14.xy = temp0.x * float2(-0, -6);
// mul c15.x, r0.x, (-0)
expr15.x = temp0.x * (-0);
// mul c15.y, r0.x, (-5)
expr15.y = temp0.x * (-5);
// mul c16.x, r0.x, (-0)
expr16.x = temp0.x * (-0);
// mul c16.y, r0.x, (-4)
expr16.y = temp0.x * (-4);
// mul c17.xy, r0.x, (-0, -3)
expr17.xy = temp0.x * float2(-0, -3);
// mul c18.x, r0.x, (-0)
expr18.x = temp0.x * (-0);
// mul c18.y, r0.x, (-2)
expr18.y = temp0.x * (-2);
// mul c19.x, r0.x, (-0)
expr19.x = temp0.x * (-0);
// mul c19.y, r0.x, (-1)
expr19.y = temp0.x * (-1);
// mul c20.xy, r0.x, (0, 1)
expr20.xy = temp0.x * float2(0, 1);
// mul c21.x, r0.x, (0)
expr21.x = temp0.x * (0);
// mul c21.y, r0.x, (2)
expr21.y = temp0.x * (2);
// mul c22.x, r0.x, (0)
expr22.x = temp0.x * (0);
// mul c22.y, r0.x, (3)
expr22.y = temp0.x * (3);
// mul c23.xy, r0.x, (0, 4)
expr23.xy = temp0.x * float2(0, 4);
// mul c24.x, r0.x, (0)
expr24.x = temp0.x * (0);
// mul c24.y, r0.x, (5)
expr24.y = temp0.x * (5);
// mul c25.x, r0.x, (0)
expr25.x = temp0.x * (0);
// mul c25.y, r0.x, (6)
expr25.y = temp0.x * (6);
// mul c26.xy, r0.x, (0, 7)
expr26.xy = temp0.x * float2(0, 7);
// mul c27.x, r0.x, (0)
expr27.x = temp0.x * (0);
// mul c27.y, r0.x, (8)
expr27.y = temp0.x * (8);
// mul c28.x, r0.x, (0)
expr28.x = temp0.x * (0);
// mul c28.y, r0.x, (9)
expr28.y = temp0.x * (9);
}
float4 out_color;
float4 temp0, temp1;
// def c0, 0.09549151, 0.561285, 0.02447174, 0.07562184
// def c1, 0.2061074, 1.667444, 0.3454915, 3.285819
// def c2, 0.5, -5, 0.3454915, -3.285819
// def c3, 0.5, 5, 0.6545085, 6.224745
// def c4, 0.9755282, 3.014548, 1, -0
// def c5, 0.7938926, 6.422726, 0.9045085, 5.316567
// def c6, 0.9755282, -3.014548, 0.9045085, -5.316567
// def c7, 0.7938926, -6.422726, 0.6545085, -6.224745
// def c8, 0.2061074, -1.667444, 0.09549151, -0.561285
// def c9, 0.02447174, -0.07562184, 0.02380952, 0.04761905
// dcl_texcoord v0.xy
// dcl_2d s0
// add r0.xy, c12, v0
temp0.xy = expr12.xy + texcoord.xy;
// texld r0, r0, s0
temp0 = tex2D(DisplacementTextureSampler, temp0.xy);
// mul r0.xyz, r0, c0.xyxw
temp0.xyz = temp0.xyz * float3(0.095491506, 0.56128496, 0.095491506);
// add r1.xy, c11, v0
temp1.xy = expr11.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c0.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.024471743, 0.07562184, 0.024471743) + temp0.xyz;
// add r1.xy, c13, v0
temp1.xy = expr13.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c1.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.20610738, 1.6674438, 0.20610738) + temp0.xyz;
// add r1.xy, c14, v0
temp1.xy = expr14.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c1.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.3454915, 3.2858193, 0.3454915) + temp0.xyz;
// add r1.xy, c15, v0
temp1.xy = expr15.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c3.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.5, 5, 0.5) + temp0.xyz;
// add r1.xy, c16, v0
temp1.xy = expr16.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c3.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.6545085, 6.2247453, 0.6545085) + temp0.xyz;
// add r1.xy, c17, v0
temp1.xy = expr17.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c5.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.7938926, 6.422726, 0.7938926) + temp0.xyz;
// add r1.xy, c18, v0
temp1.xy = expr18.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c5.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.9045085, 5.3165674, 0.9045085) + temp0.xyz;
// add r1.xy, c19, v0
temp1.xy = expr19.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c4.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.97552824, 3.014548, 0.97552824) + temp0.xyz;
// texld r1, v0, s0
temp1 = tex2D(DisplacementTextureSampler, texcoord.xy);
// mad r0.xyz, r1, c4.zwzw, r0
temp0.xyz = temp1.xyz * float3(1, -0, 1) + temp0.xyz;
// add r1.xy, c20, v0
temp1.xy = expr20.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c6.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.97552824, -3.014548, 0.97552824) + temp0.xyz;
// add r1.xy, c21, v0
temp1.xy = expr21.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c6.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.9045085, -5.3165674, 0.9045085) + temp0.xyz;
// add r1.xy, c22, v0
temp1.xy = expr22.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c7.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.7938926, -6.422726, 0.7938926) + temp0.xyz;
// add r1.xy, c23, v0
temp1.xy = expr23.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c7.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.6545085, -6.2247453, 0.6545085) + temp0.xyz;
// add r1.xy, c24, v0
temp1.xy = expr24.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c2.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.5, -5, 0.5) + temp0.xyz;
// add r1.xy, c25, v0
temp1.xy = expr25.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c2.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.3454915, -3.2858193, 0.3454915) + temp0.xyz;
// add r1.xy, c26, v0
temp1.xy = expr26.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c8.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.20610738, -1.6674438, 0.20610738) + temp0.xyz;
// add r1.xy, c27, v0
temp1.xy = expr27.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c8.zwzw, r0
temp0.xyz = temp1.xyz * float3(0.095491506, -0.56128496, 0.095491506) + temp0.xyz;
// add r1.xy, c28, v0
temp1.xy = expr28.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c9.xyxw, r0
temp0.xyz = temp1.xyz * float3(0.024471743, -0.07562184, 0.024471743) + temp0.xyz;
// mul oC0.xyz, r0, c9.zzww
out_color.xyz = temp0.xyz * float3(0.023809524, 0.023809524, 0.04761905);
// mov oC0.w, -c4.w
out_color.w = float1(0);
//
return out_color;
}
// BlurV_VertexShader6 Vertex_3_0 Has PRES False
struct BlurV_VertexShader6_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct BlurV_VertexShader6_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
BlurV_VertexShader6_Output BlurV_VertexShader6(BlurV_VertexShader6_Input i)
{
BlurV_VertexShader6_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// mov o0.xyz, v0
o.position.xyz = i.position.xyz;
// mov o0.w, c0.x
o.position.w = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// BlurU_PixelShader7 Pixel_3_0 Has PRES True
float4 BlurU_PixelShader7(float2 texcoord : TEXCOORD) : COLOR
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 18
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 18
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
float4 expr15;
float4 expr16;
float4 expr17;
float4 expr18;
float4 expr19;
float4 expr20;
float4 expr21;
float4 expr22;
float4 expr23;
float4 expr24;
float4 expr25;
float4 expr26;
float4 expr27;
float4 expr28;
{
float4 temp0;
// Expression_2_1
// rcp r0.x, c0.x
temp0.x = 1.0f / (DisplacementTextureSize.x);
// mul c11.xy, r0.x, (-9, -0)
expr11.xy = temp0.x * float2(-9, -0);
// mul c12.x, r0.x, (-8)
expr12.x = temp0.x * (-8);
// mul c12.y, r0.x, (-0)
expr12.y = temp0.x * (-0);
// mul c13.x, r0.x, (-7)
expr13.x = temp0.x * (-7);
// mul c13.y, r0.x, (-0)
expr13.y = temp0.x * (-0);
// mul c14.xy, r0.x, (-6, -0)
expr14.xy = temp0.x * float2(-6, -0);
// mul c15.x, r0.x, (-5)
expr15.x = temp0.x * (-5);
// mul c15.y, r0.x, (-0)
expr15.y = temp0.x * (-0);
// mul c16.x, r0.x, (-4)
expr16.x = temp0.x * (-4);
// mul c16.y, r0.x, (-0)
expr16.y = temp0.x * (-0);
// mul c17.xy, r0.x, (-3, -0)
expr17.xy = temp0.x * float2(-3, -0);
// mul c18.x, r0.x, (-2)
expr18.x = temp0.x * (-2);
// mul c18.y, r0.x, (-0)
expr18.y = temp0.x * (-0);
// mul c19.x, r0.x, (-1)
expr19.x = temp0.x * (-1);
// mul c19.y, r0.x, (-0)
expr19.y = temp0.x * (-0);
// mul c20.xy, r0.x, (1, 0)
expr20.xy = temp0.x * float2(1, 0);
// mul c21.x, r0.x, (2)
expr21.x = temp0.x * (2);
// mul c21.y, r0.x, (0)
expr21.y = temp0.x * (0);
// mul c22.x, r0.x, (3)
expr22.x = temp0.x * (3);
// mul c22.y, r0.x, (0)
expr22.y = temp0.x * (0);
// mul c23.xy, r0.x, (4, 0)
expr23.xy = temp0.x * float2(4, 0);
// mul c24.x, r0.x, (5)
expr24.x = temp0.x * (5);
// mul c24.y, r0.x, (0)
expr24.y = temp0.x * (0);
// mul c25.x, r0.x, (6)
expr25.x = temp0.x * (6);
// mul c25.y, r0.x, (0)
expr25.y = temp0.x * (0);
// mul c26.xy, r0.x, (7, 0)
expr26.xy = temp0.x * float2(7, 0);
// mul c27.x, r0.x, (8)
expr27.x = temp0.x * (8);
// mul c27.y, r0.x, (0)
expr27.y = temp0.x * (0);
// mul c28.x, r0.x, (9)
expr28.x = temp0.x * (9);
// mul c28.y, r0.x, (0)
expr28.y = temp0.x * (0);
}
float4 out_color;
float4 temp0, temp1;
// def c0, 0.561285, 0.09549151, 0.07562184, 0.02447174
// def c1, 3.014548, 0.9755282, -0, 1
// def c2, 1.667444, 0.2061074, 3.285819, 0.3454915
// def c3, 5, 0.5, 6.224745, 0.6545085
// def c4, 6.422726, 0.7938926, 5.316567, 0.9045085
// def c5, -3.014548, 0.9755282, -5.316567, 0.9045085
// def c6, -6.422726, 0.7938926, -6.224745, 0.6545085
// def c7, -5, 0.5, -3.285819, 0.3454915
// def c8, -1.667444, 0.2061074, -0.561285, 0.09549151
// def c9, -0.07562184, 0.02447174, 0.02380952, 0.04761905
// dcl_texcoord v0.xy
// dcl_2d s0
// add r0.xy, c12, v0
temp0.xy = expr12.xy + texcoord.xy;
// texld r0, r0, s0
temp0 = tex2D(DisplacementTextureSampler, temp0.xy);
// mul r0.xyz, r0, c0.xyyw
temp0.xyz = temp0.xyz * float3(0.56128496, 0.095491506, 0.095491506);
// add r1.xy, c11, v0
temp1.xy = expr11.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c0.zwww, r0
temp0.xyz = temp1.xyz * float3(0.07562184, 0.024471743, 0.024471743) + temp0.xyz;
// add r1.xy, c13, v0
temp1.xy = expr13.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c2.xyyw, r0
temp0.xyz = temp1.xyz * float3(1.6674438, 0.20610738, 0.20610738) + temp0.xyz;
// add r1.xy, c14, v0
temp1.xy = expr14.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c2.zwww, r0
temp0.xyz = temp1.xyz * float3(3.2858193, 0.3454915, 0.3454915) + temp0.xyz;
// add r1.xy, c15, v0
temp1.xy = expr15.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c3.xyyw, r0
temp0.xyz = temp1.xyz * float3(5, 0.5, 0.5) + temp0.xyz;
// add r1.xy, c16, v0
temp1.xy = expr16.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c3.zwww, r0
temp0.xyz = temp1.xyz * float3(6.2247453, 0.6545085, 0.6545085) + temp0.xyz;
// add r1.xy, c17, v0
temp1.xy = expr17.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c4.xyyw, r0
temp0.xyz = temp1.xyz * float3(6.422726, 0.7938926, 0.7938926) + temp0.xyz;
// add r1.xy, c18, v0
temp1.xy = expr18.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c4.zwww, r0
temp0.xyz = temp1.xyz * float3(5.3165674, 0.9045085, 0.9045085) + temp0.xyz;
// add r1.xy, c19, v0
temp1.xy = expr19.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c1.xyyw, r0
temp0.xyz = temp1.xyz * float3(3.014548, 0.97552824, 0.97552824) + temp0.xyz;
// texld r1, v0, s0
temp1 = tex2D(DisplacementTextureSampler, texcoord.xy);
// mad r0.xyz, r1, c1.zwww, r0
temp0.xyz = temp1.xyz * float3(-0, 1, 1) + temp0.xyz;
// add r1.xy, c20, v0
temp1.xy = expr20.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c5.xyyw, r0
temp0.xyz = temp1.xyz * float3(-3.014548, 0.97552824, 0.97552824) + temp0.xyz;
// add r1.xy, c21, v0
temp1.xy = expr21.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c5.zwww, r0
temp0.xyz = temp1.xyz * float3(-5.3165674, 0.9045085, 0.9045085) + temp0.xyz;
// add r1.xy, c22, v0
temp1.xy = expr22.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c6.xyyw, r0
temp0.xyz = temp1.xyz * float3(-6.422726, 0.7938926, 0.7938926) + temp0.xyz;
// add r1.xy, c23, v0
temp1.xy = expr23.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c6.zwww, r0
temp0.xyz = temp1.xyz * float3(-6.2247453, 0.6545085, 0.6545085) + temp0.xyz;
// add r1.xy, c24, v0
temp1.xy = expr24.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c7.xyyw, r0
temp0.xyz = temp1.xyz * float3(-5, 0.5, 0.5) + temp0.xyz;
// add r1.xy, c25, v0
temp1.xy = expr25.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c7.zwww, r0
temp0.xyz = temp1.xyz * float3(-3.2858193, 0.3454915, 0.3454915) + temp0.xyz;
// add r1.xy, c26, v0
temp1.xy = expr26.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c8.xyyw, r0
temp0.xyz = temp1.xyz * float3(-1.6674438, 0.20610738, 0.20610738) + temp0.xyz;
// add r1.xy, c27, v0
temp1.xy = expr27.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c8.zwww, r0
temp0.xyz = temp1.xyz * float3(-0.56128496, 0.095491506, 0.095491506) + temp0.xyz;
// add r1.xy, c28, v0
temp1.xy = expr28.xy + texcoord.xy;
// texld r1, r1, s0
temp1 = tex2D(DisplacementTextureSampler, temp1.xy);
// mad r0.xyz, r1, c9.xyyw, r0
temp0.xyz = temp1.xyz * float3(-0.07562184, 0.024471743, 0.024471743) + temp0.xyz;
// mul oC0.xyz, r0, c9.zzww
out_color.xyz = temp0.xyz * float3(0.023809524, 0.023809524, 0.04761905);
// mov oC0.w, -c1.z
out_color.w = float1(0);
//
return out_color;
}
// BlurU_VertexShader8 Vertex_3_0 Has PRES False
struct BlurU_VertexShader8_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct BlurU_VertexShader8_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
BlurU_VertexShader8_Output BlurU_VertexShader8(BlurU_VertexShader8_Input i)
{
BlurU_VertexShader8_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// mov o0.xyz, v0
o.position.xyz = i.position.xyz;
// mov o0.w, c0.x
o.position.w = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// RenderWaveParticles_PixelShader9 Pixel_2_0 Has PRES False
float4 RenderWaveParticles_PixelShader9(float texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// def c0, 0, 0, 0, 0
// dcl t0.x
// mov r0.xyz, t0.x
temp0.xyz = texcoord.x;
// mov r0.w, c0.x
temp0.w = float1(0);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// RenderWaveParticles_VertexShader10 Vertex_2_0 Has PRES False
struct RenderWaveParticles_VertexShader10_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct RenderWaveParticles_VertexShader10_Output
{
float4 position : POSITION;
float texcoord : TEXCOORD;
};
RenderWaveParticles_VertexShader10_Output RenderWaveParticles_VertexShader10(RenderWaveParticles_VertexShader10_Input i)
{
RenderWaveParticles_VertexShader10_Output o;
float4 temp0;
float2 temp1;
// def c0, 0, -0.3606738, 0.5, 1
// dcl_position v0
// dcl_texcoord v1
// add r0.x, -v1.y, c11.x
temp0.x = -i.texcoord.y + Time.x;
// mad r0.yz, r0.x, v0.xzww, v0.xxyw
temp0.yz = temp0.xx * i.position.zw + i.position.xy;
// mul r1.xy, r0.x, c0.yzzw
temp1.xy = temp0.xx * float2(-0.36067376, 0.5);
// mov r0.w, c0.w
temp0.w = float1(1);
// dp3 oPos.x, r0.yzww, c119.xyww
o.position.x = dot(temp0.yzw, (ViewProjection._m00_m10_m20_m30).xyw);
// dp3 oPos.y, r0.yzww, c120.xyww
o.position.y = dot(temp0.yzw, (ViewProjection._m01_m11_m21_m31).xyw);
// exp r0.x, r1.x
temp0.x = exp2(temp1.x);
// max r0.y, r1.y, c0.x
temp0.y = max(temp1.y, float1(0));
// abs r0.z, v1.x
temp0.z = abs(i.texcoord.x);
// mul r0.x, r0.x, r0.z
temp0.x = temp0.x * temp0.z;
// min r0.y, r0.y, c0.w
temp0.y = min(temp0.y, float1(1));
// mad r0.x, r0.x, r0.y, -v1.x
temp0.x = temp0.x * temp0.y + -i.texcoord.x;
// slt r0.y, v1.x, c0.x
temp0.y = (i.texcoord.x < float1(0)) ? 1 : 0;
// mad r0.x, r0.y, r0.x, v1.x
temp0.x = temp0.y * temp0.x + i.texcoord.x;
// min oT0.x, r0.x, c0.w
o.texcoord = min(temp0.x, float4(1, 1, 1, 1));
// mov oPos.zw, c0.xyxw
o.position.zw = float2(0, 1);
//
return o;
}
technique RenderWaveParticles
{
pass P0
{
VertexShader = compile vs_2_0 RenderWaveParticles_VertexShader10(); // 13
PixelShader = compile ps_2_0 RenderWaveParticles_PixelShader9(); // 14
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
}
}
technique BlurU
{
pass p0
{
VertexShader = compile vs_3_0 BlurU_VertexShader8(); // 15
PixelShader = compile ps_3_0 BlurU_PixelShader7(); // 16
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique BlurV
{
pass p0
{
VertexShader = compile vs_3_0 BlurV_VertexShader6(); // 17
PixelShader = compile ps_3_0 BlurV_PixelShader5(); // 18
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique StaticDisplacement
{
pass p0
{
VertexShader = compile vs_3_0 StaticDisplacement_VertexShader4(); // 19
PixelShader = compile ps_3_0 StaticDisplacement_PixelShader3(); // 20
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
}
}
technique DebugDisplayDisplacement
{
pass P0
{
VertexShader = compile vs_3_0 DebugDisplayDisplacement_VertexShader2(); // 21
PixelShader = compile ps_3_0 DebugDisplayDisplacement_PixelShader1(); // 22
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
SrcBlend = 2;
DestBlend = 2;
}
}

1252
oceannovertextexture.fx Normal file

File diff suppressed because it is too large Load Diff

447
outlines.fx Normal file
View File

@ -0,0 +1,447 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
bool IsHdrEnabled <string SasBindAddress = "WW3D.IsHdrEnabled";>;
texture PostEffectOutlineTexture <string SasBindAddress = "WW3D.Outline.Texture";>; // 3
sampler2D PostEffectOutlineTextureSampler : register(ps_2_0, s0) <string Texture = "PostEffectOutlineTexture"; string SasBindAddress = "WW3D.Outline.Texture";> =
sampler_state
{
Texture = <PostEffectOutlineTexture>; // 5
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
float2 FrameBufferSize <string UIWidget = "None"; string SasBindAddress = "WW3D.FrameBufferSize";> = { 1, 1 };
// Blit_PixelShader1 Pixel_2_0 Has PRES False
float4 Blit_PixelShader1(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(PostEffectOutlineTextureSampler, texcoord.xy);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Blit_VertexShader2 Vertex_2_0 Has PRES False
struct Blit_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Blit_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
Blit_VertexShader2_Output Blit_VertexShader2(Blit_VertexShader2_Input i)
{
Blit_VertexShader2_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// DrawWithStencil_PixelShader3 Pixel_2_0 Has PRES False
float4 DrawWithStencil_PixelShader3(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(PostEffectOutlineTextureSampler, texcoord.xy);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// DrawWithStencil_VertexShader4 Vertex_2_0 Has PRES False
struct DrawWithStencil_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct DrawWithStencil_VertexShader4_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
DrawWithStencil_VertexShader4_Output DrawWithStencil_VertexShader4(DrawWithStencil_VertexShader4_Input i)
{
DrawWithStencil_VertexShader4_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// BlurBox_PixelShader5 Pixel_2_0 Has PRES False
struct BlurBox_PixelShader5_Input
{
float2 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
float4 BlurBox_PixelShader5(BlurBox_PixelShader5_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
float2 temp4;
// def c0, 1.25, 0, 0, 0
// dcl t0.xy
// dcl t1
// dcl_2d s0
// mov r0.xy, t0
temp0.xy = i.texcoord.xy;
// add r1.x, r0.x, t1.x
temp1.x = temp0.x + i.texcoord1.x;
// add r1.y, r0.y, t1.z
temp1.y = temp0.y + i.texcoord1.z;
// add r2.x, r0.x, t1.x
temp2.x = temp0.x + i.texcoord1.x;
// add r2.y, r0.y, t1.w
temp2.y = temp0.y + i.texcoord1.w;
// add r3.xy, r0, t1.yzxw
temp3.xy = temp0.xy + i.texcoord1.yz;
// add r4.x, r0.x, t1.y
temp4.x = temp0.x + i.texcoord1.y;
// add r4.y, r0.y, t1.w
temp4.y = temp0.y + i.texcoord1.w;
// texld r0, r1, s0
temp0 = tex2D(PostEffectOutlineTextureSampler, temp1.xy);
// texld r1, r2, s0
temp1 = tex2D(PostEffectOutlineTextureSampler, temp2.xy);
// texld r2, r3, s0
temp2 = tex2D(PostEffectOutlineTextureSampler, temp3.xy);
// texld r3, r4, s0
temp3 = tex2D(PostEffectOutlineTextureSampler, temp4.xy);
// add r0, r0, r1
temp0 = temp0 + temp1;
// add r0, r2, r0
temp0 = temp2 + temp0;
// add r0, r3, r0
temp0 = temp3 + temp0;
// mul r0, r0, c0.x
temp0 = temp0 * float4(1.25, 1.25, 1.25, 1.25);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// BlurBox_VertexShader6 Vertex_2_0 Has PRES True
struct BlurBox_VertexShader6_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct BlurBox_VertexShader6_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
BlurBox_VertexShader6_Output BlurBox_VertexShader6(BlurBox_VertexShader6_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
// rcp r0.x, c0.x
temp0.x = 1.0f / (FrameBufferSize.x);
// mul c12.x, r0.x, (-1.5)
expr12.x = temp0.x * (-1.5);
// mul c12.y, r0.x, (1.5)
expr12.y = temp0.x * (1.5);
// rcp r0.x, c0.y
temp0.x = 1.0f / (FrameBufferSize.y);
// mul c12.z, r0.x, (-1.5)
expr12.z = temp0.x * (-1.5);
// mul c12.w, r0.x, (1.5)
expr12.w = temp0.x * (1.5);
}
BlurBox_VertexShader6_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
// mov oT1, c12
o.texcoord1 = expr12;
//
return o;
}
// FillHoverAttack_PixelShader7 Pixel_2_0 Has PRES False
float4 FillHoverAttack_PixelShader7() : COLOR
{
float4 out_color;
// def c0, 1, 0, 0, 1
// mov oC0, c0
out_color = float4(1, 0, 0, 1);
//
return out_color;
}
// FillHoverAttack_VertexShader8 Vertex_2_0 Has PRES False
float4 FillHoverAttack_VertexShader8(float4 position : POSITION) : POSITION
{
float4 out_position;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
out_position.xyz = position.xyz;
// mov oPos.w, c0.x
out_position.w = float1(1);
//
return out_position;
}
// FillHoverSelect_PixelShader9 Pixel_2_0 Has PRES False
float4 FillHoverSelect_PixelShader9() : COLOR
{
float4 out_color;
float4 temp0;
// def c0, 1, 0, 0, 0
// mov r0, c0.x
temp0 = float4(1, 1, 1, 1);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// FillHoverSelect_VertexShader10 Vertex_2_0 Has PRES False
float4 FillHoverSelect_VertexShader10(float4 position : POSITION) : POSITION
{
float4 out_position;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
out_position.xyz = position.xyz;
// mov oPos.w, c0.x
out_position.w = float1(1);
//
return out_position;
}
// FillSelected_PixelShader11 Pixel_2_0 Has PRES False
float4 FillSelected_PixelShader11() : COLOR
{
float4 out_color;
// def c0, 1, 0.713, 0, 1
// mov oC0, c0
out_color = float4(1, 0.713, 0, 1);
//
return out_color;
}
// FillSelected_VertexShader12 Vertex_2_0 Has PRES False
float4 FillSelected_VertexShader12(float4 position : POSITION) : POSITION
{
float4 out_position;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
out_position.xyz = position.xyz;
// mov oPos.w, c0.x
out_position.w = float1(1);
//
return out_position;
}
technique FillSelected
{
pass P0
{
VertexShader = compile vs_2_0 FillSelected_VertexShader12(); // 10
PixelShader = compile ps_2_0 FillSelected_PixelShader11(); // 11
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
StencilEnable = 1;
StencilFunc = 3;
StencilPass = 1;
StencilZFail = 1;
StencilFail = 1;
StencilMask = 1;
StencilRef = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique FillHoverSelect
{
pass P0
{
VertexShader = compile vs_2_0 FillHoverSelect_VertexShader10(); // 12
PixelShader = compile ps_2_0 FillHoverSelect_PixelShader9(); // 13
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
StencilEnable = 1;
StencilFunc = 3;
StencilPass = 1;
StencilZFail = 1;
StencilFail = 1;
StencilMask = 2;
StencilRef = 2;
}
}
technique FillHoverAttack
{
pass P0
{
VertexShader = compile vs_2_0 FillHoverAttack_VertexShader8(); // 14
PixelShader = compile ps_2_0 FillHoverAttack_PixelShader7(); // 15
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
StencilEnable = 1;
StencilFunc = 3;
StencilPass = 1;
StencilZFail = 1;
StencilFail = 1;
StencilMask = 3;
StencilRef = 3;
}
}
technique BlurBox
{
pass P0
{
VertexShader = compile vs_2_0 BlurBox_VertexShader6(); // 16
PixelShader = compile ps_2_0 BlurBox_PixelShader5(); // 17
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
StencilEnable = 0;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique DrawWithStencil
{
pass P0
{
VertexShader = compile vs_2_0 DrawWithStencil_VertexShader4(); // 18
PixelShader = compile ps_2_0 DrawWithStencil_PixelShader3(); // 19
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
StencilEnable = 1;
StencilFunc = 3;
StencilPass = 1;
StencilZFail = 1;
StencilFail = 1;
StencilMask = 3;
StencilRef = 0;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
}
}
technique Blit
{
pass P0
{
VertexShader = compile vs_2_0 Blit_VertexShader2(); // 20
PixelShader = compile ps_2_0 Blit_PixelShader1(); // 21
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
StencilEnable = 0;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}

2022
postfx_bloom.fx Normal file

File diff suppressed because it is too large Load Diff

189
postfx_distortion.fx Normal file
View File

@ -0,0 +1,189 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
bool IsHdrEnabled <string SasBindAddress = "WW3D.IsHdrEnabled";>;
texture FrameBufferSampler <string SasBindAddress = "PostEffect.FrameBufferTexture";>; // 3
sampler2D FrameBufferSamplerSampler : register(ps_2_0, s0) <string Texture = "FrameBufferSampler"; string SasBindAddress = "PostEffect.FrameBufferTexture";> =
sampler_state
{
Texture = <FrameBufferSampler>; // 5
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
texture DistortionOffsetSampler <string SasBindAddress = "PostEffect.Distortion.DistortionOffsetTexture";>; // 8
sampler2D DistortionOffsetSamplerSampler : register(ps_2_0, s1) <string Texture = "DistortionOffsetSampler"; string SasBindAddress = "PostEffect.Distortion.DistortionOffsetTexture";> =
sampler_state
{
Texture = <DistortionOffsetSampler>; // 10
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
AddressW = 3;
};
// Default_M_PixelShader1 Pixel_2_0 Has PRES False
float4 Default_M_PixelShader1(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// def c0, 2, -0.9960784, 0.08, 0
// dcl t0.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s1
temp0 = tex2D(DistortionOffsetSamplerSampler, texcoord.xy);
// mad r0.xy, r0, c0.x, c0.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-0.99607843, -0.99607843);
// mad r0.xy, r0, c0.z, t0
temp0.xy = temp0.xy * float2(0.08, 0.08) + texcoord.xy;
// texld r0, r0, s0
temp0 = tex2D(FrameBufferSamplerSampler, temp0.xy);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_M_VertexShader2 Vertex_2_0 Has PRES False
struct Default_M_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Default_M_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i)
{
Default_M_VertexShader2_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Default_PixelShader3 Pixel_2_0 Has PRES False
float4 Default_PixelShader3(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// def c0, 2, -0.9960784, 0.08, 0
// dcl t0.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s1
temp0 = tex2D(DistortionOffsetSamplerSampler, texcoord.xy);
// mad r0.xy, r0, c0.x, c0.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-0.99607843, -0.99607843);
// mad r0.xy, r0, c0.z, t0
temp0.xy = temp0.xy * float2(0.08, 0.08) + texcoord.xy;
// texld r0, r0, s0
temp0 = tex2D(FrameBufferSamplerSampler, temp0.xy);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_VertexShader4 Vertex_2_0 Has PRES False
struct Default_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Default_VertexShader4_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i)
{
Default_VertexShader4_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader4(); // 13
PixelShader = compile ps_2_0 Default_PixelShader3(); // 14
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
FillMode = 3;
}
}
technique Default_M
{
pass P0
{
VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 15
PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 16
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
FillMode = 3;
}
}
technique Default_L
{
}

116
postfx_lineardepth.fx Normal file
View File

@ -0,0 +1,116 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
column_major float4x4 ProjectionI : ProjectionInverse : register(ps_2_0, c11);
texture DepthBufferSampler <string SasBindAddress = "PostEffect.DepthBufferTexture";>; // 2
sampler2D DepthBufferSamplerSampler : register(ps_2_0, s0) <string Texture = "DepthBufferSampler"; string SasBindAddress = "PostEffect.DepthBufferTexture";> =
sampler_state
{
Texture = <DepthBufferSampler>; // 4
MinFilter = 1;
MagFilter = 1;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
// LinearDepth_PixelShader1 Pixel_2_0 Has PRES False
float4 LinearDepth_PixelShader1(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, -1, 1, 0, 0
// def c1, 0, 2, -2, 1
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(DepthBufferSamplerSampler, texcoord.xy);
// mov r0.z, r0.x
temp0.z = temp0.x;
// mov r1.yz, c1
temp1.yz = float2(2, -2);
// mad r0.xy, t0, r1.yzxw, c0
temp0.xy = texcoord.xy * temp1.yz + float2(-1, 1);
// mov r0.w, c1.w
temp0.w = float1(1);
// dp4 r1.x, r0, c14
temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33));
// dp4 r0.x, r0, c13
temp0.x = dot(temp0, (ProjectionI._m02_m12_m22_m32));
// rcp r0.y, r1.x
temp0.y = 1.0f / temp1.x;
// mul r0.xyz, r0.x, r0.y
temp0.xyz = temp0.x * temp0.y;
// mov r0.w, c1.w
temp0.w = float1(1);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// LinearDepth_VertexShader2 Vertex_2_0 Has PRES False
struct LinearDepth_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct LinearDepth_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
LinearDepth_VertexShader2_Output LinearDepth_VertexShader2(LinearDepth_VertexShader2_Input i)
{
LinearDepth_VertexShader2_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique LinearDepth
{
pass p0
{
VertexShader = compile vs_2_0 LinearDepth_VertexShader2(); // 7
PixelShader = compile ps_2_0 LinearDepth_PixelShader1(); // 8
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}

354
postfx_lookuptable.fx Normal file
View File

@ -0,0 +1,354 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
bool IsHdrEnabled <string SasBindAddress = "WW3D.IsHdrEnabled";>;
texture FrameBufferSampler <string SasBindAddress = "PostEffect.FrameBufferTexture";>; // 3
sampler2D FrameBufferSamplerSampler : register(ps_2_0, s0) <string Texture = "FrameBufferSampler"; string SasBindAddress = "PostEffect.FrameBufferTexture";> =
sampler_state
{
Texture = <FrameBufferSampler>; // 5
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
texture LookupTexture <string SasBindAddress = "PostEffect.LookupTable.LookupTexture";>; // 8
sampler3D LookupTextureSampler : register(ps_2_0, s1) <string Texture = "LookupTexture"; string SasBindAddress = "PostEffect.LookupTable.LookupTexture";> =
sampler_state
{
Texture = <LookupTexture>; // 10
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
AddressW = 3;
};
texture FilmTonemappingLookupTexture <string SasBindAddress = "PostEffect.LookupTable.FilmTonemapping";>; // 13
sampler2D FilmTonemappingLookupTextureSampler <string Texture = "FilmTonemappingLookupTexture"; string SasBindAddress = "PostEffect.LookupTable.FilmTonemapping";> =
sampler_state
{
Texture = <FilmTonemappingLookupTexture>; // 15
MinFilter = 2;
MagFilter = 2;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
float4 BlendFactor : register(ps_2_0, c11) <string SasBindAddress = "PostEffect.LookupTable.BlendFactor";> = { 1, 1, 1, 1 };
float3 ExposureLevel : register(ps_2_0, c12) <string SasBindAddress = "PostEffect.LookupTable.ExposureLevel";> = { 1, 1, 1 };
// ResolveOnly_M_PixelShader1 Pixel_2_0 Has PRES False
float4 ResolveOnly_M_PixelShader1(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy);
// mul r0.xyz, r0, c11
temp0.xyz = temp0.xyz * ExposureLevel.xyz;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// ResolveOnly_M_VertexShader2 Vertex_2_0 Has PRES False
struct ResolveOnly_M_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct ResolveOnly_M_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
ResolveOnly_M_VertexShader2_Output ResolveOnly_M_VertexShader2(ResolveOnly_M_VertexShader2_Input i)
{
ResolveOnly_M_VertexShader2_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// ResolveOnly_PixelShader3 Pixel_2_0 Has PRES False
float4 ResolveOnly_PixelShader3(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1, temp2, temp3;
// def c0, 6, 0.1666667, 1, 0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy);
// mul r1.xyz, r0, c11
temp1.xyz = temp0.xyz * ExposureLevel.xyz;
// mul r2.xyz, r1, c0.x
temp2.xyz = temp1.xyz * float3(6, 6, 6);
// mad r3.xyz, r1, c0.y, c0.z
temp3.xyz = temp1.xyz * float3(0.16666667, 0.16666667, 0.16666667) + float3(1, 1, 1);
// mad r1.xyz, r1, c0.x, c0.z
temp1.xyz = temp1.xyz * float3(6, 6, 6) + float3(1, 1, 1);
// mul r2.xyz, r2, r3
temp2.xyz = temp2.xyz * temp3.xyz;
// rcp r3.x, r1.x
temp3.x = 1.0f / temp1.x;
// rcp r3.y, r1.y
temp3.y = 1.0f / temp1.y;
// rcp r3.z, r1.z
temp3.z = 1.0f / temp1.z;
// mul r0.xyz, r2, r3
temp0.xyz = temp2.xyz * temp3.xyz;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// ResolveOnly_VertexShader4 Vertex_2_0 Has PRES False
struct ResolveOnly_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct ResolveOnly_VertexShader4_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
ResolveOnly_VertexShader4_Output ResolveOnly_VertexShader4(ResolveOnly_VertexShader4_Input i)
{
ResolveOnly_VertexShader4_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Default_M_PixelShader5 Pixel_2_0 Has PRES False
float4 Default_M_PixelShader5(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// dcl t0.xy
// dcl_2d s0
// dcl_volume s1
// texld r0, t0, s0
temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy);
// mul r0.xyz, r0, c12
temp0.xyz = temp0.xyz * ExposureLevel.xyz;
// texld r1, r0, s1
temp1 = tex3D(LookupTextureSampler, temp0.xyz);
// lrp r2, c11.x, r1, r0
temp2 = lerp(temp0, temp1, BlendFactor.x);
// mov oC0, r2
out_color = temp2;
//
return out_color;
}
// Default_M_VertexShader6 Vertex_2_0 Has PRES False
struct Default_M_VertexShader6_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Default_M_VertexShader6_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
Default_M_VertexShader6_Output Default_M_VertexShader6(Default_M_VertexShader6_Input i)
{
Default_M_VertexShader6_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Default_PixelShader7 Pixel_2_0 Has PRES False
float4 Default_PixelShader7(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
float3 temp3;
// def c0, 6, 0.1666667, 1, 0
// dcl t0.xy
// dcl_2d s0
// dcl_volume s1
// texld r0, t0, s0
temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy);
// mul r1.xyz, r0, c12
temp1.xyz = temp0.xyz * ExposureLevel.xyz;
// mul r2.xyz, r1, c0.x
temp2.xyz = temp1.xyz * float3(6, 6, 6);
// mad r3.xyz, r1, c0.y, c0.z
temp3.xyz = temp1.xyz * float3(0.16666667, 0.16666667, 0.16666667) + float3(1, 1, 1);
// mad r1.xyz, r1, c0.x, c0.z
temp1.xyz = temp1.xyz * float3(6, 6, 6) + float3(1, 1, 1);
// mul r2.xyz, r2, r3
temp2.xyz = temp2.xyz * temp3.xyz;
// rcp r3.x, r1.x
temp3.x = 1.0f / temp1.x;
// rcp r3.y, r1.y
temp3.y = 1.0f / temp1.y;
// rcp r3.z, r1.z
temp3.z = 1.0f / temp1.z;
// mul r0.xyz, r2, r3
temp0.xyz = temp2.xyz * temp3.xyz;
// texld r1, r0, s1
temp1 = tex3D(LookupTextureSampler, temp0.xyz);
// lrp r2, c11.x, r1, r0
temp2 = lerp(temp0, temp1, BlendFactor.x);
// mov oC0, r2
out_color = temp2;
//
return out_color;
}
// Default_VertexShader8 Vertex_2_0 Has PRES False
struct Default_VertexShader8_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Default_VertexShader8_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
Default_VertexShader8_Output Default_VertexShader8(Default_VertexShader8_Input i)
{
Default_VertexShader8_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader8(); // 20
PixelShader = compile ps_2_0 Default_PixelShader7(); // 21
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique Default_M
{
pass P0
{
VertexShader = compile vs_2_0 Default_M_VertexShader6(); // 22
PixelShader = compile ps_2_0 Default_M_PixelShader5(); // 23
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique ResolveOnly
{
pass P0
{
VertexShader = compile vs_2_0 ResolveOnly_VertexShader4(); // 24
PixelShader = compile ps_2_0 ResolveOnly_PixelShader3(); // 25
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique ResolveOnly_M
{
pass P0
{
VertexShader = compile vs_2_0 ResolveOnly_M_VertexShader2(); // 26
PixelShader = compile ps_2_0 ResolveOnly_M_PixelShader1(); // 27
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}

197
postfx_msaa.fx Normal file
View File

@ -0,0 +1,197 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
bool IsHdrEnabled <string SasBindAddress = "WW3D.IsHdrEnabled";>;
float2 ScreenInfo <string SasBindAddress = "WW3D.FrameBufferSize";>;
float4 CameraInfo <string SasBindAddress = "WW3D.AA.CameraInfo";> = { -30.23873, 1.007958, 30, 0.000265252 };
texture FrameBufferSampler <string SasBindAddress = "PostEffect.FrameBufferTexture"; int WW3DDynamicSet = 2;>; // 5
sampler2D FrameBufferSamplerSampler : register(ps_3_0, s0) <string Texture = "FrameBufferSampler"; string SasBindAddress = "PostEffect.FrameBufferTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <FrameBufferSampler>; // 7
AddressU = 3;
AddressV = 3;
MipFilter = 0;
MinFilter = 2;
MagFilter = 2;
};
texture DepthBufferSampler <string SasBindAddress = "PostEffect.DepthBufferTexture"; int WW3DDynamicSet = 2;>; // 10
sampler2D DepthBufferSamplerSampler <string Texture = "DepthBufferSampler"; string SasBindAddress = "PostEffect.DepthBufferTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <DepthBufferSampler>; // 12
AddressU = 3;
AddressV = 3;
MipFilter = 0;
MinFilter = 1;
MagFilter = 1;
};
// AntiAlias_PixelShader1 Pixel_3_0 Has PRES False
struct AntiAlias_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
};
float4 AntiAlias_PixelShader1(AntiAlias_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4;
// def c0, 0.3, 0.59, 0.11, 0.02
// def c1, 100, 0.2, 0, 0
// dcl_texcoord v0.xy
// dcl_texcoord1 v1
// dcl_texcoord2 v2
// dcl_2d s0
// texld r0, v1, s0
temp0 = tex2D(FrameBufferSamplerSampler, i.texcoord1.xy);
// texld r1, v1.zwzw, s0
temp1 = tex2D(FrameBufferSamplerSampler, i.texcoord1.zw);
// add r2.xyz, r0, -r1
temp2.xyz = temp0.xyz + -temp1.xyz;
// dp3 r2.x, r2_abs, c0
temp2.x = dot(abs(temp2).xyz, float3(0.3, 0.59, 0.11));
// texld r3, v2, s0
temp3 = tex2D(FrameBufferSamplerSampler, i.texcoord2.xy);
// texld r4, v2.zwzw, s0
temp4 = tex2D(FrameBufferSamplerSampler, i.texcoord2.zw);
// add r2.yzw, r3.xxyz, -r4.xxyz
temp2.yzw = temp3.xyz + -temp4.xyz;
// add r0, r0, r3
temp0 = temp0 + temp3;
// dp3 r2.y, r2_abs.yzww, c0
temp2.y = dot(abs(temp2).yzw, float3(0.3, 0.59, 0.11));
// max r3.x, r2.x, r2.y
temp3.x = max(temp2.x, temp2.y);
// add r2.x, r3.x, -c0.w
temp2.x = temp3.x + float1(-0.02);
// add r2.y, -r3.x, c0.w
temp2.y = -temp3.x + float1(0.02);
// mul_sat r2.x, r2.x, c1.x
temp2.x = saturate(temp2.x * float1(100));
// add r0, r1, r0
temp0 = temp1 + temp0;
// add r0, r4, r0
temp0 = temp4 + temp0;
// texld r1, v0, s0
temp1 = tex2D(FrameBufferSamplerSampler, i.texcoord.xy);
// lrp r3, c1.y, r0, -r1
temp3 = lerp(-temp1, temp0, float4(0.2, 0.2, 0.2, 0.2));
// mad r0, r2.x, r3, r1
temp0 = temp2.x * temp3 + temp1;
// cmp oC0, r2.y, r1, r0
out_color = (temp2.y >= 0) ? temp1 : temp0;
//
return out_color;
}
// AntiAlias_VertexShader2 Vertex_3_0 Has PRES True
struct AntiAlias_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct AntiAlias_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
};
AntiAlias_VertexShader2_Output AntiAlias_VertexShader2(AntiAlias_VertexShader2_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 2
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 2
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
{
// Expression_2_1
// rcp c11.x, c0.x
expr11.x = 1.0f / (ScreenInfo.x);
// rcp c12.x, c0.y
expr12.x = 1.0f / (ScreenInfo.y);
}
AntiAlias_VertexShader2_Output o;
// def c0, 0, 1, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// dcl_texcoord1 o2
// dcl_texcoord2 o3
// add o2.x, -c11.x, v1.x
o.texcoord1.x = -expr11.x + i.texcoord.x;
// add o2.z, c11.x, v1.x
o.texcoord1.z = expr11.x + i.texcoord.x;
// add o3.y, -c12.x, v1.y
o.texcoord2.y = -expr12.x + i.texcoord.y;
// add o3.w, c12.x, v1.y
o.texcoord2.w = expr12.x + i.texcoord.y;
// mov o0.xy, v0
o.position.xy = i.position.xy;
// mov o0.zw, c0.xyxy
o.position.zw = float2(0, 1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
// mov o2.yw, v1.y
o.texcoord1.yw = i.texcoord.y;
// mov o3.xz, v1.x
o.texcoord2.xz = i.texcoord.x;
//
return o;
}
technique AntiAlias
{
pass p0
{
VertexShader = compile vs_3_0 AntiAlias_VertexShader2(); // 15
PixelShader = compile ps_3_0 AntiAlias_PixelShader1(); // 16
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
CullMode = 1;
ZEnable = 0;
ZWriteEnable = 0;
ZFunc = 8;
ColorWriteEnable = 15;
}
}

465
rain.fx Normal file
View File

@ -0,0 +1,465 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
column_major float4x4 World : World : register(vs_2_0, c20);
column_major float4x4 View : View : register(vs_2_0, c23);
column_major float4x3 ViewInverse : ViewInverse : register(vs_2_0, c26);
column_major float4x4 Projection : Projection : register(vs_2_0, c16);
float Time : Time : register(vs_2_0, c28);
float RainBoxHeight : register(vs_2_0, c29) <string UIName = "Rain Box Width"; float UIMin = 0; float UIMax = 10000;> = { 200 };
float MinWidth : register(vs_2_0, c30) <string UIName = "Min Width"; float UIMin = 0; float UIMax = 10000;> = { 0.5 };
float MaxWidth <string UIName = "Max Width"; float UIMin = 0; float UIMax = 10000;> = { 1.5 };
float MinHeight : register(vs_2_0, c31) <string UIName = "Min Height"; float UIMin = 0; float UIMax = 10000;> = { 5 };
float MaxHeight <string UIName = "Max Height"; float UIMin = 0; float UIMax = 10000;> = { 15 };
float MinSpeed : register(vs_2_0, c32) <string UIName = "Min Speed"; float UIMin = 0; float UIMax = 10000;> = { 50 };
float MaxSpeed <string UIName = "Max Speed"; float UIMin = 0; float UIMax = 10000;> = { 150 };
float MinAlpha : register(vs_2_0, c33) <string UIName = "Min Alpha"; float UIMin = 0; float UIMax = 1;> = { 0.1 };
float MaxAlpha <string UIName = "Max Alpha"; float UIMin = 0; float UIMax = 1;> = { 0.5 };
float WindStrength <string UIName = "Wind Strength"; float UIMin = 0; float UIMax = 10000;> = { 1 };
texture DiffuseTexture <string UIName = "Diffuse Texture";>; // 12
sampler2D DiffuseTextureSampler : register(ps_2_0, s0) <string Texture = "DiffuseTexture"; string UIName = "Diffuse Texture";> =
sampler_state
{
Texture = <DiffuseTexture>; // 14
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c34) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 19
sampler2D ShroudTextureSampler : register(ps_2_0, s1) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 23
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
// Default_M_PixelShader1 Pixel_2_0 Has PRES False
struct Default_M_PixelShader1_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// dcl v0
// dcl t0.xy
// dcl t1.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t1, s1
temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// texld r1, t0, s0
temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy);
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mul r1.w, r0.x, r1.w
temp1.w = temp0.x * temp1.w;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_M_VertexShader2 Vertex_2_0 Has PRES True
struct Default_M_VertexShader2_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Default_M_VertexShader2_Output
{
float4 color : COLOR;
float4 position : POSITION;
float2 texcoord1 : TEXCOORD1;
float2 texcoord : TEXCOORD;
};
Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 5
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 5
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
float4 expr15;
{
float4 temp0;
// Expression_2_1
// neg r0.x, c1.x
temp0.x = -MinWidth.x;
// add c11.x, r0.x, c2.x
expr11.x = temp0.x + MaxWidth.x;
// neg r0.x, c3.x
temp0.x = -MinHeight.x;
// add c12.x, r0.x, c4.x
expr12.x = temp0.x + MaxHeight.x;
// neg r0.x, c5.x
temp0.x = -MinSpeed.x;
// add c13.x, r0.x, c6.x
expr13.x = temp0.x + MaxSpeed.x;
// neg r0.x, c7.x
temp0.x = -MinAlpha.x;
// add c14.x, r0.x, c8.x
expr14.x = temp0.x + MaxAlpha.x;
// rcp c15.x, c0.x
expr15.x = 1.0f / (RainBoxHeight.x);
}
Default_M_VertexShader2_Output o;
float4 temp0, temp1, temp2;
// def c0, 1, 0, -0.5, 0
// dcl_position v0
// dcl_color v1
// dcl_texcoord v2
// mov r0.x, c14.x
temp0.x = expr14.x;
// mad oD0.w, v1.w, r0.x, c33.x
o.color.w = i.color.w * temp0.x + MinAlpha.x;
// mov r0.x, c11.x
temp0.x = expr11.x;
// mad r0.y, v1.x, r0.x, c30.x
temp0.y = i.color.x * temp0.x + MinWidth.x;
// mov r1.x, c12.x
temp1.x = expr12.x;
// mad r0.x, v1.y, r1.x, c31.x
temp0.x = i.color.y * temp1.x + MinHeight.x;
// mul r0.xy, r0, v2.yxzw
temp0.xy = temp0.xy * i.texcoord.yx;
// mov r1.x, c13.x
temp1.x = expr13.x;
// mad r0.z, v1.z, r1.x, c32.x
temp0.z = i.color.z * temp1.x + MinSpeed.x;
// mad r1, v0.xyzx, c0.xxxy, c0.yyyx
temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 r0.w, r1, c22
temp0.w = dot(temp1, (World._m02_m12_m22_m32));
// mad r0.z, r0.z, -c28.x, r0.w
temp0.z = temp0.z * -Time.x + temp0.w;
// mul r0.z, r0.z, c15.x
temp0.z = temp0.z * expr15.x;
// abs r0.w, r0.z
temp0.w = abs(temp0.z);
// sge r0.z, r0.z, -r0.z
temp0.z = (temp0.z >= -temp0.z) ? 1 : 0;
// frc r0.w, r0.w
temp0.w = frac(temp0.w);
// lrp r2.x, r0.z, r0.w, -r0.w
temp2.x = lerp(-temp0.w, temp0.w, temp0.z);
// mad r0.z, r2.x, c29.x, c29.x
temp0.z = temp2.x * RainBoxHeight.x + RainBoxHeight.x;
// mad r2.z, r0.x, c0.z, r0.z
temp2.z = temp0.x * float1(-0.5) + temp0.z;
// mov r2.w, c0.x
temp2.w = float1(1);
// dp4 r2.x, r1, c20
temp2.x = dot(temp1, (World._m00_m10_m20_m30));
// dp4 r2.y, r1, c21
temp2.y = dot(temp1, (World._m01_m11_m21_m31));
// dp4 r0.x, r2, c23
temp0.x = dot(temp2, (View._m00_m10_m20_m30));
// mad r0.x, r0.y, c0.z, r0.x
temp0.x = temp0.y * float1(-0.5) + temp0.x;
// dp4 r0.y, r2, c24
temp0.y = dot(temp2, (View._m01_m11_m21_m31));
// dp4 r0.z, r2, c25
temp0.z = dot(temp2, (View._m02_m12_m22_m32));
// mov r0.w, c0.x
temp0.w = float1(1);
// dp4 oPos.x, r0, c16
o.position.x = dot(temp0, (Projection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c17
o.position.y = dot(temp0, (Projection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c18
o.position.z = dot(temp0, (Projection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c19
o.position.w = dot(temp0, (Projection._m03_m13_m23_m33));
// dp4 r1.x, r0, c26
temp1.x = dot(temp0, (ViewInverse._m00_m10_m20_m30));
// dp4 r1.y, r0, c27
temp1.y = dot(temp0, (ViewInverse._m01_m11_m21_m31));
// add r0.xy, r1, c34.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT1.xy, r0, c34
o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oD0.xyz, c0.x
o.color.xyz = float3(1, 1, 1);
// mov oT0.xy, v2
o.texcoord = i.texcoord;
//
return o;
}
// Default_PixelShader3 Pixel_2_0 Has PRES False
struct Default_PixelShader3_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// def c0, 2.2, 0, 0, 0
// dcl v0
// dcl t0.xy
// dcl t1.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy);
// texld r1, t1, s1
temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// log r1.w, r0.x
temp1.w = log2(temp0.x);
// log r1.z, r0.y
temp1.z = log2(temp0.y);
// log r1.y, r0.z
temp1.y = log2(temp0.z);
// mul r1.yzw, r1, c0.x
temp1.yzw = temp1.yzw * float3(2.2, 2.2, 2.2);
// exp r0.x, r1.w
temp0.x = exp2(temp1.w);
// exp r0.y, r1.z
temp0.y = exp2(temp1.z);
// exp r0.z, r1.y
temp0.z = exp2(temp1.y);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mul r0.w, r1.x, r0.w
temp0.w = temp1.x * temp0.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_VertexShader4 Vertex_2_0 Has PRES True
struct Default_VertexShader4_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Default_VertexShader4_Output
{
float4 color : COLOR;
float4 position : POSITION;
float2 texcoord1 : TEXCOORD1;
float2 texcoord : TEXCOORD;
};
Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i)
{
/*
PRSI
OutputRegisterOffset: 11
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 5
Unknown3: 0
Unknown4: 0
Unknown5: 11
Unknown6: 5
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr11;
float4 expr12;
float4 expr13;
float4 expr14;
float4 expr15;
{
float4 temp0;
// Expression_2_1
// neg r0.x, c1.x
temp0.x = -MinWidth.x;
// add c11.x, r0.x, c2.x
expr11.x = temp0.x + MaxWidth.x;
// neg r0.x, c3.x
temp0.x = -MinHeight.x;
// add c12.x, r0.x, c4.x
expr12.x = temp0.x + MaxHeight.x;
// neg r0.x, c5.x
temp0.x = -MinSpeed.x;
// add c13.x, r0.x, c6.x
expr13.x = temp0.x + MaxSpeed.x;
// neg r0.x, c7.x
temp0.x = -MinAlpha.x;
// add c14.x, r0.x, c8.x
expr14.x = temp0.x + MaxAlpha.x;
// rcp c15.x, c0.x
expr15.x = 1.0f / (RainBoxHeight.x);
}
Default_VertexShader4_Output o;
float4 temp0, temp1, temp2;
// def c0, 1, 0, -0.5, 0
// dcl_position v0
// dcl_color v1
// dcl_texcoord v2
// mov r0.x, c14.x
temp0.x = expr14.x;
// mad oD0.w, v1.w, r0.x, c33.x
o.color.w = i.color.w * temp0.x + MinAlpha.x;
// mov r0.x, c11.x
temp0.x = expr11.x;
// mad r0.y, v1.x, r0.x, c30.x
temp0.y = i.color.x * temp0.x + MinWidth.x;
// mov r1.x, c12.x
temp1.x = expr12.x;
// mad r0.x, v1.y, r1.x, c31.x
temp0.x = i.color.y * temp1.x + MinHeight.x;
// mul r0.xy, r0, v2.yxzw
temp0.xy = temp0.xy * i.texcoord.yx;
// mov r1.x, c13.x
temp1.x = expr13.x;
// mad r0.z, v1.z, r1.x, c32.x
temp0.z = i.color.z * temp1.x + MinSpeed.x;
// mad r1, v0.xyzx, c0.xxxy, c0.yyyx
temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 r0.w, r1, c22
temp0.w = dot(temp1, (World._m02_m12_m22_m32));
// mad r0.z, r0.z, -c28.x, r0.w
temp0.z = temp0.z * -Time.x + temp0.w;
// mul r0.z, r0.z, c15.x
temp0.z = temp0.z * expr15.x;
// abs r0.w, r0.z
temp0.w = abs(temp0.z);
// sge r0.z, r0.z, -r0.z
temp0.z = (temp0.z >= -temp0.z) ? 1 : 0;
// frc r0.w, r0.w
temp0.w = frac(temp0.w);
// lrp r2.x, r0.z, r0.w, -r0.w
temp2.x = lerp(-temp0.w, temp0.w, temp0.z);
// mad r0.z, r2.x, c29.x, c29.x
temp0.z = temp2.x * RainBoxHeight.x + RainBoxHeight.x;
// mad r2.z, r0.x, c0.z, r0.z
temp2.z = temp0.x * float1(-0.5) + temp0.z;
// mov r2.w, c0.x
temp2.w = float1(1);
// dp4 r2.x, r1, c20
temp2.x = dot(temp1, (World._m00_m10_m20_m30));
// dp4 r2.y, r1, c21
temp2.y = dot(temp1, (World._m01_m11_m21_m31));
// dp4 r0.x, r2, c23
temp0.x = dot(temp2, (View._m00_m10_m20_m30));
// mad r0.x, r0.y, c0.z, r0.x
temp0.x = temp0.y * float1(-0.5) + temp0.x;
// dp4 r0.y, r2, c24
temp0.y = dot(temp2, (View._m01_m11_m21_m31));
// dp4 r0.z, r2, c25
temp0.z = dot(temp2, (View._m02_m12_m22_m32));
// mov r0.w, c0.x
temp0.w = float1(1);
// dp4 oPos.x, r0, c16
o.position.x = dot(temp0, (Projection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c17
o.position.y = dot(temp0, (Projection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c18
o.position.z = dot(temp0, (Projection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c19
o.position.w = dot(temp0, (Projection._m03_m13_m23_m33));
// dp4 r1.x, r0, c26
temp1.x = dot(temp0, (ViewInverse._m00_m10_m20_m30));
// dp4 r1.y, r0, c27
temp1.y = dot(temp0, (ViewInverse._m01_m11_m21_m31));
// add r0.xy, r1, c34.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT1.xy, r0, c34
o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oD0.xyz, c0.x
o.color.xyz = float3(1, 1, 1);
// mov oT0.xy, v2
o.texcoord = i.texcoord;
//
return o;
}
technique Default
{
pass pass0
{
VertexShader = compile vs_2_0 Default_VertexShader4(); // 28
PixelShader = compile ps_2_0 Default_PixelShader3(); // 29
ZEnable = 0;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 5;
DestBlend = 6;
}
}
technique Default_M
{
pass pass0
{
VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 30
PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 31
ZEnable = 0;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 5;
DestBlend = 6;
}
}

707
render2d.fx Normal file
View File

@ -0,0 +1,707 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture BaseTexture <string SasBindAddress = "WW3D.MiscTexture"; int WW3DDynamicSet = 2;>; // 2
sampler2D BaseTextureSampler : register(ps_2_0, s0) <string Texture = "BaseTexture"; string SasBindAddress = "WW3D.MiscTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <BaseTexture>; // 4
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
column_major float4x4 World : World : register(vs_2_0, c11);
// AptRenderer_PixelShader1 Pixel_2_0 Has PRES False
struct AptRenderer_PixelShader1_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 AptRenderer_PixelShader1(AptRenderer_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// AptRenderer_VertexShader2 Vertex_2_0 Has PRES False
struct AptRenderer_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct AptRenderer_VertexShader2_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
AptRenderer_VertexShader2_Output AptRenderer_VertexShader2(AptRenderer_VertexShader2_Input i)
{
AptRenderer_VertexShader2_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// AlphaWithSolidTexture_PixelShader3 Pixel_2_0 Has PRES False
struct AlphaWithSolidTexture_PixelShader3_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 AlphaWithSolidTexture_PixelShader3(AlphaWithSolidTexture_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// mul r0.xyz, r0, v0
temp0.xyz = temp0.xyz * i.color.xyz;
// mov r0.w, v0.w
temp0.w = i.color.w;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// AlphaWithSolidTexture_VertexShader4 Vertex_2_0 Has PRES False
struct AlphaWithSolidTexture_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct AlphaWithSolidTexture_VertexShader4_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
AlphaWithSolidTexture_VertexShader4_Output AlphaWithSolidTexture_VertexShader4(AlphaWithSolidTexture_VertexShader4_Input i)
{
AlphaWithSolidTexture_VertexShader4_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// AlphaTestCopy_PixelShader5 Pixel_2_0 Has PRES False
struct AlphaTestCopy_PixelShader5_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 AlphaTestCopy_PixelShader5(AlphaTestCopy_PixelShader5_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// AlphaTestCopy_VertexShader6 Vertex_2_0 Has PRES False
struct AlphaTestCopy_VertexShader6_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct AlphaTestCopy_VertexShader6_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
AlphaTestCopy_VertexShader6_Output AlphaTestCopy_VertexShader6(AlphaTestCopy_VertexShader6_Input i)
{
AlphaTestCopy_VertexShader6_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// GrayCopy_PixelShader7 Pixel_2_0 Has PRES False
struct GrayCopy_PixelShader7_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 GrayCopy_PixelShader7(GrayCopy_PixelShader7_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// def c0, 0.3, 0.59, 0.11, 0
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// dp3 r0.x, r0, c0
temp0.x = dot(temp0.xyz, float3(0.3, 0.59, 0.11));
// mul r1.w, r0.w, v0.w
temp1.w = temp0.w * i.color.w;
// mul r1.xyz, r0.x, v0
temp1.xyz = temp0.xxx * i.color.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// GrayCopy_VertexShader8 Vertex_2_0 Has PRES False
struct GrayCopy_VertexShader8_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct GrayCopy_VertexShader8_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
GrayCopy_VertexShader8_Output GrayCopy_VertexShader8(GrayCopy_VertexShader8_Input i)
{
GrayCopy_VertexShader8_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Gray_PixelShader9 Pixel_2_0 Has PRES False
struct Gray_PixelShader9_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Gray_PixelShader9(Gray_PixelShader9_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// def c0, 0.3, 0.59, 0.11, 0
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// dp3 r0.x, r0, c0
temp0.x = dot(temp0.xyz, float3(0.3, 0.59, 0.11));
// mul r1.w, r0.w, v0.w
temp1.w = temp0.w * i.color.w;
// mul r1.xyz, r0.x, v0
temp1.xyz = temp0.xxx * i.color.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Gray_VertexShader10 Vertex_2_0 Has PRES False
struct Gray_VertexShader10_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Gray_VertexShader10_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Gray_VertexShader10_Output Gray_VertexShader10(Gray_VertexShader10_Input i)
{
Gray_VertexShader10_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// AlphaBlend_PixelShader11 Pixel_2_0 Has PRES False
struct AlphaBlend_PixelShader11_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 AlphaBlend_PixelShader11(AlphaBlend_PixelShader11_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// AlphaBlend_VertexShader12 Vertex_2_0 Has PRES False
struct AlphaBlend_VertexShader12_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct AlphaBlend_VertexShader12_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
AlphaBlend_VertexShader12_Output AlphaBlend_VertexShader12(AlphaBlend_VertexShader12_Input i)
{
AlphaBlend_VertexShader12_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Additive_PixelShader13 Pixel_2_0 Has PRES False
struct Additive_PixelShader13_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Additive_PixelShader13(Additive_PixelShader13_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Additive_VertexShader14 Vertex_2_0 Has PRES False
struct Additive_VertexShader14_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Additive_VertexShader14_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Additive_VertexShader14_Output Additive_VertexShader14(Additive_VertexShader14_Input i)
{
Additive_VertexShader14_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Copy_PixelShader15 Pixel_2_0 Has PRES False
struct Copy_PixelShader15_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Copy_PixelShader15(Copy_PixelShader15_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Copy_VertexShader16 Vertex_2_0 Has PRES False
struct Copy_VertexShader16_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Copy_VertexShader16_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Copy_VertexShader16_Output Copy_VertexShader16(Copy_VertexShader16_Input i)
{
Copy_VertexShader16_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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, c11
o.position.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (World._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (World._m03_m13_m23_m33));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique Copy
{
pass P0
{
VertexShader = compile vs_2_0 Copy_VertexShader16(); // 7
PixelShader = compile ps_2_0 Copy_PixelShader15(); // 8
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique Additive
{
pass P0
{
VertexShader = compile vs_2_0 Additive_VertexShader14(); // 9
PixelShader = compile ps_2_0 Additive_PixelShader13(); // 10
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
AlphaTestEnable = 0;
}
}
technique AlphaBlend
{
pass P0
{
VertexShader = compile vs_2_0 AlphaBlend_VertexShader12(); // 11
PixelShader = compile ps_2_0 AlphaBlend_PixelShader11(); // 12
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}
technique Gray
{
pass P0
{
VertexShader = compile vs_2_0 Gray_VertexShader10(); // 13
PixelShader = compile ps_2_0 Gray_PixelShader9(); // 14
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}
technique GrayCopy
{
pass P0
{
VertexShader = compile vs_2_0 GrayCopy_VertexShader8(); // 15
PixelShader = compile ps_2_0 GrayCopy_PixelShader7(); // 16
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique AlphaTestCopy
{
pass P0
{
VertexShader = compile vs_2_0 AlphaTestCopy_VertexShader6(); // 17
PixelShader = compile ps_2_0 AlphaTestCopy_PixelShader5(); // 18
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 1;
AlphaFunc = 7;
AlphaRef = 96;
}
}
technique AlphaWithSolidTexture
{
pass P0
{
VertexShader = compile vs_2_0 AlphaWithSolidTexture_VertexShader4(); // 19
PixelShader = compile ps_2_0 AlphaWithSolidTexture_PixelShader3(); // 20
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}
technique AptRenderer
{
pass P0
{
VertexShader = compile vs_2_0 AptRenderer_VertexShader2(); // 21
PixelShader = compile ps_2_0 AptRenderer_PixelShader1(); // 22
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}

340
riverreflection.fx Normal file
View File

@ -0,0 +1,340 @@
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 : register(vs_2_0, c123) <bool unmanaged = 1;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture RiverTexture <string UIName = "River Texture";>; // 2
sampler2D RiverTextureSampler : register(ps_2_0, s0) <string Texture = "RiverTexture"; string UIName = "River Texture";> =
sampler_state
{
Texture = <RiverTexture>; // 4
MipFilter = 2;
MinFilter = 2;
MagFilter = 2;
AddressU = 1;
AddressV = 1;
};
float4 Opacity <string UIName = "Opacity";> = { 1, 1, 1, 1 };
texture WaterReflectionTexture <string UIWidget = "None"; string SasBindAddress = "Water.ReflectionTexture";>; // 8
sampler2D WaterReflectionTextureSampler <string Texture = "WaterReflectionTexture"; string UIWidget = "None"; string SasBindAddress = "Water.ReflectionTexture";> =
sampler_state
{
Texture = <WaterReflectionTexture>; // 11
MipFilter = 1;
MinFilter = 2;
MagFilter = 2;
AddressU = 3;
AddressV = 3;
};
texture EnvironmentTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.EnvironmentTexture"; string ResourceType = "Cube";>; // 15
samplerCUBE EnvironmentTextureSampler <string Texture = "EnvironmentTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.EnvironmentTexture"; string ResourceType = "Cube";> =
sampler_state
{
Texture = <EnvironmentTexture>; // 19
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
AddressW = 3;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 26
sampler2D ShroudTextureSampler : register(ps_2_0, s2) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 30
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
column_major float4x4 World : World : register(vs_2_0, c15);
float Time : Time;
// _Default_PixelShader1 Pixel_2_0 Has PRES False
struct _Default_PixelShader1_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float3 texcoord2 : TEXCOORD2;
};
float4 _Default_PixelShader1(_Default_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// dcl v0
// dcl v1.x
// dcl t0.xy
// dcl t1.xy
// dcl t2.xyz
// dcl_2d s0
// dcl_cube s1
// dcl_2d s2
// texld r0, t2, s1
temp0 = texCUBE(EnvironmentTextureSampler, i.texcoord2.xyz);
// texld r1, t0, s0
temp1 = tex2D(RiverTextureSampler, i.texcoord.xy);
// texld r2, t1, s2
temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mul r0.xyz, r0, r1
temp0.xyz = temp0.xyz * temp1.xyz;
// mul r0.xyz, r0, v1.x
temp0.xyz = temp0.xyz * i.color1.xxx;
// mul r1.xyz, r2, r0
temp1.xyz = temp2.xyz * temp0.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// _Default_VertexShader2 Vertex_2_0 Has PRES False
struct _Default_VertexShader2_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord1 : TEXCOORD1;
};
struct _Default_VertexShader2_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord1 : TEXCOORD1;
float3 texcoord2 : TEXCOORD2;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
};
_Default_VertexShader2_Output _Default_VertexShader2(_Default_VertexShader2_Input i)
{
_Default_VertexShader2_Output o;
float4 temp0;
float3 temp1;
// def c0, 1, 0, -0, -2
// dcl_position v0
// dcl_color v1
// dcl_texcoord1 v2
// mad r0, v0.xyzx, c0.xxxy, c0.zzzx
temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(-0, -0, -0, 1);
// dp4 oPos.x, r0, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mul oD0.w, v1.w, c18.w
o.color.w = i.color.w * Opacity.w;
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 r1.z, r0, c17
temp1.z = dot(temp0, (World._m02_m12_m22_m32));
// add r0.xy, r1, c19.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// add r1.xyz, -r1, c123
temp1.xyz = -temp1.xyz + EyePosition.xyz;
// mul oT1.xy, r0, c19
o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV;
// nrm r0.xyz, r1
temp0.xyz = normalize(temp1.xyz).xyz;
// mad r0.xyz, r0.z, c0.zzww, r0
temp0.xyz = temp0.zzz * float3(-0, -0, -2) + temp0.xyz;
// mov oT2.xyz, -r0
o.texcoord2 = -temp0;
// mov oD0.xyz, v1
o.color.xyz = i.color.xyz;
// mov oD1.x, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov oT0.xy, v2
o.texcoord = i.texcoord1;
//
return o;
}
// Default_U_PixelShader3 Pixel_2_0 Has PRES False
struct Default_U_PixelShader3_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float3 texcoord2 : TEXCOORD2;
};
float4 Default_U_PixelShader3(Default_U_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// dcl v0
// dcl v1.x
// dcl t0.xy
// dcl t1.xy
// dcl t2.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// rcp r0.w, t2.z
temp0.w = 1.0f / i.texcoord2.z;
// mul r0.xy, r0.w, t2
temp0.xy = temp0.ww * i.texcoord2.xy;
// texld r0, r0, s1
temp0 = tex2D(WaterReflectionTextureSampler, temp0.xy);
// texld r1, t0, s0
temp1 = tex2D(RiverTextureSampler, i.texcoord.xy);
// texld r2, t1, s2
temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mul r0.xyz, r0, r1
temp0.xyz = temp0.xyz * temp1.xyz;
// mul r0.xyz, r0, v1.x
temp0.xyz = temp0.xyz * i.color1.xxx;
// mul r1.xyz, r2, r0
temp1.xyz = temp2.xyz * temp0.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_U_VertexShader4 Vertex_2_0 Has PRES False
struct Default_U_VertexShader4_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord1 : TEXCOORD1;
};
struct Default_U_VertexShader4_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord1 : TEXCOORD1;
float3 texcoord2 : TEXCOORD2;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
};
Default_U_VertexShader4_Output Default_U_VertexShader4(Default_U_VertexShader4_Input i)
{
Default_U_VertexShader4_Output o;
float4 temp0;
float3 temp1;
// def c0, 1, 0, 0.5, 0
// dcl_position v0
// dcl_color v1
// dcl_texcoord1 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.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// mul oD0.w, v1.w, c17.w
o.color.w = i.color.w * Opacity.w;
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// add r1.xy, r1, c18.zwzw
temp1.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT1.xy, r1, c18
o.texcoord1 = temp1 * Shroud.ScaleUV_OffsetUV;
// dp4 r1.x, r0, c11
temp1.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 r1.y, r0, c12
temp1.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 r1.z, r0, c14
temp1.z = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// add r0.xy, r1, r1.z
temp0.xy = temp1.xy + temp1.zz;
// mov oPos.xyw, r1.xyzz
o.position.xyw = temp1.xyz;
// mov oT2.z, r1.z
o.texcoord2.z = temp1.z;
// mul oT2.xy, r0, c0.z
o.texcoord2.xy = temp0.xy * float2(0.5, 0.5);
// mov oD0.xyz, v1
o.color.xyz = i.color.xyz;
// mov oD1.x, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov oT0.xy, v2
o.texcoord = i.texcoord1;
//
return o;
}
technique Default_U
{
pass P0
{
VertexShader = compile vs_2_0 Default_U_VertexShader4(); // 35
PixelShader = compile ps_2_0 Default_U_PixelShader3(); // 36
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
AlphaTestEnable = 0;
ColorWriteEnable = 7;
SrcBlend = 5;
DestBlend = 2;
}
}
technique _Default
{
pass P0
{
VertexShader = compile vs_2_0 _Default_VertexShader2(); // 37
PixelShader = compile ps_2_0 _Default_PixelShader1(); // 38
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 1;
AlphaTestEnable = 0;
ColorWriteEnable = 7;
SrcBlend = 5;
DestBlend = 2;
}
}
technique _Default_L
{
}

651
riverwater.fx Normal file
View File

@ -0,0 +1,651 @@
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 : register(vs_2_0, c123) <bool unmanaged = 1;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture RiverTexture <string UIName = "River Texture";>; // 2
sampler2D RiverTextureSampler : register(ps_2_0, s0) <string Texture = "RiverTexture"; string UIName = "River Texture";> =
sampler_state
{
Texture = <RiverTexture>; // 4
MipFilter = 2;
MinFilter = 2;
MagFilter = 2;
AddressU = 1;
AddressV = 1;
};
texture NormalTexture <string UIName = "Normal Texture";>; // 7
sampler2D NormalTextureSampler : register(ps_2_0, s1) <string Texture = "NormalTexture"; string UIName = "Normal Texture";> =
sampler_state
{
Texture = <NormalTexture>; // 9
MipFilter = 2;
MinFilter = 2;
MagFilter = 2;
AddressU = 1;
AddressV = 1;
};
float4 Opacity : register(vs_2_0, c21) <string UIName = "Opacity";> = { 1, 1, 1, 1 };
texture WaterReflectionTexture <string UIWidget = "None"; string SasBindAddress = "Water.ReflectionTexture";>; // 13
sampler2D WaterReflectionTextureSampler <string Texture = "WaterReflectionTexture"; string UIWidget = "None"; string SasBindAddress = "Water.ReflectionTexture";> =
sampler_state
{
Texture = <WaterReflectionTexture>; // 16
MipFilter = 1;
MinFilter = 2;
MagFilter = 2;
AddressU = 3;
AddressV = 3;
};
texture EnvironmentTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.EnvironmentTexture"; string ResourceType = "Cube";>; // 20
samplerCUBE EnvironmentTextureSampler <string Texture = "EnvironmentTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.EnvironmentTexture"; string ResourceType = "Cube";> =
sampler_state
{
Texture = <EnvironmentTexture>; // 24
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
AddressW = 3;
};
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"; string ResourceName = "ShaderPreviewShroud.dds";>; // 31
sampler2D ShroudTextureSampler : register(ps_2_0, s3) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 35
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
column_major float4x4 World : World;
float Time : Time;
// _Default_L_PixelShader1 Pixel_2_0 Has PRES False
struct _Default_L_PixelShader1_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
float4 _Default_L_PixelShader1(_Default_L_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// dcl v0
// dcl t0.xy
// dcl t1.xy
// dcl t2.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s0
temp0 = tex2D(RiverTextureSampler, i.texcoord.xy);
// texld r1, t1, s0
temp1 = tex2D(RiverTextureSampler, i.texcoord1.xy);
// texld r2, t2, s1
temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// add r0, r0, r1
temp0 = temp0 + temp1;
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mul r0.xyz, r2, r0
temp0.xyz = temp2.xyz * temp0.xyz;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// _Default_L_VertexShader2 Vertex_2_0 Has PRES True
struct _Default_L_VertexShader2_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord1 : TEXCOORD1;
};
struct _Default_L_VertexShader2_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
};
_Default_L_VertexShader2_Output _Default_L_VertexShader2(_Default_L_VertexShader2_Input i)
{
/*
PRSI
OutputRegisterOffset: 17
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 2
Unknown3: 0
Unknown4: 0
Unknown5: 17
Unknown6: 2
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr17;
float4 expr18;
{
// Expression_2_1
// mul c17.x, c0.x, (-0.004)
expr17.x = Time.x * (-0.004);
// mul c18.x, c0.x, (-0.016)
expr18.x = Time.x * (-0.016);
}
_Default_L_VertexShader2_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 0.75, 0.95
// def c1, 1, 0.5, 0, 0
// dcl_position v0
// dcl_color v1
// dcl_texcoord1 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov r1.x, c19.w
temp1.x = Opacity.w;
// mul r1.x, r1.x, v1.w
temp1.x = temp1.x * i.color.w;
// mul r1.x, r1.x, c0.z
temp1.x = temp1.x * float1(0.75);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// min oD0.w, r1.x, c0.w
o.color.w = min(temp1.x, float1(0.95));
// mov r1.xy, c0
temp1.xy = float2(1, 0);
// mul r1.zw, r1.xyyx, c17.x
temp1.zw = temp1.yx * expr17.xx;
// mad oT0.xy, v2, c1, r1.zwzw
o.texcoord = i.texcoord1 * float4(1, 0.5, 0, 0) + temp1.zwzw;
// mad oT1.xy, c18.x, r1.yxzw, v2
o.texcoord1 = expr18.x * temp1.yxzw + i.texcoord1;
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// add r0.xy, r1, c20.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r0, c20
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// mul oD0.xyz, v1, c0.z
o.color.xyz = i.color.xyz * float3(0.75, 0.75, 0.75);
//
return o;
}
// _Default_M_PixelShader3 Pixel_2_0 Has PRES False
struct _Default_M_PixelShader3_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
};
float4 _Default_M_PixelShader3(_Default_M_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
// def c0, 2, -1, 0.5, 0
// def c1, 0.75, 0, 0, 0
// dcl v0
// dcl v1.x
// dcl t0
// dcl t1.xy
// dcl t2.xy
// dcl t3.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_cube s2
// dcl_2d s3
// texld r0, t1, s1
temp0 = tex2D(NormalTextureSampler, i.texcoord1.xy);
// mad r0.xy, r0, c0.x, c0.y
temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1);
// mul r0.xy, r0, c0.z
temp0.xy = temp0.xy * float2(0.5, 0.5);
// mov r0.z, c0.w
temp0.z = float1(0);
// add r0.xyz, r0, t3
temp0.xyz = temp0.xyz + i.texcoord3.xyz;
// mov r1.xy, t0.wzyx
temp1.xy = i.texcoord.wz;
// texld r0, r0, s2
temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz);
// texld r1, r1, s0
temp1 = tex2D(RiverTextureSampler, temp1.xy);
// texld r2, t0, s0
temp2 = tex2D(RiverTextureSampler, i.texcoord.xy);
// texld r3, t2, s3
temp3 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// add r1, r1, r2
temp1 = temp1 + temp2;
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mad r0.xyz, r0, c1.x, r1
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 0.75) + temp1.xyz;
// lrp r2.xyz, v1.x, r0, -c0.y
temp2.xyz = lerp(float3(1, 1, 1), temp0.xyz, i.color1.xxx);
// mul r1.xyz, r3, r2
temp1.xyz = temp3.xyz * temp2.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// _Default_M_VertexShader4 Vertex_2_0 Has PRES True
struct _Default_M_VertexShader4_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord1 : TEXCOORD1;
};
struct _Default_M_VertexShader4_Output
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float color1 : COLOR1;
};
_Default_M_VertexShader4_Output _Default_M_VertexShader4(_Default_M_VertexShader4_Input i)
{
/*
PRSI
OutputRegisterOffset: 18
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 3
Unknown3: 0
Unknown4: 0
Unknown5: 18
Unknown6: 3
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr18;
float4 expr19;
float4 expr20;
{
// Expression_2_1
// mul c18.x, c0.x, (-0.004)
expr18.x = Time.x * (-0.004);
// mul c19.x, c0.x, (-0.016)
expr19.x = Time.x * (-0.016);
// mul c20.x, c0.x, (0.03)
expr20.x = Time.x * (0.03);
}
_Default_M_VertexShader4_Output o;
float4 temp0, temp1;
float2 temp2;
// def c0, 1, 0, 0.75, 0.95
// def c1, 1, 0.5, 0.9, 0
// def c2, -0, -2, 0, 0
// dcl_position v0
// dcl_color v1
// dcl_texcoord1 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov r1.x, c21.w
temp1.x = Opacity.w;
// mul r1.x, r1.x, v1.w
temp1.x = temp1.x * i.color.w;
// mul r1.x, r1.x, c0.z
temp1.x = temp1.x * float1(0.75);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// min oD0.w, r1.x, c0.w
o.color.w = min(temp1.x, float1(0.95));
// mul r1, v2.xyxy, c1.xyxz
temp1 = i.texcoord1.xyxy * float4(1, 0.5, 1, 0.9);
// mov r2.xy, c0
temp2.xy = float2(1, 0);
// mad oT0.xy, c18.x, r2.yxzw, r1
o.texcoord.xy = expr18.xx * temp2.yx + temp1.xy;
// mad oT1.xy, c20.x, r2.yxzw, r1.zwzw
o.texcoord1 = expr20.x * temp2.yxzw + temp1.zwzw;
// mad oT0.zw, c19.x, r2.xyxy, v2.xyyx
o.texcoord.zw = expr19.xx * temp2.xy + i.texcoord1.yx;
// dp4 r1.x, r0, c15
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c16
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// dp4 r1.z, r0, c17
temp1.z = dot(temp0, (World._m02_m12_m22_m32));
// add r0.xy, r1, c22.zwzw
temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// add r1.xyz, -r1, c123
temp1.xyz = -temp1.xyz + EyePosition.xyz;
// mul oT2.xy, r0, c22
o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV;
// nrm r0.xyz, r1
temp0.xyz = normalize(temp1.xyz).xyz;
// mad r0.xyz, r0.z, c2.xxyw, r0
temp0.xyz = temp0.zzz * float3(-0, -0, -2) + temp0.xyz;
// mov oT3.xyz, -r0
o.texcoord3 = -temp0;
// mul oD0.xyz, v1, c0.z
o.color.xyz = i.color.xyz * float3(0.75, 0.75, 0.75);
// mov oD1.x, c0.x
o.color1 = float4(1, 1, 1, 1);
//
return o;
}
// Default_PixelShader5 Pixel_2_0 Has PRES False
struct Default_PixelShader5_Input
{
float4 color : COLOR;
float color1 : COLOR1;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
};
float4 Default_PixelShader5(Default_PixelShader5_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3;
// def c0, 2.2, 2, -1, 0.25
// def c1, 0.75, 0, 0, 0
// dcl v0
// dcl v1.x
// dcl t0
// dcl t1
// dcl t2.xy
// dcl t3.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// dcl_2d s3
// texld r0, t1, s1
temp0 = tex2D(NormalTextureSampler, i.texcoord1.xy);
// mad r0.xy, r0, c0.y, c0.z
temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1);
// mov r1.xy, t1.wzyx
temp1.xy = i.texcoord1.wz;
// texld r1, r1, s1
temp1 = tex2D(NormalTextureSampler, temp1.xy);
// mad r0.xy, r1, c0.y, r0
temp0.xy = temp1.xy * float2(2, 2) + temp0.xy;
// add r0.xy, r0, c0.z
temp0.xy = temp0.xy + float2(-1, -1);
// mul r0.xy, r0, c0.w
temp0.xy = temp0.xy * float2(0.25, 0.25);
// rcp r0.z, t3.z
temp0.z = 1.0f / i.texcoord3.z;
// mad r0.xy, t3, r0.z, r0
temp0.xy = i.texcoord3.xy * temp0.zz + temp0.xy;
// mov r1.xy, t0.wzyx
temp1.xy = i.texcoord.wz;
// texld r0, r0, s2
temp0 = tex2D(WaterReflectionTextureSampler, temp0.xy);
// texld r1, r1, s0
temp1 = tex2D(RiverTextureSampler, temp1.xy);
// texld r2, t0, s0
temp2 = tex2D(RiverTextureSampler, i.texcoord.xy);
// texld r3, t2, s3
temp3 = tex2D(ShroudTextureSampler, i.texcoord2.xy);
// add r1, r1, r2
temp1 = temp1 + temp2;
// 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 r2.xyz, r2, c0.x
temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2);
// exp r1.x, r2.x
temp1.x = exp2(temp2.x);
// exp r1.y, r2.y
temp1.y = exp2(temp2.y);
// exp r1.z, r2.z
temp1.z = exp2(temp2.z);
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mad r0.xyz, r0, c1.x, r1
temp0.xyz = temp0.xyz * float3(0.75, 0.75, 0.75) + temp1.xyz;
// lrp r2.xyz, v1.x, r0, -c0.z
temp2.xyz = lerp(float3(1, 1, 1), temp0.xyz, i.color1.xxx);
// mul r1.xyz, r3, r2
temp1.xyz = temp3.xyz * temp2.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_VertexShader6 Vertex_2_0 Has PRES True
struct Default_VertexShader6_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord1 : TEXCOORD1;
};
struct Default_VertexShader6_Output
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 texcoord3 : TEXCOORD3;
float color1 : COLOR1;
};
Default_VertexShader6_Output Default_VertexShader6(Default_VertexShader6_Input i)
{
/*
PRSI
OutputRegisterOffset: 15
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 4
Unknown3: 0
Unknown4: 0
Unknown5: 15
Unknown6: 4
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr15;
float4 expr16;
float4 expr17;
float4 expr18;
{
// Expression_2_1
// mul c15.x, c0.x, (-0.004)
expr15.x = Time.x * (-0.004);
// mul c16.x, c0.x, (-0.016)
expr16.x = Time.x * (-0.016);
// mul c17.x, c0.x, (0.03)
expr17.x = Time.x * (0.03);
// mul c18.x, c0.x, (-0.08)
expr18.x = Time.x * (-0.08);
}
Default_VertexShader6_Output o;
float4 temp0, temp1;
float2 temp2;
// def c0, 1, 0, 0.75, 0.95
// def c1, 1, 0.5, 0.9, 2
// dcl_position v0
// dcl_color v1
// dcl_texcoord1 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.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// mov r1.x, c21.w
temp1.x = Opacity.w;
// mul r1.x, r1.x, v1.w
temp1.x = temp1.x * i.color.w;
// mul r1.x, r1.x, c0.z
temp1.x = temp1.x * float1(0.75);
// max r1.x, r1.x, c0.y
temp1.x = max(temp1.x, float1(0));
// min oD0.w, r1.x, c0.w
o.color.w = min(temp1.x, float1(0.95));
// mul r1, v2.xyxy, c1.xyxz
temp1 = i.texcoord1.xyxy * float4(1, 0.5, 1, 0.9);
// mov r2.xy, c0
temp2.xy = float2(1, 0);
// mad oT0.xy, c15.x, r2.yxzw, r1
o.texcoord.xy = expr15.xx * temp2.yx + temp1.xy;
// mad oT1.xy, c17.x, r2.yxzw, r1.zwzw
o.texcoord1.xy = expr17.xx * temp2.yx + temp1.zw;
// mad oT0.zw, c16.x, r2.xyxy, v2.xyyx
o.texcoord.zw = expr16.xx * temp2.xy + i.texcoord1.yx;
// mul r1.xy, r2, c18.x
temp1.xy = temp2.xy * expr18.xx;
// mad oT1.zw, v2.xyyx, c1.xywx, r1.xyxy
o.texcoord1.zw = i.texcoord1.yx * float2(2, 1) + temp1.xy;
// dp4 r1.x, r0, c19
temp1.x = dot(temp0, (World._m00_m10_m20_m30));
// dp4 r1.y, r0, c20
temp1.y = dot(temp0, (World._m01_m11_m21_m31));
// add r1.xy, r1, c22.zwzw
temp1.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT2.xy, r1, c22
o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV;
// dp4 r1.x, r0, c11
temp1.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 r1.y, r0, c12
temp1.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 r1.z, r0, c14
temp1.z = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// add r0.xy, r1, r1.z
temp0.xy = temp1.xy + temp1.zz;
// mov oPos.xyw, r1.xyzz
o.position.xyw = temp1.xyz;
// mov oT3.z, r1.z
o.texcoord3.z = temp1.z;
// mul oT3.xy, r0, c1.y
o.texcoord3.xy = temp0.xy * float2(0.5, 0.5);
// mul oD0.xyz, v1, c0.z
o.color.xyz = i.color.xyz * float3(0.75, 0.75, 0.75);
// mov oD1.x, c0.x
o.color1 = float4(1, 1, 1, 1);
//
return o;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader6(); // 40
PixelShader = compile ps_2_0 Default_PixelShader5(); // 41
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
}
}
technique _Default_M
{
pass P0
{
VertexShader = compile vs_2_0 _Default_M_VertexShader4(); // 42
PixelShader = compile ps_2_0 _Default_M_PixelShader3(); // 43
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
}
}
technique _Default_L
{
pass P0
{
VertexShader = compile vs_2_0 _Default_L_VertexShader2(); // 44
PixelShader = compile ps_2_0 _Default_L_PixelShader1(); // 45
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
}
}

486
rotateenvironmentmap.fx Normal file
View File

@ -0,0 +1,486 @@
string DefaultParameterScopeBlock = "material"; // 1
float3 AmbientLightColor <bool unmanaged = 1;> = { 0.3, 0.3, 0.3 };
struct
{
float3 Color;
float3 Direction;
} DirectionalLight[3] : register(ps_2_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 };
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture EnvironmentTexture <string SasBindAddress = "Environment.SourceTexture"; string ResourceType = "Cube";>; // 2
samplerCUBE EnvironmentTextureSampler : register(ps_2_0, s0) <string Texture = "EnvironmentTexture"; string SasBindAddress = "Environment.SourceTexture"; string ResourceType = "Cube";> =
sampler_state
{
Texture = <EnvironmentTexture>; // 5
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
AddressW = 3;
};
// CubeFace5_PixelShader1 Pixel_2_0 Has PRES False
float4 CubeFace5_PixelShader1(float3 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, 0, 0, 1, 0
// dcl t0.xyz
// dcl_cube s0
// mov r0.xyz, c6
temp0.xyz = DirectionalLight[0].Direction.xyz;
// mul r1.xyz, r0.zxyw, c0
temp1.xyz = temp0.zxy * float3(0, 0, 1);
// mad r0.xyz, r0.yzxw, c0.yzxw, -r1
temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// mul r0.xyz, r1.yzxw, c6.zxyw
temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy;
// mad r0.xyz, c6.yzxw, r1.zxyw, -r0
temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz;
// dp3 r1.x, r1, t0
temp1.x = dot(temp1.xyz, texcoord.xyz);
// dp3 r1.y, r0, t0
temp1.y = dot(temp0.xyz, texcoord.xyz);
// dp3 r1.z, c6, t0
temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz);
// texld r0, r1, s0
temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// CubeFace5_VertexShader2 Vertex_2_0 Has PRES False
struct CubeFace5_VertexShader2_Output
{
float4 position : POSITION;
float3 texcoord : TEXCOORD;
};
CubeFace5_VertexShader2_Output CubeFace5_VertexShader2(float4 position : POSITION)
{
CubeFace5_VertexShader2_Output o;
// def c0, 1, -1, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
o.position.xyz = position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mul oT0.xy, v0, c0.yxzw
o.texcoord.xy = position.xy * float2(-1, 1);
// mov oT0.z, c0.y
o.texcoord.z = float1(-1);
//
return o;
}
// CubeFace4_PixelShader3 Pixel_2_0 Has PRES False
float4 CubeFace4_PixelShader3(float3 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, 0, 0, 1, 0
// dcl t0.xyz
// dcl_cube s0
// mov r0.xyz, c6
temp0.xyz = DirectionalLight[0].Direction.xyz;
// mul r1.xyz, r0.zxyw, c0
temp1.xyz = temp0.zxy * float3(0, 0, 1);
// mad r0.xyz, r0.yzxw, c0.yzxw, -r1
temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// mul r0.xyz, r1.yzxw, c6.zxyw
temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy;
// mad r0.xyz, c6.yzxw, r1.zxyw, -r0
temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz;
// dp3 r1.x, r1, t0
temp1.x = dot(temp1.xyz, texcoord.xyz);
// dp3 r1.y, r0, t0
temp1.y = dot(temp0.xyz, texcoord.xyz);
// dp3 r1.z, c6, t0
temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz);
// texld r0, r1, s0
temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// CubeFace4_VertexShader4 Vertex_2_0 Has PRES False
struct CubeFace4_VertexShader4_Output
{
float4 position : POSITION;
float3 texcoord : TEXCOORD;
};
CubeFace4_VertexShader4_Output CubeFace4_VertexShader4(float4 position : POSITION)
{
CubeFace4_VertexShader4_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
o.position.xyz = position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v0
o.texcoord.xy = position.xy;
// mov oT0.z, c0.x
o.texcoord.z = float1(1);
//
return o;
}
// CubeFace3_PixelShader5 Pixel_2_0 Has PRES False
float4 CubeFace3_PixelShader5(float3 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, 0, 0, 1, 0
// dcl t0.xyz
// dcl_cube s0
// mov r0.xyz, c6
temp0.xyz = DirectionalLight[0].Direction.xyz;
// mul r1.xyz, r0.zxyw, c0
temp1.xyz = temp0.zxy * float3(0, 0, 1);
// mad r0.xyz, r0.yzxw, c0.yzxw, -r1
temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// mul r0.xyz, r1.yzxw, c6.zxyw
temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy;
// mad r0.xyz, c6.yzxw, r1.zxyw, -r0
temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz;
// dp3 r1.x, r1, t0
temp1.x = dot(temp1.xyz, texcoord.xyz);
// dp3 r1.y, r0, t0
temp1.y = dot(temp0.xyz, texcoord.xyz);
// dp3 r1.z, c6, t0
temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz);
// texld r0, r1, s0
temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// CubeFace3_VertexShader6 Vertex_2_0 Has PRES False
struct CubeFace3_VertexShader6_Output
{
float4 position : POSITION;
float3 texcoord : TEXCOORD;
};
CubeFace3_VertexShader6_Output CubeFace3_VertexShader6(float4 position : POSITION)
{
CubeFace3_VertexShader6_Output o;
// def c0, 1, -1, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
o.position.xyz = position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xz, v0.xyyw
o.texcoord.xz = position.xy;
// mov oT0.y, c0.y
o.texcoord.y = float1(-1);
//
return o;
}
// CubeFace2_PixelShader7 Pixel_2_0 Has PRES False
float4 CubeFace2_PixelShader7(float3 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, 0, 0, 1, 0
// dcl t0.xyz
// dcl_cube s0
// mov r0.xyz, c6
temp0.xyz = DirectionalLight[0].Direction.xyz;
// mul r1.xyz, r0.zxyw, c0
temp1.xyz = temp0.zxy * float3(0, 0, 1);
// mad r0.xyz, r0.yzxw, c0.yzxw, -r1
temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// mul r0.xyz, r1.yzxw, c6.zxyw
temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy;
// mad r0.xyz, c6.yzxw, r1.zxyw, -r0
temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz;
// dp3 r1.x, r1, t0
temp1.x = dot(temp1.xyz, texcoord.xyz);
// dp3 r1.y, r0, t0
temp1.y = dot(temp0.xyz, texcoord.xyz);
// dp3 r1.z, c6, t0
temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz);
// texld r0, r1, s0
temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// CubeFace2_VertexShader8 Vertex_2_0 Has PRES False
struct CubeFace2_VertexShader8_Output
{
float4 position : POSITION;
float3 texcoord : TEXCOORD;
};
CubeFace2_VertexShader8_Output CubeFace2_VertexShader8(float4 position : POSITION)
{
CubeFace2_VertexShader8_Output o;
// def c0, 1, -1, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
o.position.xyz = position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mul oT0.xz, v0.xyyw, c0.xyyw
o.texcoord.xz = position.xy * float2(1, -1);
// mov oT0.y, c0.x
o.texcoord.y = float1(1);
//
return o;
}
// CubeFace1_PixelShader9 Pixel_2_0 Has PRES False
float4 CubeFace1_PixelShader9(float3 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, 0, 0, 1, 0
// dcl t0.xyz
// dcl_cube s0
// mov r0.xyz, c6
temp0.xyz = DirectionalLight[0].Direction.xyz;
// mul r1.xyz, r0.zxyw, c0
temp1.xyz = temp0.zxy * float3(0, 0, 1);
// mad r0.xyz, r0.yzxw, c0.yzxw, -r1
temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// mul r0.xyz, r1.yzxw, c6.zxyw
temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy;
// mad r0.xyz, c6.yzxw, r1.zxyw, -r0
temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz;
// dp3 r1.x, r1, t0
temp1.x = dot(temp1.xyz, texcoord.xyz);
// dp3 r1.y, r0, t0
temp1.y = dot(temp0.xyz, texcoord.xyz);
// dp3 r1.z, c6, t0
temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz);
// texld r0, r1, s0
temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// CubeFace1_VertexShader10 Vertex_2_0 Has PRES False
struct CubeFace1_VertexShader10_Output
{
float4 position : POSITION;
float3 texcoord : TEXCOORD;
};
CubeFace1_VertexShader10_Output CubeFace1_VertexShader10(float4 position : POSITION)
{
CubeFace1_VertexShader10_Output o;
// def c0, 1, -1, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
o.position.xyz = position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.x, c0.y
o.texcoord.x = float1(-1);
// mov oT0.yz, v0.xyxw
o.texcoord.yz = position.yx;
//
return o;
}
// CubeFace0_PixelShader11 Pixel_2_0 Has PRES False
float4 CubeFace0_PixelShader11(float3 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, 0, 0, 1, 0
// dcl t0.xyz
// dcl_cube s0
// mov r0.xyz, c6
temp0.xyz = DirectionalLight[0].Direction.xyz;
// mul r1.xyz, r0.zxyw, c0
temp1.xyz = temp0.zxy * float3(0, 0, 1);
// mad r0.xyz, r0.yzxw, c0.yzxw, -r1
temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz;
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// mul r0.xyz, r1.yzxw, c6.zxyw
temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy;
// mad r0.xyz, c6.yzxw, r1.zxyw, -r0
temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz;
// dp3 r1.x, r1, t0
temp1.x = dot(temp1.xyz, texcoord.xyz);
// dp3 r1.y, r0, t0
temp1.y = dot(temp0.xyz, texcoord.xyz);
// dp3 r1.z, c6, t0
temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz);
// texld r0, r1, s0
temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// CubeFace0_VertexShader12 Vertex_2_0 Has PRES False
struct CubeFace0_VertexShader12_Output
{
float4 position : POSITION;
float3 texcoord : TEXCOORD;
};
CubeFace0_VertexShader12_Output CubeFace0_VertexShader12(float4 position : POSITION)
{
CubeFace0_VertexShader12_Output o;
// def c0, 1, -1, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
o.position.xyz = position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.x, c0.x
o.texcoord.x = float1(1);
// mul oT0.yz, v0.xyxw, c0.xxyw
o.texcoord.yz = position.yx * float2(1, -1);
//
return o;
}
technique CubeFace0
{
pass p0
{
VertexShader = compile vs_2_0 CubeFace0_VertexShader12(); // 9
PixelShader = compile ps_2_0 CubeFace0_PixelShader11(); // 10
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}
technique CubeFace1
{
pass p0
{
VertexShader = compile vs_2_0 CubeFace1_VertexShader10(); // 11
PixelShader = compile ps_2_0 CubeFace1_PixelShader9(); // 12
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}
technique CubeFace2
{
pass p0
{
VertexShader = compile vs_2_0 CubeFace2_VertexShader8(); // 13
PixelShader = compile ps_2_0 CubeFace2_PixelShader7(); // 14
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}
technique CubeFace3
{
pass p0
{
VertexShader = compile vs_2_0 CubeFace3_VertexShader6(); // 15
PixelShader = compile ps_2_0 CubeFace3_PixelShader5(); // 16
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}
technique CubeFace4
{
pass p0
{
VertexShader = compile vs_2_0 CubeFace4_VertexShader4(); // 17
PixelShader = compile ps_2_0 CubeFace4_PixelShader3(); // 18
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}
technique CubeFace5
{
pass p0
{
VertexShader = compile vs_2_0 CubeFace5_VertexShader2(); // 19
PixelShader = compile ps_2_0 CubeFace5_PixelShader1(); // 20
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}

184
shadow.fx Normal file
View File

@ -0,0 +1,184 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
row_major float4x4 WorldViewProjection : WorldViewProjection;
texture Sampler_PostProcess <string UIName = "None";>; // 2
sampler2D Sampler_PostProcessSampler : register(ps_2_0, s0) <string Texture = "Sampler_PostProcess"; string UIName = "None";> =
sampler_state
{
Texture = <Sampler_PostProcess>; // 4
MinFilter = 1;
MagFilter = 1;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
float4 ColorToWrite;
// _ShadowMapPostProcess_PixelShader1 Pixel_2_0 Has PRES False
float4 _ShadowMapPostProcess_PixelShader1(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4;
// def c0, 0.0009765625, 0, -0, -0.0009765625
// def c1, 0.5, 0, 0, 0
// def c2, 0, 0.0009765625, -0.0009765625, -0
// dcl t0.xy
// dcl_2d s0
// add r0.xy, t0, c0
temp0.xy = texcoord.xy + float2(0.0009765625, 0);
// add r1.xy, t0, c0.wzyx
temp1.xy = texcoord.xy + float2(-0.0009765625, -0);
// add r2.xy, t0, c2
temp2.xy = texcoord.xy + float2(0, 0.0009765625);
// add r3.xy, t0, c2.wzyx
temp3.xy = texcoord.xy + float2(-0, -0.0009765625);
// texld r0, r0, s0
temp0 = tex2D(Sampler_PostProcessSampler, temp0.xy);
// texld r1, r1, s0
temp1 = tex2D(Sampler_PostProcessSampler, temp1.xy);
// texld r2, r2, s0
temp2 = tex2D(Sampler_PostProcessSampler, temp2.xy);
// texld r3, r3, s0
temp3 = tex2D(Sampler_PostProcessSampler, temp3.xy);
// texld r4, t0, s0
temp4 = tex2D(Sampler_PostProcessSampler, texcoord.xy);
// max r2.y, r0.x, r1.x
temp2.y = max(temp0.x, temp1.x);
// max r0.x, r2.x, r3.x
temp0.x = max(temp2.x, temp3.x);
// max r1.x, r2.y, r0.x
temp1.x = max(temp2.y, temp0.x);
// lrp r0, c1.x, r1.x, r4.x
temp0 = lerp(temp4.x, temp1.x, float4(0.5, 0.5, 0.5, 0.5));
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// _ShadowMapPostProcess_VertexShader2 Vertex_2_0 Has PRES False
struct _ShadowMapPostProcess_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct _ShadowMapPostProcess_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
_ShadowMapPostProcess_VertexShader2_Output _ShadowMapPostProcess_VertexShader2(_ShadowMapPostProcess_VertexShader2_Input i)
{
_ShadowMapPostProcess_VertexShader2_Output o;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// _WriteColor_PixelShader3 Pixel_2_0 Has PRES True
float4 _WriteColor_PixelShader3() : 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;
{
// Expression_2_1
// mov c11, c0
expr11 = ColorToWrite;
}
float4 out_color;
// mov oC0, c11
out_color = expr11;
//
return out_color;
}
// _WriteColor_VertexShader4 Vertex_2_0 Has PRES False
float4 _WriteColor_VertexShader4(float4 position : POSITION) : POSITION
{
float4 out_position;
// def c0, 1, 0, 0, 0
// dcl_position v0
// mov oPos.xyz, v0
out_position.xyz = position.xyz;
// mov oPos.w, c0.x
out_position.w = float1(1);
//
return out_position;
}
technique _WriteColor
{
pass P0
{
VertexShader = compile vs_2_0 _WriteColor_VertexShader4(); // 7
PixelShader = compile ps_2_0 _WriteColor_PixelShader3(); // 8
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}
technique _ShadowMapPostProcess
{
pass P0
{
VertexShader = compile vs_2_0 _ShadowMapPostProcess_VertexShader2(); // 9
PixelShader = compile ps_2_0 _ShadowMapPostProcess_PixelShader1(); // 10
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
AlphaTestEnable = 0;
}
}

182
simple.fx Normal file
View File

@ -0,0 +1,182 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
float3 ColorEmissive <string UIName = "Emissive Material Color"; string UIWidget = "Color";> = { 1, 1, 1 };
texture Texture_0 <string UIName = "Base Texture";>; // 4
sampler2D Texture_0Sampler : register(ps_2_0, s0) <string Texture = "Texture_0"; string UIName = "Base Texture";> =
sampler_state
{
Texture = <Texture_0>; // 6
MinFilter = 3;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
float4 TexCoordTransform_0 : register(vs_2_0, c17) <string UIName = "UV0 Scl/Move"; string UIWidget = "Spinner"; float UIMin = -100; float UIMax = 100;> = { 1, 1, 0, 0 };
bool DepthWriteEnable <string UIName = "Depth Write Enable";> = { 1 };
bool AlphaBlendingEnable <string UIName = "Alpha Blend Enable";>;
bool FogEnable <string UIName = "Fog Enable";> = { 1 };
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
row_major float4x3 World : World;
float Time : Time;
// Default_Expression1 Expression_2_0 Has PRES False
float Default_Expression1()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = AlphaBlendingEnable.x;
return expr0;
}
// Default_Expression2 Expression_2_0 Has PRES False
float Default_Expression2()
{
float1 expr0;
// mov c0.x, c0.x
expr0.x = DepthWriteEnable.x;
return expr0;
}
// Default_PixelShader3 Pixel_2_0 Has PRES False
struct Default_PixelShader3_Input
{
float3 color : COLOR;
float color1 : COLOR1;
float2 texcoord : TEXCOORD;
};
float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// def c0, 1, -1, 0, 0
// dcl v0.xyz
// dcl v1.x
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(Texture_0Sampler, i.texcoord.xy);
// mov r1.xyz, v0
temp1.xyz = i.color.xyz;
// mad r0.xyz, r1, r0, c0.y
temp0.xyz = temp1.xyz * temp0.xyz + float3(-1, -1, -1);
// mad r1.xyz, v1.x, r0, c0.x
temp1.xyz = i.color1.xxx * 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;
}
// Default_VertexShader4 Vertex_2_0 Has PRES True
struct Default_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Default_VertexShader4_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float3 color : COLOR;
float color1 : COLOR1;
};
Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i)
{
/*
PRSI
OutputRegisterOffset: 15
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 2
Unknown3: 0
Unknown4: 0
Unknown5: 15
Unknown6: 2
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr15;
float4 expr16;
{
// Expression_2_1
// mul c15.xy, c2.x, c1.zw
expr15.xy = Time.x * TexCoordTransform_0.zw;
// mov c16.xyz, c0.xyz
expr16.xyz = ColorEmissive.xyz;
}
Default_VertexShader4_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov r0.xy, c17
temp0.xy = TexCoordTransform_0.xy;
// mad oT0.xy, v1, r0, c15
o.texcoord = i.texcoord * temp0 + expr15;
// mov oD0.xyz, c16
o.color = expr16;
// mov oD1.x, c0.x
o.color1 = float4(1, 1, 1, 1);
//
return o;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader4(); // 14
PixelShader = compile ps_2_0 Default_PixelShader3(); // 15
ZEnable = 1;
ZFunc = 4;
CullMode = 2;
AlphaTestEnable = 0;
ZWriteEnable = Default_Expression2(); // 0
AlphaBlendEnable = Default_Expression1(); // 0
SrcBlend = 5;
DestBlend = 6;
}
}

203
simplest.fx Normal file
View File

@ -0,0 +1,203 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
float4 FlatColorOverride <string UIWidget = "None"; string SasBindAddress = "WW3D.FlatColor"; int WW3DDynamicSet = 2;>;
texture BaseTexture <string UIName = "Base Texture";>; // 4
sampler2D BaseTextureSampler : register(ps_2_0, s0) <string Texture = "BaseTexture"; string UIName = "Base Texture";> =
sampler_state
{
Texture = <BaseTexture>; // 6
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
// Textured_PixelShader1 Pixel_2_0 Has PRES False
float4 Textured_PixelShader1(float2 texcoord : TEXCOORD) : COLOR
{
float4 out_color;
float4 temp0;
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(BaseTextureSampler, texcoord.xy);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Textured_VertexShader2 Vertex_2_0 Has PRES False
struct Textured_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Textured_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
Textured_VertexShader2_Output Textured_VertexShader2(Textured_VertexShader2_Input i)
{
Textured_VertexShader2_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// 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, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// DynamicParameter_PixelShader3 Pixel_2_0 Has PRES False
float4 DynamicParameter_PixelShader3() : COLOR
{
float4 out_color;
// def c0, 1, 0, 0, 1
// mov oC0, c0
out_color = float4(1, 0, 0, 1);
//
return out_color;
}
// DynamicParameter_VertexShader4 Vertex_2_0 Has PRES False
float4 DynamicParameter_VertexShader4(float4 position : POSITION) : POSITION
{
float4 out_position;
float4 temp0;
// 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, c11
out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
//
return out_position;
}
// Simplest_PixelShader5 Pixel_2_0 Has PRES False
float4 Simplest_PixelShader5() : COLOR
{
float4 out_color;
// def c0, 1, 0, 0, 1
// mov oC0, c0
out_color = float4(1, 0, 0, 1);
//
return out_color;
}
// Simplest_VertexShader6 Vertex_2_0 Has PRES False
float4 Simplest_VertexShader6(float4 position : POSITION) : POSITION
{
float4 out_position;
float4 temp0;
// 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, c11
out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
//
return out_position;
}
technique Simplest
{
pass P0
{
VertexShader = compile vs_2_0 Simplest_VertexShader6(); // 9
PixelShader = compile ps_2_0 Simplest_PixelShader5(); // 10
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}
technique DynamicParameter
{
pass P0 <string ExpressionEvaluator = "Simplest";>
{
VertexShader = compile vs_2_0 DynamicParameter_VertexShader4(); // 12
PixelShader = compile ps_2_0 DynamicParameter_PixelShader3(); // 13
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
SrcBlend = 2;
DestBlend = 2;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}
technique Textured
{
pass P0
{
VertexShader = compile vs_2_0 Textured_VertexShader2(); // 14
PixelShader = compile ps_2_0 Textured_PixelShader1(); // 15
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaBlendEnable = 0;
ColorWriteEnable = 15;
AlphaTestEnable = 0;
}
}

756
stream.fx Normal file
View File

@ -0,0 +1,756 @@
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 : register(vs_2_0, c123) <bool unmanaged = 1;>;
column_major float4x4 ViewProjection : register(vs_2_0, c119) <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture Texture1 <string UIWidget = "None";>; // 2
sampler2D Texture1Sampler : register(ps_2_0, s0) <string Texture = "Texture1"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture1>; // 4
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
texture Texture2 <string UIWidget = "None";>; // 7
sampler2D Texture2Sampler : register(ps_2_0, s1) <string Texture = "Texture2"; string UIWidget = "None";> =
sampler_state
{
Texture = <Texture2>; // 9
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c14) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 14
sampler2D ShroudTextureSampler : register(ps_2_0, s2) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 18
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
column_major float4x3 World : World : register(vs_2_0, c11);
float Time : Time;
// Additive_M_PixelShader1 Pixel_2_0 Has PRES True
struct Additive_M_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord3 : TEXCOORD3;
float color : COLOR;
};
float4 Additive_M_PixelShader1(Additive_M_PixelShader1_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;
{
// Expression_2_1
// mul c11.x, c0.x, (0.1)
expr11.x = Time.x * (0.1);
}
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 0.5, 0.75, -0.75, 0
// dcl t0.xy
// dcl t3.xy
// dcl v0.x
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t3, s2
temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy);
// add r0.x, r0.x, c0.z
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r1.w, r0.x, c0.w
temp1.w = max(temp0.x, float1(0));
// add r0.x, r1.w, r1.w
temp0.x = temp1.w + temp1.w;
// mov r1.x, c0.x
temp1.x = float1(0.5);
// mad r1.xy, t0, r1.x, c11.x
temp1.xy = i.texcoord.xy * temp1.xx + expr11.xx;
// texld r1, r1, s1
temp1 = tex2D(Texture2Sampler, temp1.xy);
// texld r2, t0, s0
temp2 = tex2D(Texture1Sampler, i.texcoord.xy);
// mul r1, r1, r2
temp1 = temp1 * temp2;
// mul r1, r1, v0.x
temp1 = temp1 * i.color.x;
// mul r1, r1, c0.y
temp1 = temp1 * float4(0.75, 0.75, 0.75, 0.75);
// mul r1.xyz, r0.x, r1
temp1.xyz = temp0.xxx * temp1.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Additive_M_VertexShader2 Vertex_2_0 Has PRES False
struct Additive_M_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 normal : NORMAL;
};
struct Additive_M_VertexShader2_Output
{
float4 position : POSITION;
float3 color : COLOR;
float2 texcoord3 : TEXCOORD3;
float2 texcoord : TEXCOORD;
};
Additive_M_VertexShader2_Output Additive_M_VertexShader2(Additive_M_VertexShader2_Input i)
{
Additive_M_VertexShader2_Output o;
float4 temp0;
float3 temp1, temp2;
// def c0, 1, 0, -2, 3
// dcl_position v0
// dcl_texcoord v1
// dcl_normal 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 r0.x, v2, c11
temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r0.y, v2, c12
temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r0.z, v2, c13
temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz);
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// add r0.xyz, -v0, c123
temp0.xyz = -i.position.xyz + EyePosition.xyz;
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r2, r1
temp0.x = dot(temp2.xyz, temp1.xyz);
// abs r0.x, r0.x
temp0.x = abs(temp0.x);
// min r0.x, r0.x, c0.x
temp0.x = min(temp0.x, float1(1));
// mad r0.y, r0.x, c0.z, c0.w
temp0.y = temp0.x * float1(-2) + float1(3);
// mul r0.x, r0.x, r0.x
temp0.x = temp0.x * temp0.x;
// mul oD0.xyz, r0.y, r0.x
o.color = temp0.y * temp0.x;
// add r0.xy, v0, c14.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT3.xy, r0, c14
o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Multiply_M_PixelShader3 Pixel_2_0 Has PRES True
struct Multiply_M_PixelShader3_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord3 : TEXCOORD3;
float color : COLOR;
};
float4 Multiply_M_PixelShader3(Multiply_M_PixelShader3_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;
{
// Expression_2_1
// mul c11.x, c0.x, (0.1)
expr11.x = Time.x * (0.1);
}
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 0.5, 0.75, -0.75, 0
// dcl t0.xy
// dcl t3.xy
// dcl v0.x
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t3, s2
temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy);
// add r0.x, r0.x, c0.z
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r1.w, r0.x, c0.w
temp1.w = max(temp0.x, float1(0));
// add r0.x, r1.w, r1.w
temp0.x = temp1.w + temp1.w;
// mov r1.x, c0.x
temp1.x = float1(0.5);
// mad r1.xy, t0, r1.x, c11.x
temp1.xy = i.texcoord.xy * temp1.xx + expr11.xx;
// texld r1, r1, s1
temp1 = tex2D(Texture2Sampler, temp1.xy);
// texld r2, t0, s0
temp2 = tex2D(Texture1Sampler, i.texcoord.xy);
// mul r1, r1, r2
temp1 = temp1 * temp2;
// mul r1, r1, v0.x
temp1 = temp1 * i.color.x;
// mul r1, r1, c0.y
temp1 = temp1 * float4(0.75, 0.75, 0.75, 0.75);
// mul r1.xyz, r0.x, r1
temp1.xyz = temp0.xxx * temp1.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Multiply_M_VertexShader4 Vertex_2_0 Has PRES False
struct Multiply_M_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 normal : NORMAL;
};
struct Multiply_M_VertexShader4_Output
{
float4 position : POSITION;
float3 color : COLOR;
float2 texcoord3 : TEXCOORD3;
float2 texcoord : TEXCOORD;
};
Multiply_M_VertexShader4_Output Multiply_M_VertexShader4(Multiply_M_VertexShader4_Input i)
{
Multiply_M_VertexShader4_Output o;
float4 temp0;
float3 temp1, temp2;
// def c0, 1, 0, -2, 3
// dcl_position v0
// dcl_texcoord v1
// dcl_normal 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 r0.x, v2, c11
temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r0.y, v2, c12
temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r0.z, v2, c13
temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz);
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// add r0.xyz, -v0, c123
temp0.xyz = -i.position.xyz + EyePosition.xyz;
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r2, r1
temp0.x = dot(temp2.xyz, temp1.xyz);
// abs r0.x, r0.x
temp0.x = abs(temp0.x);
// min r0.x, r0.x, c0.x
temp0.x = min(temp0.x, float1(1));
// mad r0.y, r0.x, c0.z, c0.w
temp0.y = temp0.x * float1(-2) + float1(3);
// mul r0.x, r0.x, r0.x
temp0.x = temp0.x * temp0.x;
// mul oD0.xyz, r0.y, r0.x
o.color = temp0.y * temp0.x;
// add r0.xy, v0, c14.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT3.xy, r0, c14
o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Additive_PixelShader5 Pixel_2_0 Has PRES True
struct Additive_PixelShader5_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord3 : TEXCOORD3;
float color : COLOR;
};
float4 Additive_PixelShader5(Additive_PixelShader5_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;
{
// Expression_2_1
// mul c11.x, c0.x, (0.1)
expr11.x = Time.x * (0.1);
}
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 0.5, 2.2, 0.75, -0.75
// def c1, 0, 0, 0, 0
// dcl t0.xy
// dcl t3.xy
// dcl v0.x
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// mov r0.w, c0.x
temp0.w = float1(0.5);
// mad r0.xy, t0, r0.w, c11.x
temp0.xy = i.texcoord.xy * temp0.ww + expr11.xx;
// texld r0, r0, s1
temp0 = tex2D(Texture2Sampler, temp0.xy);
// texld r1, t0, s0
temp1 = tex2D(Texture1Sampler, i.texcoord.xy);
// texld r2, t3, s2
temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy);
// log r2.w, r0.x
temp2.w = log2(temp0.x);
// log r2.z, r0.y
temp2.z = log2(temp0.y);
// log r2.y, r0.z
temp2.y = log2(temp0.z);
// mul r2.yzw, r2, c0.y
temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2);
// exp r0.x, r2.w
temp0.x = exp2(temp2.w);
// exp r0.y, r2.z
temp0.y = exp2(temp2.z);
// exp r0.z, r2.y
temp0.z = exp2(temp2.y);
// log r2.w, r1.x
temp2.w = log2(temp1.x);
// log r2.z, r1.y
temp2.z = log2(temp1.y);
// log r2.y, r1.z
temp2.y = log2(temp1.z);
// mul r2.yzw, r2, c0.y
temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2);
// exp r1.x, r2.w
temp1.x = exp2(temp2.w);
// exp r1.y, r2.z
temp1.y = exp2(temp2.z);
// exp r1.z, r2.y
temp1.z = exp2(temp2.y);
// mul r0, r0, r1
temp0 = temp0 * temp1;
// mul r0, r0, v0.x
temp0 = temp0 * i.color.x;
// mul r0, r0, c0.z
temp0 = temp0 * float4(0.75, 0.75, 0.75, 0.75);
// add r1.x, r2.x, c0.w
temp1.x = temp2.x + float1(-0.75);
// add r1.x, r1.x, r1.x
temp1.x = temp1.x + temp1.x;
// max r2.x, r1.x, c1.x
temp2.x = max(temp1.x, float1(0));
// add r1.x, r2.x, r2.x
temp1.x = temp2.x + temp2.x;
// mul r0.xyz, r0, r1.x
temp0.xyz = temp0.xyz * temp1.xxx;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Additive_VertexShader6 Vertex_2_0 Has PRES False
struct Additive_VertexShader6_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 normal : NORMAL;
};
struct Additive_VertexShader6_Output
{
float4 position : POSITION;
float3 color : COLOR;
float2 texcoord3 : TEXCOORD3;
float2 texcoord : TEXCOORD;
};
Additive_VertexShader6_Output Additive_VertexShader6(Additive_VertexShader6_Input i)
{
Additive_VertexShader6_Output o;
float4 temp0;
float3 temp1, temp2;
// def c0, 1, 0, -2, 3
// dcl_position v0
// dcl_texcoord v1
// dcl_normal 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 r0.x, v2, c11
temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r0.y, v2, c12
temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r0.z, v2, c13
temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz);
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// add r0.xyz, -v0, c123
temp0.xyz = -i.position.xyz + EyePosition.xyz;
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r2, r1
temp0.x = dot(temp2.xyz, temp1.xyz);
// abs r0.x, r0.x
temp0.x = abs(temp0.x);
// min r0.x, r0.x, c0.x
temp0.x = min(temp0.x, float1(1));
// mad r0.y, r0.x, c0.z, c0.w
temp0.y = temp0.x * float1(-2) + float1(3);
// mul r0.x, r0.x, r0.x
temp0.x = temp0.x * temp0.x;
// mul oD0.xyz, r0.y, r0.x
o.color = temp0.y * temp0.x;
// add r0.xy, v0, c14.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT3.xy, r0, c14
o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Multiply_PixelShader7 Pixel_2_0 Has PRES True
struct Multiply_PixelShader7_Input
{
float2 texcoord : TEXCOORD;
float2 texcoord3 : TEXCOORD3;
float color : COLOR;
};
float4 Multiply_PixelShader7(Multiply_PixelShader7_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;
{
// Expression_2_1
// mul c11.x, c0.x, (0.1)
expr11.x = Time.x * (0.1);
}
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, 0.5, 2.2, 0.75, -0.75
// def c1, 0, 0, 0, 0
// dcl t0.xy
// dcl t3.xy
// dcl v0.x
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// mov r0.w, c0.x
temp0.w = float1(0.5);
// mad r0.xy, t0, r0.w, c11.x
temp0.xy = i.texcoord.xy * temp0.ww + expr11.xx;
// texld r0, r0, s1
temp0 = tex2D(Texture2Sampler, temp0.xy);
// texld r1, t0, s0
temp1 = tex2D(Texture1Sampler, i.texcoord.xy);
// texld r2, t3, s2
temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy);
// log r2.w, r0.x
temp2.w = log2(temp0.x);
// log r2.z, r0.y
temp2.z = log2(temp0.y);
// log r2.y, r0.z
temp2.y = log2(temp0.z);
// mul r2.yzw, r2, c0.y
temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2);
// exp r0.x, r2.w
temp0.x = exp2(temp2.w);
// exp r0.y, r2.z
temp0.y = exp2(temp2.z);
// exp r0.z, r2.y
temp0.z = exp2(temp2.y);
// log r2.w, r1.x
temp2.w = log2(temp1.x);
// log r2.z, r1.y
temp2.z = log2(temp1.y);
// log r2.y, r1.z
temp2.y = log2(temp1.z);
// mul r2.yzw, r2, c0.y
temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2);
// exp r1.x, r2.w
temp1.x = exp2(temp2.w);
// exp r1.y, r2.z
temp1.y = exp2(temp2.z);
// exp r1.z, r2.y
temp1.z = exp2(temp2.y);
// mul r0, r0, r1
temp0 = temp0 * temp1;
// mul r0, r0, v0.x
temp0 = temp0 * i.color.x;
// mul r0, r0, c0.z
temp0 = temp0 * float4(0.75, 0.75, 0.75, 0.75);
// add r1.x, r2.x, c0.w
temp1.x = temp2.x + float1(-0.75);
// add r1.x, r1.x, r1.x
temp1.x = temp1.x + temp1.x;
// max r2.x, r1.x, c1.x
temp2.x = max(temp1.x, float1(0));
// add r1.x, r2.x, r2.x
temp1.x = temp2.x + temp2.x;
// mul r0.xyz, r0, r1.x
temp0.xyz = temp0.xyz * temp1.xxx;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Multiply_VertexShader8 Vertex_2_0 Has PRES False
struct Multiply_VertexShader8_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 normal : NORMAL;
};
struct Multiply_VertexShader8_Output
{
float4 position : POSITION;
float3 color : COLOR;
float2 texcoord3 : TEXCOORD3;
float2 texcoord : TEXCOORD;
};
Multiply_VertexShader8_Output Multiply_VertexShader8(Multiply_VertexShader8_Input i)
{
Multiply_VertexShader8_Output o;
float4 temp0;
float3 temp1, temp2;
// def c0, 1, 0, -2, 3
// dcl_position v0
// dcl_texcoord v1
// dcl_normal 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 r0.x, v2, c11
temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz);
// dp3 r0.y, v2, c12
temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz);
// dp3 r0.z, v2, c13
temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz);
// nrm r1.xyz, r0
temp1.xyz = normalize(temp0.xyz).xyz;
// add r0.xyz, -v0, c123
temp0.xyz = -i.position.xyz + EyePosition.xyz;
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r2, r1
temp0.x = dot(temp2.xyz, temp1.xyz);
// abs r0.x, r0.x
temp0.x = abs(temp0.x);
// min r0.x, r0.x, c0.x
temp0.x = min(temp0.x, float1(1));
// mad r0.y, r0.x, c0.z, c0.w
temp0.y = temp0.x * float1(-2) + float1(3);
// mul r0.x, r0.x, r0.x
temp0.x = temp0.x * temp0.x;
// mul oD0.xyz, r0.y, r0.x
o.color = temp0.y * temp0.x;
// add r0.xy, v0, c14.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT3.xy, r0, c14
o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique Multiply
{
pass pass0
{
VertexShader = compile vs_2_0 Multiply_VertexShader8(); // 23
PixelShader = compile ps_2_0 Multiply_PixelShader7(); // 24
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 3;
SrcBlend = 1;
DestBlend = 4;
}
}
technique Additive
{
pass pass0
{
VertexShader = compile vs_2_0 Additive_VertexShader6(); // 25
PixelShader = compile ps_2_0 Additive_PixelShader5(); // 26
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 3;
SrcBlend = 2;
DestBlend = 2;
}
}
technique Multiply_M
{
pass pass0
{
VertexShader = compile vs_2_0 Multiply_M_VertexShader4(); // 27
PixelShader = compile ps_2_0 Multiply_M_PixelShader3(); // 28
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 3;
SrcBlend = 1;
DestBlend = 4;
}
}
technique Additive_M
{
pass pass0
{
VertexShader = compile vs_2_0 Additive_M_VertexShader2(); // 29
PixelShader = compile ps_2_0 Additive_M_PixelShader1(); // 30
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 3;
SrcBlend = 2;
DestBlend = 2;
}
}

326
swarmparticle.fx Normal file
View File

@ -0,0 +1,326 @@
string DefaultParameterScopeBlock = "material"; // 1
float3 AmbientLightColor <bool unmanaged = 1;> = { 0.3, 0.3, 0.3 };
struct
{
float3 Color;
float3 Direction;
} DirectionalLight[3] : register(vs_2_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 };
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
float3 PhaseOffset : register(vs_2_0, c21) <string UIWidget = "None"; string SasBindAddress = "Particle.Draw.PhaseOffset";>;
float PhaseOpacity : register(vs_2_0, c22) <string UIWidget = "None"; string SasBindAddress = "Particle.Draw.PhaseOpacity";> = { 1 };
column_major float4x4 View : View : register(vs_2_0, c15);
column_major float4x3 ViewInverse : ViewInverse : register(vs_2_0, c18);
column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11);
float OpaqueSpeed : register(vs_2_0, c23) <string UIName = "Opaque Speed"; float UIMin = 0; float UIMax = 10000;>;
float TransparentSpeed <string UIName = "Transparent Speed"; float UIMin = 0; float UIMax = 10000;> = { 100 };
float SpeedStretchAmount : register(vs_2_0, c24) <string UIName = "Speed Stretch Amount"; float UIMin = 0; float UIMax = 10000;> = { 1 };
texture DiffuseTexture <string UIWidget = "None"; string SasBindAddress = "Particle.Draw.Texture";>; // 9
sampler2D DiffuseTextureSampler : register(ps_2_0, s0) <string Texture = "DiffuseTexture"; string UIWidget = "None"; string SasBindAddress = "Particle.Draw.Texture";> =
sampler_state
{
Texture = <DiffuseTexture>; // 12
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
texture EnvironmentTexture <string UIWidget = "None"; string SasBindAddress = "Particle.Draw.DetailTexture";>; // 16
sampler2D EnvironmentTextureSampler <string Texture = "EnvironmentTexture"; string UIWidget = "None"; string SasBindAddress = "Particle.Draw.DetailTexture";> =
sampler_state
{
Texture = <EnvironmentTexture>; // 19
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c25) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 25
sampler2D ShroudTextureSampler : register(ps_2_0, s1) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 29
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
// Default_PixelShader1 Pixel_2_0 Has PRES False
struct Default_PixelShader1_Input
{
float4 color : COLOR;
float4 color1 : COLOR1;
float2 texcoord1 : TEXCOORD1;
float2 texcoord3 : TEXCOORD3;
};
float4 Default_PixelShader1(Default_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
float4 temp2;
// def c0, 2, 1, -0.75, 0
// def c1, 0.9, 1.8, 10, -1
// dcl v0
// dcl v1
// dcl t1.xy
// dcl t3.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t3, s1
temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy);
// texld r1, t1, s0
temp1 = tex2D(DiffuseTextureSampler, i.texcoord1.xy);
// add r0.x, r0.x, c0.z
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r2.w, r0.x, c0.w
temp2.w = max(temp0.x, float1(0));
// add r0.x, r2.w, r2.w
temp0.x = temp2.w + temp2.w;
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mad r0.yzw, r1.wzyx, c1.wzyx, c1.w
temp0.yzw = temp1.zyx * float3(10, 1.8, 0.9) + float3(-1, -1, -1);
// mul r1.w, r1.w, c0.x
temp1.w = temp1.w * float1(2);
// mad r0.yzw, v1.w, r0, c0.y
temp0.yzw = i.color1.www * temp0.yzw + float3(1, 1, 1);
// mul r1.xyz, r0.x, r0.wzyx
temp1.xyz = temp0.xxx * temp0.wzy;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// Default_VertexShader2 Vertex_2_0 Has PRES True
struct Default_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 texcoord1 : TEXCOORD1;
};
struct Default_VertexShader2_Output
{
float4 color : COLOR;
float4 position : POSITION;
float4 color1 : COLOR1;
float2 texcoord2 : TEXCOORD2;
float2 texcoord3 : TEXCOORD3;
float2 texcoord1 : TEXCOORD1;
};
Default_VertexShader2_Output Default_VertexShader2(Default_VertexShader2_Input i)
{
/*
PRSI
OutputRegisterOffset: 26
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 26
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr26;
{
float4 temp0;
float4 temp1;
// Expression_2_1
// neg r0.x, c0.x
temp0.x = -OpaqueSpeed.x;
// add r1.x, r0.x, c1.x
temp1.x = temp0.x + TransparentSpeed.x;
// rcp c26.x, r1.x
expr26.x = 1.0f / (temp1.x);
}
Default_VertexShader2_Output o;
float4 temp0, temp1;
float3 temp2, temp3, temp4;
// def c0, 1, 0, 2, -1
// def c1, 0.5, 0.7, -0.5, 0.4
// dcl_position v0
// dcl_texcoord v1
// dcl_texcoord1 v2
// dp3 r0.x, v2, v2
temp0.x = dot(i.texcoord1.xyz, i.texcoord1.xyz);
// rsq r0.x, r0.x
temp0.x = 1 / sqrt(temp0.x);
// rcp r0.x, r0.x
temp0.x = 1.0f / temp0.x;
// add r0.y, r0.x, -c23.x
temp0.y = temp0.x + -OpaqueSpeed.x;
// mov r1.x, c1.x
temp1.x = float1(0.5);
// mad r0.x, r0.x, c24.x, r1.x
temp0.x = temp0.x * SpeedStretchAmount.x + temp1.x;
// mul r0.y, r0.y, c26.x
temp0.y = temp0.y * expr26.x;
// max r0.y, r0.y, c0.y
temp0.y = max(temp0.y, float1(0));
// min r0.y, r0.y, c0.x
temp0.y = min(temp0.y, float1(1));
// add r0.y, -r0.y, c0.x
temp0.y = -temp0.y + float1(1);
// mul oD0.w, r0.y, c22.x
o.color.w = temp0.y * PhaseOpacity.x;
// mad r0.yz, v1.xxyw, c0.z, c0.w
temp0.yz = i.texcoord.xy * float2(2, 2) + float2(-1, -1);
// mul r0.y, r0.y, c1.x
temp0.y = temp0.y * float1(0.5);
// mov r1.xyz, v2
temp1.xyz = i.texcoord1.xyz;
// add r1.xyz, r1, v0
temp1.xyz = temp1.xyz + i.position.xyz;
// mov r1.w, c0.x
temp1.w = float1(1);
// dp4 r2.x, r1, c15
temp2.x = dot(temp1, (View._m00_m10_m20_m30));
// dp4 r2.y, r1, c16
temp2.y = dot(temp1, (View._m01_m11_m21_m31));
// dp4 r2.z, r1, c17
temp2.z = dot(temp1, (View._m02_m12_m22_m32));
// mad r1, v0.xyzx, c0.xxxy, c0.yyyx
temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1);
// dp4 r3.x, r1, c15
temp3.x = dot(temp1, (View._m00_m10_m20_m30));
// dp4 r3.y, r1, c16
temp3.y = dot(temp1, (View._m01_m11_m21_m31));
// dp4 r3.z, r1, c17
temp3.z = dot(temp1, (View._m02_m12_m22_m32));
// add r1.xyz, r2, -r3
temp1.xyz = temp2.xyz + -temp3.xyz;
// nrm r2.xyz, r1
temp2.xyz = normalize(temp1.xyz).xyz;
// mul r1.xyz, r3.yzxw, r2.zxyw
temp1.xyz = temp3.yzx * temp2.zxy;
// mad r1.xyz, r2.yzxw, r3.zxyw, -r1
temp1.xyz = temp2.yzx * temp3.zxy + -temp1.xyz;
// nrm r4.xyz, r1
temp4.xyz = normalize(temp1.xyz).xyz;
// mad r1.xyz, r0.y, r4, r3
temp1.xyz = temp0.yyy * temp4.xyz + temp3.xyz;
// mul r0.yzw, r0.z, r2.xxyz
temp0.yzw = temp0.zzz * temp2.xyz;
// mad r0.xyz, r0.x, r0.yzww, r1
temp0.xyz = temp0.xxx * temp0.yzw + temp1.xyz;
// mov r0.w, c0.x
temp0.w = float1(1);
// dp4 r1.x, r0, c18
temp1.x = dot(temp0, (ViewInverse._m00_m10_m20_m30));
// dp4 r1.y, r0, c19
temp1.y = dot(temp0, (ViewInverse._m01_m11_m21_m31));
// dp4 r1.z, r0, c20
temp1.z = dot(temp0, (ViewInverse._m02_m12_m22_m32));
// add r0.xyz, r1, c21
temp0.xyz = temp1.xyz + PhaseOffset.xyz;
// mov r0.w, c0.x
temp0.w = float1(1);
// dp4 oPos.x, r0, c11
o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30));
// dp4 oPos.y, r0, c12
o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31));
// dp4 oPos.z, r0, c13
o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32));
// dp4 oPos.w, r0, c14
o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33));
// add r0.xy, r0, c25.zwzw
temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw;
// mov r1.xyz, c5
temp1.xyz = DirectionalLight[0].Color.xyz;
// add r1.xyz, r1, c7
temp1.xyz = temp1.xyz + DirectionalLight[1].Color.xyz;
// add r1.xyz, r1, c9
temp1.xyz = temp1.xyz + DirectionalLight[2].Color.xyz;
// mul oD1.xyz, r1, c1.y
o.color1.xyz = temp1.xyz * float3(0.7, 0.7, 0.7);
// mul r1.xyz, r2.yzxw, r4.zxyw
temp1.xyz = temp2.yzx * temp4.zxy;
// mad r1.xyz, r4.yzxw, r2.zxyw, -r1
temp1.xyz = temp4.yzx * temp2.zxy + -temp1.xyz;
// add r0.zw, v1.xyxy, c1.z
temp0.zw = i.texcoord.xy + float2(-0.5, -0.5);
// mul r0.zw, r0, c1.w
temp0.zw = temp0.zw * float2(0.4, 0.4);
// mul r2.xyz, r2, r0.w
temp2.xyz = temp2.xyz * temp0.www;
// mad r2.xyz, r0.z, r4, r2
temp2.xyz = temp0.zzz * temp4.xyz + temp2.xyz;
// mad r0.z, r0.z, -r0.z, c0.x
temp0.z = temp0.z * -temp0.z + float1(1);
// mad r0.z, r0.w, r0.w, r0.z
temp0.z = temp0.w * temp0.w + temp0.z;
// rsq r0.z, r0.z
temp0.z = 1 / sqrt(temp0.z);
// rcp r0.z, r0.z
temp0.z = 1.0f / temp0.z;
// mad r1.xyz, r0.z, r1, r2
temp1.xyz = temp0.zzz * temp1.xyz + temp2.xyz;
// dp3 r0.z, r1, r1
temp0.z = dot(temp1.xyz, temp1.xyz);
// rsq r0.z, r0.z
temp0.z = 1 / sqrt(temp0.z);
// mul r0.zw, r1.xyxy, r0.z
temp0.zw = temp1.xy * temp0.zz;
// mad oT2.xy, r0.zwzw, c1.x, c1.x
o.texcoord2 = temp0.zwzw * float4(0.5, 0.5, 0.5, 0.5) + float4(0.5, 0.5, 0.5, 0.5);
// mul oT3.xy, r0, c25
o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oD0.xyz, c0.x
o.color.xyz = float3(1, 1, 1);
// mov oD1.w, c0.x
o.color1.w = float1(1);
// mov oT1.xy, v1
o.texcoord1 = i.texcoord;
//
return o;
}
technique Default
{
pass pass0
{
VertexShader = compile vs_2_0 Default_VertexShader2(); // 34
PixelShader = compile ps_2_0 Default_PixelShader1(); // 35
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
AlphaBlendEnable = 1;
CullMode = 1;
SrcBlend = 2;
DestBlend = 2;
}
}

6054
terrain.fx Normal file

File diff suppressed because it is too large Load Diff

220
terraintracks.fx Normal file
View File

@ -0,0 +1,220 @@
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] <bool unmanaged = 1;>;
texture Texture_0 <string UIWidget = "None"; string SasBindAddress = "WW3D.MiscTexture"; int WW3DDynamicSet = 2;>; // 2
sampler2D Texture_0Sampler : register(ps_2_0, s0) <string Texture = "Texture_0"; string UIWidget = "None"; string SasBindAddress = "WW3D.MiscTexture"; int WW3DDynamicSet = 2;> =
sampler_state
{
Texture = <Texture_0>; // 5
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
// Default_M_PixelShader1 Pixel_2_0 Has PRES False
struct Default_M_PixelShader1_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0;
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(Texture_0Sampler, i.texcoord.xy);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_M_VertexShader2 Vertex_2_0 Has PRES False
struct Default_M_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Default_M_VertexShader2_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i)
{
Default_M_VertexShader2_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Default_PixelShader3 Pixel_2_0 Has PRES False
struct Default_PixelShader3_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0;
float3 temp1;
// def c0, 2.2, 0, 0, 0
// dcl v0
// dcl t0.xy
// dcl_2d s0
// texld r0, t0, s0
temp0 = tex2D(Texture_0Sampler, i.texcoord.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 r1.xyz, r1, c0.x
temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2);
// exp r0.x, r1.x
temp0.x = exp2(temp1.x);
// exp r0.y, r1.y
temp0.y = exp2(temp1.y);
// exp r0.z, r1.z
temp0.z = exp2(temp1.z);
// mul r0, r0, v0
temp0 = temp0 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_VertexShader4 Vertex_2_0 Has PRES False
struct Default_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Default_VertexShader4_Output
{
float4 position : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD;
};
Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i)
{
Default_VertexShader4_Output o;
float4 temp0;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color 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));
// mov oD0, v2
o.color = i.color;
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique Default
{
pass P0
{
VertexShader = compile vs_2_0 Default_VertexShader4(); // 9
PixelShader = compile ps_2_0 Default_PixelShader3(); // 10
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 2;
ColorWriteEnable = 7;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}
technique Default_M
{
pass P0
{
VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 11
PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 12
ZEnable = 1;
ZFunc = 4;
ZWriteEnable = 0;
CullMode = 2;
ColorWriteEnable = 7;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
AlphaTestEnable = 0;
}
}

1001
tracer.fx Normal file

File diff suppressed because it is too large Load Diff

286
trail.fx Normal file
View File

@ -0,0 +1,286 @@
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] <bool unmanaged = 1;>;
struct {
float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand;
float4 ColorAnimationFunctions[6];
float4 TimeKeys;
int ShaderType;
float SpeedMultiplier;
float2 ColorScaleRange;
} Draw <string UIWidget = "None"; string SasBindAddress = "Particle.Draw";> = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 };
struct {
float3 Gravity;
float3 DriftVelocity;
float2 VelocityDampingRange;
} Physics <string UIWidget = "None"; string SasBindAddress = "Particle.Physics";> = { 0, 0, 0, 0, 0, 0, 1, 0 };
struct {
float3 Size_Rate_Damping__Min;
float3 Size_Rate_Damping__Spread;
float3 XYRotation_Rate_Damping__Min;
float3 XYRotation_Rate_Damping__Spread;
float3 ZRotation_Rate_Damping__Min;
float3 ZRotation_Rate_Damping__Spread;
} Update <string UIWidget = "None"; string SasBindAddress = "Particle.Update";> = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 };
texture DiffuseTexture <string UIWidget = "None"; string SasBindAddress = "Particle.Draw.Texture";>; // 8
sampler2D DiffuseTextureSampler : register(ps_2_0, s0) <string Texture = "DiffuseTexture"; string UIWidget = "None"; string SasBindAddress = "Particle.Draw.Texture";> =
sampler_state
{
Texture = <DiffuseTexture>; // 11
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
struct
{
float4 ScaleUV_OffsetUV;
} Shroud : register(vs_2_0, c11) <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud";> = { 1, 1, 0, 0 };
texture ShroudTexture <string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";>; // 17
sampler2D ShroudTextureSampler : register(ps_2_0, s1) <string Texture = "ShroudTexture"; string UIWidget = "None"; string SasBindAddress = "Terrain.Shroud.Texture"; string ResourceName = "ShaderPreviewShroud.dds";> =
sampler_state
{
Texture = <ShroudTexture>; // 21
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
// PS_Array_Shader_0 Pixel_2_0 Has PRES False
struct PS_Array_Shader_0_Input
{
float4 color : COLOR;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
float4 temp2;
// def c0, -0.75, 0, 0, 0
// dcl v0
// dcl t0.xy
// dcl t1.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t1, s1
temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// texld r1, t0, s0
temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy);
// add r0.x, r0.x, c0.x
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r2.w, r0.x, c0.y
temp2.w = max(temp0.x, float1(0));
// add r0.x, r2.w, r2.w
temp0.x = temp2.w + temp2.w;
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mul r1.xyz, r0.x, r1
temp1.xyz = temp0.xxx * temp1.xyz;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// PS_Array_Shader_1 Pixel_2_0 Has PRES False
struct PS_Array_Shader_1_Input
{
float4 color : COLOR;
float3 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
float4 temp2;
// def c0, -1, 1, -0.75, 0
// dcl v0
// dcl v1.xyz
// dcl t0.xy
// dcl t1.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t1, s1
temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// texld r1, t0, s0
temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy);
// add r0.x, r0.x, c0.z
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r2.w, r0.x, c0.w
temp2.w = max(temp0.x, float1(0));
// add r0.x, r2.w, r2.w
temp0.x = temp2.w + temp2.w;
// mad r0.yzw, r1.wzyx, v0.wzyx, c0.x
temp0.yzw = temp1.zyx * i.color.zyx + float3(-1, -1, -1);
// mul r1.w, r1.w, v0.w
temp1.w = temp1.w * i.color.w;
// mad r0.yzw, v1.wzyx, r0, c0.y
temp0.yzw = i.color1.zyx * temp0.yzw + float3(1, 1, 1);
// mul r1.xyz, r0.x, r0.wzyx
temp1.xyz = temp0.xxx * temp0.wzy;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
// PS_Array_Shader_2 Pixel_2_0 Has PRES False
struct PS_Array_Shader_2_Input
{
float4 color : COLOR;
float3 color1 : COLOR1;
float2 texcoord : TEXCOORD;
float2 texcoord1 : TEXCOORD1;
};
float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
float4 temp2;
// def c0, -0.75, 0, 0, 0
// dcl v0
// dcl v1.xyz
// dcl t0.xy
// dcl t1.xy
// dcl_2d s0
// dcl_2d s1
// texld r0, t1, s1
temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy);
// texld r1, t0, s0
temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy);
// add r0.x, r0.x, c0.x
temp0.x = temp0.x + float1(-0.75);
// add r0.x, r0.x, r0.x
temp0.x = temp0.x + temp0.x;
// max r2.w, r0.x, c0.y
temp2.w = max(temp0.x, float1(0));
// add r0.x, r2.w, r2.w
temp0.x = temp2.w + temp2.w;
// mul r1, r1, v0
temp1 = temp1 * i.color;
// mul r0.yzw, r1.wzyx, v1.wzyx
temp0.yzw = temp1.zyx * i.color1.zyx;
// mul r1.xyz, r0.x, r0.wzyx
temp1.xyz = temp0.xxx * temp0.wzy;
// mov oC0, r1
out_color = temp1;
//
return out_color;
}
PixelShader PS_Array[3] = {
compile ps_2_0 PS_Array_Shader_0(), // 26
compile ps_2_0 PS_Array_Shader_1(), // 27
compile ps_2_0 PS_Array_Shader_2(), // 28
};
// Default_Expression4 Expression_2_0 Has PRES False
float Default_Expression4()
{
float1 expr0;
// mov c0.x, (0)
expr0.x = (0);
return expr0;
}
// Default_VertexShader5 Vertex_2_0 Has PRES False
struct Default_VertexShader5_Input
{
float4 position : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD;
};
struct Default_VertexShader5_Output
{
float4 position : POSITION;
float2 texcoord1 : TEXCOORD1;
float4 color : COLOR;
float3 color1 : COLOR1;
float2 texcoord : TEXCOORD;
};
Default_VertexShader5_Output Default_VertexShader5(Default_VertexShader5_Input i)
{
Default_VertexShader5_Output o;
float4 temp0;
// def c0, 1, 0, 0, 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 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, v0, c11.zwzw
temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw;
// mul oT1.xy, r0, c11
o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV;
// mov oD0, v1
o.color = i.color;
// mov oD1.xyz, c0.x
o.color1 = float4(1, 1, 1, 1);
// mov oT0.xy, v2
o.texcoord = i.texcoord;
//
return o;
}
technique Default
{
pass pass0 <string ExpressionEvaluator = "Particle";>
{
VertexShader = compile vs_2_0 Default_VertexShader5(); // 30
PixelShader = PS_Array[Default_Expression4()]; // 31
ZEnable = 1;
ZWriteEnable = 0;
ZFunc = 4;
CullMode = 1;
AlphaBlendEnable = 1;
AlphaFunc = 7;
AlphaRef = 96;
}
}

3473
tree.fx Normal file

File diff suppressed because it is too large Load Diff

1692
treesway.fx Normal file

File diff suppressed because it is too large Load Diff

814
underwaterdeferred.fx Normal file
View File

@ -0,0 +1,814 @@
string DefaultParameterScopeBlock = "material"; // 1
float3 AmbientLightColor <bool unmanaged = 1;> = { 0.3, 0.3, 0.3 };
struct
{
float3 Color;
float3 Direction;
} DirectionalLight[3] : register(ps_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 };
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture DepthLutSampler <string UIWidget = "None"; string SasBindAddress = "Water.DepthLutTexture";>; // 2
sampler2D DepthLutSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) <string Texture = "DepthLutSampler"; string UIWidget = "None"; string SasBindAddress = "Water.DepthLutTexture";> =
sampler_state
{
Texture = <DepthLutSampler>; // 5
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 3;
AddressV = 3;
};
texture CausticSampler <string UIWidget = "None"; string SasBindAddress = "Water.CausticsTexture";>; // 9
sampler2D CausticSamplerSampler : register(ps_3_0, s1) <string Texture = "CausticSampler"; string UIWidget = "None"; string SasBindAddress = "Water.CausticsTexture";> =
sampler_state
{
Texture = <CausticSampler>; // 12
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
AddressU = 1;
AddressV = 1;
};
texture DepthTexture <string SasBindAddress = "WW3D.DepthTexture";>; // 16
sampler2D DepthTextureSampler : register(ps_2_0, s1) <string Texture = "DepthTexture"; string SasBindAddress = "WW3D.DepthTexture";> =
sampler_state
{
Texture = <DepthTexture>; // 18
MinFilter = 1;
MagFilter = 1;
MipFilter = 1;
AddressU = 3;
AddressV = 3;
};
column_major float4x4 ViewI : ViewInverse : register(ps_2_0, c11) : register(vs_2_0, c15) : register(ps_3_0, c11) : register(vs_3_0, c15);
column_major float4x4 ProjectionI : ProjectionInverse : register(vs_2_0, c11) : register(vs_3_0, c11);
float Time : Time;
// _Caustics_M_PixelShader1 Pixel_2_0 Has PRES False
float4 _Caustics_M_PixelShader1() : COLOR
{
float4 out_color;
float4 temp0;
// def c0, 0, 0, 0, 0
// mov r0, c0.x
temp0 = float4(0, 0, 0, 0);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// _Caustics_M_VertexShader2 Vertex_2_0 Has PRES False
float4 _Caustics_M_VertexShader2() : POSITION
{
float4 out_position;
// def c0, 0, 1, 0, 0
// mov oPos, c0.xxxy
out_position = float4(0, 0, 0, 1);
//
return out_position;
}
// _Tint_M_PixelShader3 Pixel_2_0 Has PRES False
struct _Tint_M_PixelShader3_Input
{
float2 texcoord : TEXCOORD;
float3 texcoord1 : TEXCOORD1;
};
float4 _Tint_M_PixelShader3(_Tint_M_PixelShader3_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// def c0, 200, 201, 0.005, 0
// dcl t0.xy
// dcl t1.xyz
// dcl_2d s0
// dcl_2d s1
// texld r0, t0, s1
temp0 = tex2D(DepthTextureSampler, i.texcoord.xy);
// mad r0.x, r0.x, t1.z, c13.w
temp0.x = temp0.x * i.texcoord1.z + (ViewI._m02_m12_m22_m32).w;
// add r1, -r0.x, c0.x
temp1 = -temp0.x + float4(200, 200, 200, 200);
// add r0.x, -r0.x, c0.y
temp0.x = -temp0.x + float1(201);
// mul r0.xy, r0.x, c0.z
temp0.xy = temp0.xx * float2(0.005, 0.005);
// texkill r1
clip(temp1);
// texld r0, r0, s0
temp0 = tex2D(DepthLutSamplerSampler, temp0.xy);
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// _Tint_M_VertexShader4 Vertex_2_0 Has PRES False
struct _Tint_M_VertexShader4_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct _Tint_M_VertexShader4_Output
{
float3 texcoord1 : TEXCOORD1;
float4 position : POSITION;
float2 texcoord : TEXCOORD;
};
_Tint_M_VertexShader4_Output _Tint_M_VertexShader4(_Tint_M_VertexShader4_Input i)
{
_Tint_M_VertexShader4_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// mad r0, v0.xyxx, c0.xxyy, c0.yyxx
temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1);
// dp4 r1.x, r0, c14
temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33));
// rcp r1.x, r1.x
temp1.x = 1.0f / temp1.x;
// dp4 r1.y, r0, c11
temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30));
// dp4 r1.z, r0, c12
temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31));
// dp4 r1.w, r0, c13
temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32));
// mul r0.xyz, r1.x, r1.yzww
temp0.xyz = temp1.xxx * temp1.yzw;
// rcp r0.w, r0.z
temp0.w = 1.0f / temp0.z;
// mul r0.xyz, r0, r0.w
temp0.xyz = temp0.xyz * temp0.www;
// dp3 oT1.x, r0, c15
o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz);
// dp3 oT1.y, r0, c16
o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz);
// dp3 oT1.z, r0, c17
o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz);
// mov oPos.xyz, v0
o.position.xyz = i.position.xyz;
// mov oPos.w, c0.x
o.position.w = float1(1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Caustics_U_PixelShader5 Pixel_3_0 Has PRES True
struct Caustics_U_PixelShader5_Input
{
float2 texcoord : TEXCOORD;
float3 texcoord1 : TEXCOORD1;
};
float4 Caustics_U_PixelShader5(Caustics_U_PixelShader5_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 14
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 14
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr14;
{
// Expression_2_1
// mul c14.x, c0.x, (0.12)
expr14.x = Time.x * (0.12);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3, temp4;
// def c0, 200, 0.004, 0.4067543, 0.9135376
// def c1, -1, 0.3, 0.27, 0.33
// def c2, 201, 0.005, 0.75, 5
// def c3, -0.9135376, 0.4067543, 0, 0.9135376
// def c4, 2.2, 0, 0, 0
// dcl_texcoord v0.xy
// dcl_texcoord1 v1.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, v0, s2
temp0 = tex2D(DepthTextureSampler, i.texcoord.xy);
// mov r0.w, c11.w
temp0.w = (ViewI._m00_m10_m20_m30).w;
// mov r0.y, c12.w
temp0.y = (ViewI._m01_m11_m21_m31).w;
// mov r0.z, c13.w
temp0.z = (ViewI._m02_m12_m22_m32).w;
// mad r0.xyz, r0.x, v1.yzxw, r0.yzww
temp0.xyz = temp0.xxx * i.texcoord1.yzx + temp0.yzw;
// add r1, -r0.y, c0.x
temp1 = -temp0.y + float4(200, 200, 200, 200);
// texkill r1
clip(temp1);
// rcp r0.w, c6.z
temp0.w = 1.0f / DirectionalLight[0].Direction.z;
// mul r1.xy, r0.y, c6
temp1.xy = temp0.yy * DirectionalLight[0].Direction.xy;
// mad r1.xy, r1, -r0.w, r0.zxzw
temp1.xy = temp1.xy * -temp0.ww + temp0.zx;
// mul r1.xy, r1, c0.y
temp1.xy = temp1.xy * float2(0.004, 0.004);
// dp2add r1.w, r1, c3, c3.z
temp1.w = dot(temp1.xy, float2(-0.9135376, 0.40675429)) + float1(0);
// mov r2.zw, c0
temp2.zw = float2(0.40675429, 0.9135376);
// dp2add r1.z, r1, r2.zwzw, c14.x
temp1.z = dot(temp1.xy, temp2.zw) + expr14.x;
// dp2add r2.y, r1, c3.wyzw, c3.z
temp2.y = dot(temp1.xy, float2(0.9135376, 0.40675429)) + float1(0);
// mov r3.xy, c3
temp3.xy = float2(-0.9135376, 0.40675429);
// dp2add r2.x, r1, r3.yxzw, c14.x
temp2.x = dot(temp1.xy, temp3.yx) + expr14.x;
// texld r3, r2, s1
temp3 = tex2D(CausticSamplerSampler, temp2.xy);
// texld r4, r1.zwzw, s1
temp4 = tex2D(CausticSamplerSampler, temp1.zw);
// add r1.xy, r3, r4
temp1.xy = temp3.xy + temp4.xy;
// add r1.xy, r1, c1.x
temp1.xy = temp1.xy + float2(-1, -1);
// mad r2.zw, r1.xyxy, c1.y, r1
temp2.zw = temp1.xy * float2(0.3, 0.3) + temp1.zw;
// texld r3, r2.zwzw, s1
temp3 = tex2D(CausticSamplerSampler, temp2.zw);
// mad r2.zw, r1.xyxy, -c1.y, -r2.xyxy
temp2.zw = temp1.xy * float2(-0.3, -0.3) + -temp2.xy;
// texld r4, r2.zwzw, s1
temp4 = tex2D(CausticSamplerSampler, temp2.zw);
// mul r3.y, r3.w, r4.w
temp3.y = temp3.w * temp4.w;
// mad r2.zw, r1.xyxy, c1.z, r1
temp2.zw = temp1.xy * float2(0.27, 0.27) + temp1.zw;
// mad r1.zw, r1.xyxy, c1.w, r1
temp1.zw = temp1.xy * float2(0.33, 0.33) + temp1.zw;
// texld r4, r2.zwzw, s1
temp4 = tex2D(CausticSamplerSampler, temp2.zw);
// mad r2.zw, r1.xyxy, -c1.z, -r2.xyxy
temp2.zw = temp1.xy * float2(-0.27, -0.27) + -temp2.xy;
// mad r1.xy, r1, -c1.w, -r2
temp1.xy = temp1.xy * float2(-0.33, -0.33) + -temp2.xy;
// texld r2, r2.zwzw, s1
temp2 = tex2D(CausticSamplerSampler, temp2.zw);
// mul r3.x, r4.w, r2.w
temp3.x = temp4.w * temp2.w;
// texld r2, r1.zwzw, s1
temp2 = tex2D(CausticSamplerSampler, temp1.zw);
// texld r1, r1, s1
temp1 = tex2D(CausticSamplerSampler, temp1.xy);
// mul r3.z, r2.w, r1.w
temp3.z = temp2.w * temp1.w;
// mul r1.xyz, r3, r3
temp1.xyz = temp3.xyz * temp3.xyz;
// add r0.w, -r0.y, c2.x
temp0.w = -temp0.y + float1(201);
// mul r2.xy, r0.w, c2.y
temp2.xy = temp0.ww * float2(0.005, 0.005);
// mov r2.zw, c3.z
temp2.zw = float2(0, 0);
// texldl r2, r2, s0
temp2 = tex2Dlod(DepthLutSamplerSampler, temp2);
// mul r1.xyz, r1, r2.w
temp1.xyz = temp1.xyz * temp2.www;
// mov r2.x, c1.x
temp2.x = float1(-1);
// mov r2.z, c2.z
temp2.z = float1(0.75);
// lrp r3.xyz, r2.z, -r2.x, c5
temp3.xyz = lerp(DirectionalLight[0].Color.xyz, -temp2.xxx, temp2.zzz);
// mul r1.xyz, r1, r3
temp1.xyz = temp1.xyz * temp3.xyz;
// dsy r2.xyz, r0.yzxw
temp2.xyz = ddy(temp0.yzx);
// dsx r0.xyz, r0
temp0.xyz = ddx(temp0.xyz);
// mul r3.xyz, r2, r0
temp3.xyz = temp2.xyz * temp0.xyz;
// mad r0.xyz, r2.zxyw, r0.yzxw, -r3
temp0.xyz = temp2.zxy * temp0.yzx + -temp3.xyz;
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r2, c6
temp0.x = dot(temp2.xyz, DirectionalLight[0].Direction.xyz);
// max r1.w, r0.x, c3.z
temp1.w = max(temp0.x, float1(0));
// mul r0.xyz, r1, r1.w
temp0.xyz = temp1.xyz * temp1.www;
// mul r0.xyz, r0, c2.w
temp0.xyz = temp0.xyz * float3(5, 5, 5);
// 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, c4.x
temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2);
// exp oC0.x, r0.x
out_color.x = exp2(temp0.x);
// exp oC0.y, r0.y
out_color.y = exp2(temp0.y);
// exp oC0.z, r0.z
out_color.z = exp2(temp0.z);
// mov oC0.w, -c1.x
out_color.w = float1(1);
//
return out_color;
}
// Caustics_U_VertexShader6 Vertex_3_0 Has PRES False
struct Caustics_U_VertexShader6_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Caustics_U_VertexShader6_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float3 texcoord1 : TEXCOORD1;
};
Caustics_U_VertexShader6_Output Caustics_U_VertexShader6(Caustics_U_VertexShader6_Input i)
{
Caustics_U_VertexShader6_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// dcl_texcoord1 o2.xyz
// mad r0, v0.xyxx, c0.xxyy, c0.yyxx
temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1);
// dp4 r1.x, r0, c14
temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33));
// rcp r1.x, r1.x
temp1.x = 1.0f / temp1.x;
// dp4 r1.y, r0, c11
temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30));
// dp4 r1.z, r0, c12
temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31));
// dp4 r1.w, r0, c13
temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32));
// mul r0.xyz, r1.x, r1.yzww
temp0.xyz = temp1.xxx * temp1.yzw;
// rcp r0.w, r0.z
temp0.w = 1.0f / temp0.z;
// mul r0.xyz, r0, r0.w
temp0.xyz = temp0.xyz * temp0.www;
// dp3 o2.x, r0, c15
o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz);
// dp3 o2.y, r0, c16
o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz);
// dp3 o2.z, r0, c17
o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz);
// mov o0.xyz, v0
o.position.xyz = i.position.xyz;
// mov o0.w, c0.x
o.position.w = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Caustics_PixelShader7 Pixel_3_0 Has PRES True
struct Caustics_PixelShader7_Input
{
float2 texcoord : TEXCOORD;
float3 texcoord1 : TEXCOORD1;
};
float4 Caustics_PixelShader7(Caustics_PixelShader7_Input i) : COLOR
{
/*
PRSI
OutputRegisterOffset: 14
Unknown1: 0
Unknown2: 0
OutputRegisterCount: 1
Unknown3: 0
Unknown4: 0
Unknown5: 14
Unknown6: 1
Mappings: 1
0 - ConstOutput: 0 ConstInput 0
*/
float4 expr14;
{
// Expression_2_1
// mul c14.x, c0.x, (0.12)
expr14.x = Time.x * (0.12);
}
float4 out_color;
float4 temp0, temp1, temp2, temp3;
// def c0, 200, 0.004, 0.4067543, 0.9135376
// def c1, -1, 0.3, 201, 0.005
// def c2, -0.9135376, 0.4067543, 0, 0.9135376
// def c3, 0.75, 5, 2.2, 0
// dcl_texcoord v0.xy
// dcl_texcoord1 v1.xyz
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, v0, s2
temp0 = tex2D(DepthTextureSampler, i.texcoord.xy);
// mov r0.w, c11.w
temp0.w = (ViewI._m00_m10_m20_m30).w;
// mov r0.y, c12.w
temp0.y = (ViewI._m01_m11_m21_m31).w;
// mov r0.z, c13.w
temp0.z = (ViewI._m02_m12_m22_m32).w;
// mad r0.xyz, r0.x, v1.yzxw, r0.yzww
temp0.xyz = temp0.xxx * i.texcoord1.yzx + temp0.yzw;
// add r1, -r0.y, c0.x
temp1 = -temp0.y + float4(200, 200, 200, 200);
// texkill r1
clip(temp1);
// rcp r0.w, c6.z
temp0.w = 1.0f / DirectionalLight[0].Direction.z;
// mul r1.xy, r0.y, c6
temp1.xy = temp0.yy * DirectionalLight[0].Direction.xy;
// mad r1.xy, r1, -r0.w, r0.zxzw
temp1.xy = temp1.xy * -temp0.ww + temp0.zx;
// mul r1.xy, r1, c0.y
temp1.xy = temp1.xy * float2(0.004, 0.004);
// dp2add r1.w, r1, c2, c2.z
temp1.w = dot(temp1.xy, float2(-0.9135376, 0.40675429)) + float1(0);
// mov r2.zw, c0
temp2.zw = float2(0.40675429, 0.9135376);
// dp2add r1.z, r1, r2.zwzw, c14.x
temp1.z = dot(temp1.xy, temp2.zw) + expr14.x;
// texld r2, r1.zwzw, s1
temp2 = tex2D(CausticSamplerSampler, temp1.zw);
// dp2add r2.w, r1, c2.wyzw, c2.z
temp2.w = dot(temp1.xy, float2(0.9135376, 0.40675429)) + float1(0);
// mov r3.xy, c2
temp3.xy = float2(-0.9135376, 0.40675429);
// dp2add r2.z, r1, r3.yxzw, c14.x
temp2.z = dot(temp1.xy, temp3.yx) + expr14.x;
// texld r3, r2.zwzw, s1
temp3 = tex2D(CausticSamplerSampler, temp2.zw);
// add r1.xy, r2, r3
temp1.xy = temp2.xy + temp3.xy;
// add r1.xy, r1, c1.x
temp1.xy = temp1.xy + float2(-1, -1);
// mad r1.zw, r1.xyxy, c1.y, r1
temp1.zw = temp1.xy * float2(0.3, 0.3) + temp1.zw;
// mad r1.xy, r1, -c1.y, -r2.zwzw
temp1.xy = temp1.xy * float2(-0.3, -0.3) + -temp2.zw;
// texld r2, r1.zwzw, s1
temp2 = tex2D(CausticSamplerSampler, temp1.zw);
// texld r1, r1, s1
temp1 = tex2D(CausticSamplerSampler, temp1.xy);
// mul r0.w, r2.w, r1.w
temp0.w = temp2.w * temp1.w;
// mul r0.w, r0.w, r0.w
temp0.w = temp0.w * temp0.w;
// add r1.x, -r0.y, c1.z
temp1.x = -temp0.y + float1(201);
// mul r1.xy, r1.x, c1.w
temp1.xy = temp1.xx * float2(0.005, 0.005);
// mov r1.zw, c2.z
temp1.zw = float2(0, 0);
// texldl r1, r1, s0
temp1 = tex2Dlod(DepthLutSamplerSampler, temp1);
// mul r0.w, r0.w, r1.w
temp0.w = temp0.w * temp1.w;
// mov r1.x, c1.x
temp1.x = float1(-1);
// mov r2.x, c3.x
temp2.x = float1(0.75);
// lrp r3.xyz, r2.x, -r1.x, c5
temp3.xyz = lerp(DirectionalLight[0].Color.xyz, -temp1.xxx, temp2.xxx);
// mul r1.xyz, r0.w, r3
temp1.xyz = temp0.www * temp3.xyz;
// dsy r2.xyz, r0.yzxw
temp2.xyz = ddy(temp0.yzx);
// dsx r0.xyz, r0
temp0.xyz = ddx(temp0.xyz);
// mul r3.xyz, r2, r0
temp3.xyz = temp2.xyz * temp0.xyz;
// mad r0.xyz, r2.zxyw, r0.yzxw, -r3
temp0.xyz = temp2.zxy * temp0.yzx + -temp3.xyz;
// nrm r2.xyz, r0
temp2.xyz = normalize(temp0.xyz).xyz;
// dp3 r0.x, r2, c6
temp0.x = dot(temp2.xyz, DirectionalLight[0].Direction.xyz);
// max r1.w, r0.x, c2.z
temp1.w = max(temp0.x, float1(0));
// mul r0.xyz, r1, r1.w
temp0.xyz = temp1.xyz * temp1.www;
// mul r0.xyz, r0, c3.y
temp0.xyz = temp0.xyz * float3(5, 5, 5);
// 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, c3.z
temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2);
// exp oC0.x, r0.x
out_color.x = exp2(temp0.x);
// exp oC0.y, r0.y
out_color.y = exp2(temp0.y);
// exp oC0.z, r0.z
out_color.z = exp2(temp0.z);
// mov oC0.w, -c1.x
out_color.w = float1(1);
//
return out_color;
}
// Caustics_VertexShader8 Vertex_3_0 Has PRES False
struct Caustics_VertexShader8_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Caustics_VertexShader8_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float3 texcoord1 : TEXCOORD1;
};
Caustics_VertexShader8_Output Caustics_VertexShader8(Caustics_VertexShader8_Input i)
{
Caustics_VertexShader8_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// dcl_texcoord1 o2.xyz
// mad r0, v0.xyxx, c0.xxyy, c0.yyxx
temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1);
// dp4 r1.x, r0, c14
temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33));
// rcp r1.x, r1.x
temp1.x = 1.0f / temp1.x;
// dp4 r1.y, r0, c11
temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30));
// dp4 r1.z, r0, c12
temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31));
// dp4 r1.w, r0, c13
temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32));
// mul r0.xyz, r1.x, r1.yzww
temp0.xyz = temp1.xxx * temp1.yzw;
// rcp r0.w, r0.z
temp0.w = 1.0f / temp0.z;
// mul r0.xyz, r0, r0.w
temp0.xyz = temp0.xyz * temp0.www;
// dp3 o2.x, r0, c15
o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz);
// dp3 o2.y, r0, c16
o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz);
// dp3 o2.z, r0, c17
o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz);
// mov o0.xyz, v0
o.position.xyz = i.position.xyz;
// mov o0.w, c0.x
o.position.w = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
// Tint_PixelShader9 Pixel_3_0 Has PRES False
struct Tint_PixelShader9_Input
{
float2 texcoord : TEXCOORD;
float3 texcoord1 : TEXCOORD1;
};
float4 Tint_PixelShader9(Tint_PixelShader9_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1;
// def c0, 200, 201, 0.005, 0
// def c1, 2.2, 0, 0, 0
// dcl_texcoord v0.xy
// dcl_texcoord1 v1.z
// dcl_2d s0
// dcl_2d s1
// texld r0, v0, s1
temp0 = tex2D(DepthTextureSampler, i.texcoord.xy);
// mad r0.x, r0.x, v1.z, c13.w
temp0.x = temp0.x * i.texcoord1.z + (ViewI._m02_m12_m22_m32).w;
// add r1, -r0.x, c0.x
temp1 = -temp0.x + float4(200, 200, 200, 200);
// add r0.x, -r0.x, c0.y
temp0.x = -temp0.x + float1(201);
// texkill r1
clip(temp1);
// mul r0.xy, r0.x, c0.z
temp0.xy = temp0.xx * float2(0.005, 0.005);
// mov r0.zw, c0.w
temp0.zw = float2(0, 0);
// texldl r0, r0, s0
temp0 = tex2Dlod(DepthLutSamplerSampler, temp0);
// 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);
// mov oC0.w, r0.w
out_color.w = temp0.w;
// mul r0.xyz, r1, c1.x
temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2);
// exp oC0.x, r0.x
out_color.x = exp2(temp0.x);
// exp oC0.y, r0.y
out_color.y = exp2(temp0.y);
// exp oC0.z, r0.z
out_color.z = exp2(temp0.z);
//
return out_color;
}
// Tint_VertexShader10 Vertex_3_0 Has PRES False
struct Tint_VertexShader10_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
};
struct Tint_VertexShader10_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float3 texcoord1 : TEXCOORD1;
};
Tint_VertexShader10_Output Tint_VertexShader10(Tint_VertexShader10_Input i)
{
Tint_VertexShader10_Output o;
float4 temp0, temp1;
// def c0, 1, 0, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_position o0
// dcl_texcoord o1.xy
// dcl_texcoord1 o2.xyz
// mad r0, v0.xyxx, c0.xxyy, c0.yyxx
temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1);
// dp4 r1.x, r0, c14
temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33));
// rcp r1.x, r1.x
temp1.x = 1.0f / temp1.x;
// dp4 r1.y, r0, c11
temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30));
// dp4 r1.z, r0, c12
temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31));
// dp4 r1.w, r0, c13
temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32));
// mul r0.xyz, r1.x, r1.yzww
temp0.xyz = temp1.xxx * temp1.yzw;
// rcp r0.w, r0.z
temp0.w = 1.0f / temp0.z;
// mul r0.xyz, r0, r0.w
temp0.xyz = temp0.xyz * temp0.www;
// dp3 o2.x, r0, c15
o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz);
// dp3 o2.y, r0, c16
o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz);
// dp3 o2.z, r0, c17
o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz);
// mov o0.xyz, v0
o.position.xyz = i.position.xyz;
// mov o0.w, c0.x
o.position.w = float1(1);
// mov o1.xy, v1
o.texcoord = i.texcoord;
//
return o;
}
technique Tint
{
pass p0
{
VertexShader = compile vs_3_0 Tint_VertexShader10(); // 21
PixelShader = compile ps_3_0 Tint_PixelShader9(); // 22
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 9;
DestBlend = 1;
}
}
technique Caustics
{
pass p0
{
VertexShader = compile vs_3_0 Caustics_VertexShader8(); // 23
PixelShader = compile ps_3_0 Caustics_PixelShader7(); // 24
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
}
}
technique Caustics_U
{
pass p0
{
VertexShader = compile vs_3_0 Caustics_U_VertexShader6(); // 25
PixelShader = compile ps_3_0 Caustics_U_PixelShader5(); // 26
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 2;
DestBlend = 2;
}
}
technique _Tint_M
{
pass p0
{
VertexShader = compile vs_2_0 _Tint_M_VertexShader4(); // 27
PixelShader = compile ps_2_0 _Tint_M_PixelShader3(); // 28
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 9;
DestBlend = 1;
}
}
technique _Caustics_M
{
pass p0
{
VertexShader = compile vs_2_0 _Caustics_M_VertexShader2(); // 29
PixelShader = compile ps_2_0 _Caustics_M_PixelShader1(); // 30
ZEnable = 0;
ZWriteEnable = 0;
CullMode = 1;
AlphaTestEnable = 0;
AlphaBlendEnable = 0;
}
}

157
video.fx Normal file
View File

@ -0,0 +1,157 @@
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;>;
row_major float4x4 ViewProjection <bool unmanaged = 1;>;
float4 WorldBones[128] <bool unmanaged = 1;>;
texture FrameY <string SasBindAddress = "Video.FrameY";>; // 2
sampler2D FrameYSampler : register(ps_2_0, s0) <string Texture = "FrameY"; string SasBindAddress = "Video.FrameY";> =
sampler_state
{
Texture = <FrameY>; // 4
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
texture FrameU <string SasBindAddress = "Video.FrameU";>; // 7
sampler2D FrameUSampler : register(ps_2_0, s1) <string Texture = "FrameU"; string SasBindAddress = "Video.FrameU";> =
sampler_state
{
Texture = <FrameU>; // 9
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
texture FrameV <string SasBindAddress = "Video.FrameV";>; // 12
sampler2D FrameVSampler : register(ps_2_0, s2) <string Texture = "FrameV"; string SasBindAddress = "Video.FrameV";> =
sampler_state
{
Texture = <FrameV>; // 14
AddressU = 3;
AddressV = 3;
MinFilter = 2;
MagFilter = 2;
MipFilter = 2;
};
// Default_PixelShader1 Pixel_2_0 Has PRES False
struct Default_PixelShader1_Input
{
float2 texcoord : TEXCOORD;
float4 color : COLOR;
};
float4 Default_PixelShader1(Default_PixelShader1_Input i) : COLOR
{
float4 out_color;
float4 temp0, temp1, temp2;
// def c0, -0.062745, -0.50196, -0.50196, 1
// def c1, 1.164144, -0.0017889, 1.595786, 0
// def c2, 1.164144, -0.3914428, -0.8134821, 0
// def c3, 1.164144, 2.017826, -0.0012458, 0
// dcl t0.xy
// dcl v0
// dcl_2d s0
// dcl_2d s1
// dcl_2d s2
// texld r0, t0, s0
temp0 = tex2D(FrameYSampler, i.texcoord.xy);
// texld r1, t0, s1
temp1 = tex2D(FrameUSampler, i.texcoord.xy);
// texld r2, t0, s2
temp2 = tex2D(FrameVSampler, i.texcoord.xy);
// mov r0.y, r1.x
temp0.y = temp1.x;
// mov r0.z, r2.x
temp0.z = temp2.x;
// add r0.xyz, r0, c0
temp0.xyz = temp0.xyz + float3(-0.062745, -0.50196, -0.50196);
// dp3 r1.x, r0, c1
temp1.x = dot(temp0.xyz, float3(1.1641444, -0.0017889, 1.5957862));
// dp3 r1.y, r0, c2
temp1.y = dot(temp0.xyz, float3(1.1641444, -0.3914428, -0.8134821));
// dp3 r1.z, r0, c3
temp1.z = dot(temp0.xyz, float3(1.1641444, 2.0178256, -0.0012458));
// mov r1.w, c0.w
temp1.w = float1(1);
// mul r0, r1, v0
temp0 = temp1 * i.color;
// mov oC0, r0
out_color = temp0;
//
return out_color;
}
// Default_VertexShader2 Vertex_2_0 Has PRES False
struct Default_VertexShader2_Input
{
float4 position : POSITION;
float4 texcoord : TEXCOORD;
float4 color : COLOR;
};
struct Default_VertexShader2_Output
{
float4 position : POSITION;
float2 texcoord : TEXCOORD;
float4 color : COLOR;
};
Default_VertexShader2_Output Default_VertexShader2(Default_VertexShader2_Input i)
{
Default_VertexShader2_Output o;
// def c0, 2, -2, -1, 1
// def c1, 0, 1, 0, 0
// dcl_position v0
// dcl_texcoord v1
// dcl_color v2
// mad oPos.xy, v0, c0, c0.zwzw
o.position.xy = i.position.xy * float2(2, -2) + float2(-1, 1);
// mov oPos.zw, c1.xyxy
o.position.zw = float2(0, 1);
// mov oT0.xy, v1
o.texcoord = i.texcoord;
// mov oD0, v2
o.color = i.color;
//
return o;
}
technique Default
{
pass P0
{
CullMode = 1;
ZEnable = 0;
ZWriteEnable = 0;
AlphaTestEnable = 0;
AlphaBlendEnable = 1;
SrcBlend = 5;
DestBlend = 6;
VertexShader = compile vs_2_0 Default_VertexShader2(); // 17
PixelShader = compile ps_2_0 Default_PixelShader1(); // 18
}
}