上传文件
This commit is contained in:
commit
a6390b1508
3473
basicw3d.fx
Normal file
3473
basicw3d.fx
Normal file
File diff suppressed because it is too large
Load Diff
1942
basicw3dholographic.fx
Normal file
1942
basicw3dholographic.fx
Normal file
File diff suppressed because it is too large
Load Diff
3486
basicw3dsupporthdr.fx
Normal file
3486
basicw3dsupporthdr.fx
Normal file
File diff suppressed because it is too large
Load Diff
110
bootupscreen.fx
Normal file
110
bootupscreen.fx
Normal 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
3168
buildingsallied.fx
Normal file
File diff suppressed because it is too large
Load Diff
5429
buildingsfactionfrozen.fx
Normal file
5429
buildingsfactionfrozen.fx
Normal file
File diff suppressed because it is too large
Load Diff
3149
buildingsgeneric.fx
Normal file
3149
buildingsgeneric.fx
Normal file
File diff suppressed because it is too large
Load Diff
3171
buildingsgenericdamagefill.fx
Normal file
3171
buildingsgenericdamagefill.fx
Normal file
File diff suppressed because it is too large
Load Diff
5374
buildingsgenericfrozen.fx
Normal file
5374
buildingsgenericfrozen.fx
Normal file
File diff suppressed because it is too large
Load Diff
3168
buildingsjapan.fx
Normal file
3168
buildingsjapan.fx
Normal file
File diff suppressed because it is too large
Load Diff
3482
buildingsjapanbuildup.fx
Normal file
3482
buildingsjapanbuildup.fx
Normal file
File diff suppressed because it is too large
Load Diff
3168
buildingssoviet.fx
Normal file
3168
buildingssoviet.fx
Normal file
File diff suppressed because it is too large
Load Diff
194
connectionline.fx
Normal file
194
connectionline.fx
Normal 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
3753
cpuparticle.fx
Normal file
File diff suppressed because it is too large
Load Diff
529
debug.fx
Normal file
529
debug.fx
Normal 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
495
decal.fx
Normal 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
42818
defaultw3d.fx
Normal file
File diff suppressed because it is too large
Load Diff
39456
defaultw3dnofognocloud.fx
Normal file
39456
defaultw3dnofognocloud.fx
Normal file
File diff suppressed because it is too large
Load Diff
481
distortingobject.fx
Normal file
481
distortingobject.fx
Normal 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
73
errormissing.fx
Normal 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
485
fxbeamhit.fx
Normal 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
457
fxlightning.fx
Normal 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
368
fxprotoncollider.fx
Normal 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
3216
gpuparticle.fx
Normal file
File diff suppressed because it is too large
Load Diff
3430
gpuparticledistort.fx
Normal file
3430
gpuparticledistort.fx
Normal file
File diff suppressed because it is too large
Load Diff
1252
gpuparticledistortion.fx
Normal file
1252
gpuparticledistortion.fx
Normal file
File diff suppressed because it is too large
Load Diff
1701
gpuparticlelit.fx
Normal file
1701
gpuparticlelit.fx
Normal file
File diff suppressed because it is too large
Load Diff
1680
gpuparticlelitaccumlight.fx
Normal file
1680
gpuparticlelitaccumlight.fx
Normal file
File diff suppressed because it is too large
Load Diff
1844
gpuparticlenormalmap.fx
Normal file
1844
gpuparticlenormalmap.fx
Normal file
File diff suppressed because it is too large
Load Diff
477
gpuparticleoceandisplacement.fx
Normal file
477
gpuparticleoceandisplacement.fx
Normal 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
|
||||
{
|
||||
}
|
||||
|
4673
gpuparticleperpendicularbottom.fx
Normal file
4673
gpuparticleperpendicularbottom.fx
Normal file
File diff suppressed because it is too large
Load Diff
4671
gpuparticleperpendicularcenter.fx
Normal file
4671
gpuparticleperpendicularcenter.fx
Normal file
File diff suppressed because it is too large
Load Diff
3511
gpuparticleunderwater.fx
Normal file
3511
gpuparticleunderwater.fx
Normal file
File diff suppressed because it is too large
Load Diff
3130
gpuparticlexy.fx
Normal file
3130
gpuparticlexy.fx
Normal file
File diff suppressed because it is too large
Load Diff
4671
infantry.fx
Normal file
4671
infantry.fx
Normal file
File diff suppressed because it is too large
Load Diff
3365
infantrychronorift.fx
Normal file
3365
infantrychronorift.fx
Normal file
File diff suppressed because it is too large
Load Diff
2395
infantryformationpreview.fx
Normal file
2395
infantryformationpreview.fx
Normal file
File diff suppressed because it is too large
Load Diff
4863
infantryfrozen.fx
Normal file
4863
infantryfrozen.fx
Normal file
File diff suppressed because it is too large
Load Diff
3656
infantryradiation.fx
Normal file
3656
infantryradiation.fx
Normal file
File diff suppressed because it is too large
Load Diff
325
laser.fx
Normal file
325
laser.fx
Normal 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
302
laseralpha.fx
Normal 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
258
laserdistortion.fx
Normal 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
1012
lightning.fx
Normal file
File diff suppressed because it is too large
Load Diff
1769
linerenderers.fx
Normal file
1769
linerenderers.fx
Normal file
File diff suppressed because it is too large
Load Diff
1045
muzzleflash.fx
Normal file
1045
muzzleflash.fx
Normal file
File diff suppressed because it is too large
Load Diff
2901
normalmapped.fx
Normal file
2901
normalmapped.fx
Normal file
File diff suppressed because it is too large
Load Diff
3045
objectsallied.fx
Normal file
3045
objectsallied.fx
Normal file
File diff suppressed because it is too large
Load Diff
3068
objectsalliedtread.fx
Normal file
3068
objectsalliedtread.fx
Normal file
File diff suppressed because it is too large
Load Diff
2382
objectschronorift.fx
Normal file
2382
objectschronorift.fx
Normal file
File diff suppressed because it is too large
Load Diff
5242
objectsfactionfrozen.fx
Normal file
5242
objectsfactionfrozen.fx
Normal file
File diff suppressed because it is too large
Load Diff
2117
objectsformationpreview.fx
Normal file
2117
objectsformationpreview.fx
Normal file
File diff suppressed because it is too large
Load Diff
5185
objectsfrozen.fx
Normal file
5185
objectsfrozen.fx
Normal file
File diff suppressed because it is too large
Load Diff
3024
objectsgeneric.fx
Normal file
3024
objectsgeneric.fx
Normal file
File diff suppressed because it is too large
Load Diff
3160
objectsgenericlightmap.fx
Normal file
3160
objectsgenericlightmap.fx
Normal file
File diff suppressed because it is too large
Load Diff
2348
objectsironcurtain.fx
Normal file
2348
objectsironcurtain.fx
Normal file
File diff suppressed because it is too large
Load Diff
3045
objectsjapan.fx
Normal file
3045
objectsjapan.fx
Normal file
File diff suppressed because it is too large
Load Diff
3024
objectsroads.fx
Normal file
3024
objectsroads.fx
Normal file
File diff suppressed because it is too large
Load Diff
3045
objectssoviet.fx
Normal file
3045
objectssoviet.fx
Normal file
File diff suppressed because it is too large
Load Diff
1464
objectsterrain.fx
Normal file
1464
objectsterrain.fx
Normal file
File diff suppressed because it is too large
Load Diff
4267
objectstesla.fx
Normal file
4267
objectstesla.fx
Normal file
File diff suppressed because it is too large
Load Diff
165
occlusion.fx
Normal file
165
occlusion.fx
Normal 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;
|
||||
}
|
||||
}
|
||||
|
983
oceandisplacement.fx
Normal file
983
oceandisplacement.fx
Normal 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
1252
oceannovertextexture.fx
Normal file
File diff suppressed because it is too large
Load Diff
447
outlines.fx
Normal file
447
outlines.fx
Normal 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
2022
postfx_bloom.fx
Normal file
File diff suppressed because it is too large
Load Diff
189
postfx_distortion.fx
Normal file
189
postfx_distortion.fx
Normal 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
116
postfx_lineardepth.fx
Normal 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
354
postfx_lookuptable.fx
Normal 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
197
postfx_msaa.fx
Normal 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
465
rain.fx
Normal 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
707
render2d.fx
Normal 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
340
riverreflection.fx
Normal 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
651
riverwater.fx
Normal 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
486
rotateenvironmentmap.fx
Normal 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
184
shadow.fx
Normal 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
182
simple.fx
Normal 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
203
simplest.fx
Normal 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
756
stream.fx
Normal 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
326
swarmparticle.fx
Normal 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
6054
terrain.fx
Normal file
File diff suppressed because it is too large
Load Diff
220
terraintracks.fx
Normal file
220
terraintracks.fx
Normal 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;
|
||||
}
|
||||
}
|
||||
|
286
trail.fx
Normal file
286
trail.fx
Normal 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;
|
||||
}
|
||||
}
|
||||
|
1692
treesway.fx
Normal file
1692
treesway.fx
Normal file
File diff suppressed because it is too large
Load Diff
814
underwaterdeferred.fx
Normal file
814
underwaterdeferred.fx
Normal 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
157
video.fx
Normal 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
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user