//vignette when camera zooms in on picture frames-- disabled
// ---- Created with 3Dmigoto v1.2.31 on Sun Feb 21 00:22:21 2016

cbuffer _Globals : register(b0)
{
  float4x4 World : packoffset(c0);
  bool PhyreContextSwitches : packoffset(c4);
  bool PhyreMaterialSwitches : packoffset(c4.y);
  float MaterialBlendSharpness : packoffset(c4.z) = {13};
  float SpecularCubeMapMultiplier : packoffset(c4.w) = {1};
  float AlphaThreshold : packoffset(c5) = {0};
  float MaterialGlow : packoffset(c5.y) = {0};
  float SpecularCavity : packoffset(c5.z) = {0};
  float SpecularRoughness : packoffset(c5.w) = {0.319999993};
  float2 UVOffset : packoffset(c6) = {0,0};
  float2 UVScaleRot : packoffset(c6.z) = {1,0};
  float2 UVOffset2 : packoffset(c7) = {0,0};
  float2 UVScaleRot2 : packoffset(c7.z) = {1,0};
  float3 DiffuseTint : packoffset(c8) = {1,1,1};
  float3 DiffuseTint2 : packoffset(c9) = {1,1,1};
  float DiffuseHueShift : packoffset(c9.w) = {0};
  float AlphaScale : packoffset(c10) = {1};
  float DetailNormalScale : packoffset(c10.y) = {5};
  float DetailNormalIntensity : packoffset(c10.z) = {1};
  float3 SubsurfaceColor : packoffset(c11) = {0,0,0};
}

cbuffer SceneWideParameterConstantBuffer : register(b1)
{
  float4x4 ViewProjection : packoffset(c0);
  float4x4 View : packoffset(c4);
  float4x4 Projection : packoffset(c8);
  float4x4 ViewInverse : packoffset(c12);
  float3 EyePosition : packoffset(c16);
  float cameraNearTimesFar : packoffset(c16.w);
  float3 GlobalAmbientColor : packoffset(c17);
  float cameraFarMinusNear : packoffset(c17.w);
  float2 cameraNearFar : packoffset(c18);
  float2 ViewportWidthHeight : packoffset(c18.z);
  float2 screenWidthHeightInv : packoffset(c19);
  float2 screenWidthHeight : packoffset(c19.z);
  float4x4 PrevViewProj : packoffset(c20);
  float4 Jitter : packoffset(c24);
  float2 InvProjXY : packoffset(c25);
  uint PointLightCount : packoffset(c25.z);
  uint SpotLightCount : packoffset(c25.w);
  uint FoliageSpheresCount : packoffset(c26);
  float time : packoffset(c26.y);
  float2 CubeFadeValues : packoffset(c26.z);
  float4 FogParameters0 : packoffset(c27);
  float4 FogParameters1 : packoffset(c28);
  float4 FogParameters2 : packoffset(c29);
  float4 FogParameters3 : packoffset(c30);
  float3 CubeSunDir : packoffset(c31);
  float padding0 : packoffset(c31.w);
  float3 CubeSunColor : packoffset(c32);
  float padding1 : packoffset(c32.w);
  float2 WindDirection : packoffset(c33);
}

SamplerState DiffuseTextureSampler_s : register(s0);
Texture2D<float4> DiffuseTexture : register(t0);


// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main( 
  float4 v0 : SV_POSITION0,
  float4 v1 : TEXCOORD0,
  float4 v2 : TEXCOORD1,
  float3 v3 : TEXCOORD2,
  out float4 o0 : SV_TARGET0)
{
  float4 r0,r1,r2,r3,r4,r5;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.x = -FogParameters2.y + EyePosition.z;
  r0.yzw = -EyePosition.xyz + v2.xyz;
  r1.x = cmp(9.99999975e-005 < abs(r0.w));
  r1.x = r1.x ? r0.w : 9.99999975e-005;
  r0.y = dot(r0.yzw, r0.yzw);
  r0.y = sqrt(r0.y);
  r0.x = r1.x + r0.x;
  r0.z = max(9.99999975e-005, FogParameters2.x);
  r0.x = -r0.z * r0.x;
  r0.z = r0.z * r1.x;
  r0.x = exp2(r0.x);
  r0.w = min(100, r0.z);
  r0.w = exp2(r0.w);
  r0.w = -1 + r0.w;
  r0.x = r0.w * r0.x;
  r0.x = r0.x / r0.z;
  r0.z = -FogParameters2.z + r0.y;
  r0.y = -FogParameters0.x + r0.y;
  r0.z = max(0, r0.z);
  r0.z = FogParameters2.w * -r0.z;
  r0.x = r0.z * r0.x;
  r0.x = exp2(r0.x);
  r0.x = min(1, r0.x);
  r0.x = 1 + -r0.x;
  r0.x = min(FogParameters3.x, r0.x);
  r0.z = FogParameters0.y + -FogParameters0.x;
  r0.z = 1 / r0.z;
  r0.y = saturate(r0.y * r0.z);
  r0.z = r0.y * -2 + 3;
  r0.y = r0.y * r0.y;
  r0.y = r0.z * r0.y;
  r1.w = 1;
  r2.xyzw = DiffuseTexture.Sample(DiffuseTextureSampler_s, v1.xy).xyzw;
  r3.w = AlphaScale * r2.w;
  r2.xyz = log2(abs(r2.xyz));
  r2.xyz = float3(2.20000005,2.20000005,2.20000005) * r2.xyz;
  r3.xyz = exp2(r2.xyz);
  r0.z = MaterialGlow * 10 + 1;
  r1.xyz = DiffuseTint.xyz * r0.zzz;
  r2.xyzw = r3.xyzw * r1.xyzw;
  r0.z = dot(r2.xyz, float3(0.298999995,0.587000012,0.114));
  r4.xyz = -r1.xyz * r3.xyz + r0.zzz;
  r4.xyz = FogParameters0.www * r4.xyz + r2.xyz;
  r5.xyz = FogParameters1.xyz + -r4.xyz;
  r4.xyz = FogParameters1.www * r5.xyz + r4.xyz;
  r1.xyz = -r1.xyz * r3.xyz + r4.xyz;
  r0.yzw = r0.yyy * r1.xyz + r2.xyz;
  o0.w = r2.w;
  r1.xyz = FogParameters3.yzw + -r0.yzw;
  o0.xyz = r0.xxx * r1.xyz + r0.yzw;
o0 = 0;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20546
//
//   using 3Dmigoto v1.2.31 on Sun Feb 21 00:22:21 2016
//
//
// Buffer Definitions: 
//
// cbuffer $Globals
// {
//
//   float4x4 World;                    // Offset:    0 Size:    64 [unused]
//   bool PhyreContextSwitches;         // Offset:   64 Size:     4 [unused]
//   bool PhyreMaterialSwitches;        // Offset:   68 Size:     4 [unused]
//   float MaterialBlendSharpness;      // Offset:   72 Size:     4 [unused]
//      = 0x41500000 
//   float SpecularCubeMapMultiplier;   // Offset:   76 Size:     4 [unused]
//      = 0x3f800000 
//   float AlphaThreshold;              // Offset:   80 Size:     4 [unused]
//      = 0x00000000 
//   float MaterialGlow;                // Offset:   84 Size:     4
//      = 0x00000000 
//   float SpecularCavity;              // Offset:   88 Size:     4 [unused]
//      = 0x00000000 
//   float SpecularRoughness;           // Offset:   92 Size:     4 [unused]
//      = 0x3ea3d70a 
//   float2 UVOffset;                   // Offset:   96 Size:     8 [unused]
//      = 0x00000000 0x00000000 
//   float2 UVScaleRot;                 // Offset:  104 Size:     8 [unused]
//      = 0x3f800000 0x00000000 
//   float2 UVOffset2;                  // Offset:  112 Size:     8 [unused]
//      = 0x00000000 0x00000000 
//   float2 UVScaleRot2;                // Offset:  120 Size:     8 [unused]
//      = 0x3f800000 0x00000000 
//   float3 DiffuseTint;                // Offset:  128 Size:    12
//      = 0x3f800000 0x3f800000 0x3f800000 
//   float3 DiffuseTint2;               // Offset:  144 Size:    12 [unused]
//      = 0x3f800000 0x3f800000 0x3f800000 
//   float DiffuseHueShift;             // Offset:  156 Size:     4 [unused]
//      = 0x00000000 
//   float AlphaScale;                  // Offset:  160 Size:     4
//      = 0x3f800000 
//   float DetailNormalScale;           // Offset:  164 Size:     4 [unused]
//      = 0x40a00000 
//   float DetailNormalIntensity;       // Offset:  168 Size:     4 [unused]
//      = 0x3f800000 
//   float3 SubsurfaceColor;            // Offset:  176 Size:    12 [unused]
//      = 0x00000000 0x00000000 0x00000000 
//
// }
//
// cbuffer SceneWideParameterConstantBuffer
// {
//
//   float4x4 ViewProjection;           // Offset:    0 Size:    64 [unused]
//   float4x4 View;                     // Offset:   64 Size:    64 [unused]
//   float4x4 Projection;               // Offset:  128 Size:    64 [unused]
//   float4x4 ViewInverse;              // Offset:  192 Size:    64 [unused]
//   float3 EyePosition;                // Offset:  256 Size:    12
//   float cameraNearTimesFar;          // Offset:  268 Size:     4 [unused]
//   float3 GlobalAmbientColor;         // Offset:  272 Size:    12 [unused]
//   float cameraFarMinusNear;          // Offset:  284 Size:     4 [unused]
//   float2 cameraNearFar;              // Offset:  288 Size:     8 [unused]
//   float2 ViewportWidthHeight;        // Offset:  296 Size:     8 [unused]
//   float2 screenWidthHeightInv;       // Offset:  304 Size:     8 [unused]
//   float2 screenWidthHeight;          // Offset:  312 Size:     8 [unused]
//   float4x4 PrevViewProj;             // Offset:  320 Size:    64 [unused]
//   float4 Jitter;                     // Offset:  384 Size:    16 [unused]
//   float2 InvProjXY;                  // Offset:  400 Size:     8 [unused]
//   uint PointLightCount;              // Offset:  408 Size:     4 [unused]
//   uint SpotLightCount;               // Offset:  412 Size:     4 [unused]
//   uint FoliageSpheresCount;          // Offset:  416 Size:     4 [unused]
//   float time;                        // Offset:  420 Size:     4 [unused]
//   float2 CubeFadeValues;             // Offset:  424 Size:     8 [unused]
//   float4 FogParameters0;             // Offset:  432 Size:    16
//   float4 FogParameters1;             // Offset:  448 Size:    16
//   float4 FogParameters2;             // Offset:  464 Size:    16
//   float4 FogParameters3;             // Offset:  480 Size:    16
//   float3 CubeSunDir;                 // Offset:  496 Size:    12 [unused]
//   float padding0;                    // Offset:  508 Size:     4 [unused]
//   float3 CubeSunColor;               // Offset:  512 Size:    12 [unused]
//   float padding1;                    // Offset:  524 Size:     4 [unused]
//   float2 WindDirection;              // Offset:  528 Size:     8 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// DiffuseTextureSampler             sampler      NA          NA    0        1
// DiffuseTexture                    texture  float4          2d    0        1
// $Globals                          cbuffer      NA          NA    0        1
// SceneWideParameterConstantBuffer    cbuffer      NA          NA    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float       
// TEXCOORD                 0   xy          1     NONE   float   xy  
// TEXCOORD                 1   xyzw        2     NONE   float   xyz 
// TEXCOORD                 2   xyz         3     NONE   float       
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
//
ps_4_0
dcl_constantbuffer cb0[11], immediateIndexed
dcl_constantbuffer cb1[31], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyz
dcl_output o0.xyzw
dcl_temps 6
add r0.x, cb1[16].z, -cb1[29].y
add r0.yzw, v2.xxyz, -cb1[16].xxyz
lt r1.x, l(0.000100), |r0.w|
movc r1.x, r1.x, r0.w, l(0.000100)
dp3 r0.y, r0.yzwy, r0.yzwy
sqrt r0.y, r0.y
add r0.x, r0.x, r1.x
max r0.z, cb1[29].x, l(0.000100)
mul r0.x, r0.x, -r0.z
mul r0.z, r1.x, r0.z
exp r0.x, r0.x
min r0.w, r0.z, l(100.000000)
exp r0.w, r0.w
add r0.w, r0.w, l(-1.000000)
mul r0.x, r0.x, r0.w
div r0.x, r0.x, r0.z
add r0.z, r0.y, -cb1[29].z
add r0.y, r0.y, -cb1[27].x
max r0.z, r0.z, l(0.000000)
mul r0.z, -r0.z, cb1[29].w
mul r0.x, r0.x, r0.z
exp r0.x, r0.x
min r0.x, r0.x, l(1.000000)
add r0.x, -r0.x, l(1.000000)
min r0.x, r0.x, cb1[30].x
add r0.z, -cb1[27].x, cb1[27].y
div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
mul_sat r0.y, r0.z, r0.y
mad r0.z, r0.y, l(-2.000000), l(3.000000)
mul r0.y, r0.y, r0.y
mul r0.y, r0.y, r0.z
mov r1.w, l(1.000000)
sample r2.xyzw, v1.xyxx, t0.xyzw, s0
mul r3.w, r2.w, cb0[10].x
log r2.xyz, |r2.xyzx|
mul r2.xyz, r2.xyzx, l(2.200000, 2.200000, 2.200000, 0.000000)
exp r3.xyz, r2.xyzx
mad r0.z, cb0[5].y, l(10.000000), l(1.000000)
mul r1.xyz, r0.zzzz, cb0[8].xyzx
mul r2.xyzw, r1.xyzw, r3.xyzw
dp3 r0.z, r2.xyzx, l(0.299000, 0.587000, 0.114000, 0.000000)
mad r4.xyz, -r1.xyzx, r3.xyzx, r0.zzzz
mad r4.xyz, cb1[27].wwww, r4.xyzx, r2.xyzx
add r5.xyz, -r4.xyzx, cb1[28].xyzx
mad r4.xyz, cb1[28].wwww, r5.xyzx, r4.xyzx
mad r1.xyz, -r1.xyzx, r3.xyzx, r4.xyzx
mad r0.yzw, r0.yyyy, r1.xxyz, r2.xxyz
mov o0.w, r2.w
add r1.xyz, -r0.yzwy, cb1[30].yzwy
mad o0.xyz, r0.xxxx, r1.xyzx, r0.yzwy
ret 
// Approximately 51 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
