lorInputTex : register(t1); #line 29 Texture2D __V__NV__DepthInputTex : register(t2); Texture2D __srgbV__NV__DepthInputTex : register(t3); SamplerState __s0 : register(s0); #line 30 static const __sampler2D V__NV__ColorInput = { __V__NV__ColorInputTex, __s0 }; #line 31 static const __sampler2D V__NV__DepthInput = { __V__NV__DepthInputTex, __s0 }; #line 71 float F__NV__GetLuma( #line 71 in float3 color) { #line 74 float _14 = dot(float3(2.98999995e-01, 5.87000012e-01, 1.14000000e-01), color); return _14; } #line 78 struct S__VSOut { float4 pos : SV_POSITION; float2 uv : TEXCOORD0; }; #line 84 S__VSOut F__VSMain( #line 84 in uint vid : SV_VERTEXID) { #line 86 S__VSOut o = (S__VSOut)0; #line 87 bool _22 = vid == 2; #line 87 float _25 = _22 ? 2.00000000e+00 : 0.00000000e+00; #line 87 o.uv[0] = _25; #line 88 bool _27 = vid == 1; #line 88 float _30 = _27 ? 2.00000000e+00 : 0.00000000e+00; #line 88 o.uv[1] = _30; #line 89 float2 _33 = o.uv * float2(2.00000000e+00, -2.00000000e+00); #line 89 float2 _35 = _33 + float2(-1.00000000e+00, 1.00000000e+00); #line 89 float4 _40 = float4(_35.x, _35.y, 0.00000000e+00, 1.00000000e+00); #line 89 o.pos = _40; return o; } #line 93 void F__VSMainOut( #line 93 in uint vid : SV_VERTEXID, #line 93 out float4 position : SV_POSITION, #line 93 out float2 texcoord : TEXCOORD0) { #line 95 uint _46; #line 95 _46 = vid; #line 95 S__VSOut _47 = F__VSMain(_46); #line 95 S__VSOut o_48 = _47; #line 96 position = o_48.pos; #line 97 texcoord = o_48.uv; return; } #line 51 "Details.fx" Texture2D __V__LargeBlurTex : register(t4); Texture2D __srgbV__LargeBlurTex : register(t5); #line 52 static const __sampler2D V__sLargeBlurTex = { __V__LargeBlurTex, __s0 }; #line 54 float4 F__gaussian( #line 54 in __sampler2D sinput, #line 54 in float2 uv, #line 54 in int nSteps, #line 54 in float2 axis) { #line 56 int _59 = nSteps * nSteps; #line 56 float _62 = -1.35914099e+00 / ((float)_59); #line 56 float norm = _62; #line 57 float4 _64 = sinput.t.Sample(sinput.s, uv); #line 57 float4 _66 = _64 * float4(5.00000000e-01, 5.00000000e-01, 5.00000000e-01, 5.00000000e-01); #line 57 float4 accum = _66; #line 58 float _70 = 1.00000000e+00 / _1.x; #line 58 float _73 = 1.00000000e+00 / _1.y; #line 58 float2 _74 = float2(_70, _73); #line 58 float2 _75 = axis * _74; #line 58 float2 offsetinc = _75; #line 60 float divisor = 5.00000000e-01; #line 63 float iStep = 1.00000000e+00; #line 63 bool _87 = iStep <= ((float)nSteps); #line 63 [loop] while (_87) { { #line 67 float _92 = iStep * 2.00000000e+00; #line 67 float _94 = _92 - 5.00000000e-01; #line 67 float tapOffset = _94; #line 68 float _96 = iStep * iStep; #line 68 float _97 = _96 * norm; #line 68 float _98 = exp(_97); #line 68 float tapWeight = _98; #line 70 float2 _101 = offsetinc * tapOffset.xx; #line 70 float2 _102 = uv + _101; #line 70 float4 _107 = float4(_102.x, _102.y, 0.00000000e+00, 0.00000000e+00); #line 70 float4 _108 = sinput.t.SampleLevel(sinput.s, _107.xy, _107.w); #line 70 float4 _110 = _108 * tapWeight.xxxx; #line 70 float4 _111 = accum + _110; #line 70 accum = _111; #line 71 float2 _113 = offsetinc * tapOffset.xx; #line 71 float2 _114 = uv - _113; #line 71 float4 _119 = float4(_114.x, _114.y, 0.00000000e+00, 0.00000000e+00); #line 71 float4 _120 = sinput.t.SampleLevel(sinput.s, _119.xy, _119.w); #line 71 float4 _122 = _120 * tapWeight.xxxx; #line 71 float4 _123 = accum + _122; #line 71 accum = _123; #line 72 float _124 = divisor + tapWeight; #line 72 divisor = _124; } float _88 = iStep; #line 63 float _90 = _88 + 1.00000000e+00; #line 63 iStep = _90; #line 63 _87 = iStep <= ((float)nSteps); } #line 74 float _126 = 2.00000000e+00 * divisor; #line 74 float4 _128 = accum / _126.xxxx; #line 74 accum = _128; return accum; } #line 78 float4 F__box( #line 78 in __sampler2D sinput, #line 78 in float2 uv) { #line 92 float4 blur = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 93 int i = 0; #line 93 bool _143 = i < 8; #line 93 while (_143) { { const float3 _147[8] = { float3(5.00000000e-01, 1.50000000e+00, 1.50000000e+00), float3(1.50000000e+00, -5.00000000e-01, 1.50000000e+00), float3(-5.00000000e-01, -1.50000000e+00, 1.50000000e+00), float3(-1.50000000e+00, 5.00000000e-01, 1.50000000e+00), float3(2.50000000e+00, 1.50000000e+00, 1.00000000e+00), float3(1.50000000e+00, -2.50000000e+00, 1.00000000e+00), float3(-2.50000000e+00, -1.50000000e+00, 1.00000000e+00), float3(-1.50000000e+00, 2.50000000e+00, 1.00000000e+00) }; #line 95 float3 _148[8] = _147; #line 95 float _151 = 1.00000000e+00 / _1.x; #line 95 float _154 = 1.00000000e+00 / _1.y; #line 95 float2 _155 = float2(_151, _154); #line 95 float2 _157 = _148[i].xy * _155; #line 95 float2 _158 = uv + _157; #line 95 float4 _163 = float4(_158.x, _158.y, 0.00000000e+00, 0.00000000e+00); #line 95 float4 _164 = sinput.t.SampleLevel(sinput.s, _163.xy, _163.w); const float3 _165[8] = { float3(5.00000000e-01, 1.50000000e+00, 1.50000000e+00), float3(1.50000000e+00, -5.00000000e-01, 1.50000000e+00), float3(-5.00000000e-01, -1.50000000e+00, 1.50000000e+00), float3(-1.50000000e+00, 5.00000000e-01, 1.50000000e+00), float3(2.50000000e+00, 1.50000000e+00, 1.00000000e+00), float3(1.50000000e+00, -2.50000000e+00, 1.00000000e+00), float3(-2.50000000e+00, -1.50000000e+00, 1.00000000e+00), float3(-1.50000000e+00, 2.50000000e+00, 1.00000000e+00) }; #line 95 float3 _166[8] = _165; #line 95 float4 _168 = _164 * _166[i].z.xxxx; #line 95 float4 _169 = blur + _168; #line 95 blur = _169; } int _144 = i; #line 93 int _146 = _144 + 1; #line 93 i = _146; #line 93 _143 = i < 8; } #line 98 float4 _171 = blur / float4(1.00000000e+01, 1.00000000e+01, 1.00000000e+01, 1.00000000e+01); #line 98 blur = _171; return blur; } #line 102 float F__getluma( #line 102 in float3 color) { #line 104 float _176 = dot(color, float3(2.98999995e-01, 5.87000012e-01, 1.14000000e-01)); return _176; } #line 107 void F__PSGaussian1( #line 107 in S__VSOut i, #line 107 out float4 color : SV_TARGET) { #line 109 float2 _181; #line 109 int _182; #line 109 float2 _183; #line 109 _181 = i.uv; #line 109 _182 = 15; #line 109 _183 = float2(1.00000000e+00, 0.00000000e+00); #line 109 float4 _187 = F__gaussian(V__NV__ColorInput, _181, _182, _183); #line 109 color = _187; return; } #line 111 void F__PSGaussian2AndBlend( #line 111 in S__VSOut i, #line 111 out float4 color : SV_TARGET) { #line 113 float2 _192; #line 113 int _193; #line 113 float2 _194; #line 113 _192 = i.uv; #line 113 _193 = 15; #line 113 _194 = float2(0.00000000e+00, 1.00000000e+00); #line 113 float4 _198 = F__gaussian(V__sLargeBlurTex, _192, _193, _194); #line 113 float4 largeblur = _198; #line 114 float2 _200; #line 114 _200 = i.uv; #line 114 float4 _202 = F__box(V__NV__ColorInput, _200); #line 114 float4 smallblur = _202; #line 115 float4 _205 = V__NV__ColorInput.t.Sample(V__NV__ColorInput.s, i.uv); #line 115 color = _205; #line 117 float3 _206; #line 117 _206 = color.xyz; #line 117 float _208 = F__getluma(_206); #line 117 float a = _208; #line 118 float3 _210; #line 118 _210 = largeblur.xyz; #line 118 float _212 = F__getluma(_210); #line 118 float b = _212; #line 119 float3 _214; #line 119 _214 = smallblur.xyz; #line 119 float _216 = F__getluma(_214); #line 119 float c = _216; #line 122 float _218 = sqrt(a); #line 122 float sqrta = _218; #line 123 float _221 = 2.00000000e+00 * a; #line 123 float _222 = _221 * b; #line 123 float _223 = _222 - a; #line 123 float _225 = 2.00000000e+00 * b; #line 123 float _226 = _223 - _225; #line 123 float _228 = _226 + 2.00000000e+00; #line 123 float _229 = sqrta * _228; #line 123 float _231 = 2.00000000e+00 * sqrta; #line 123 float _232 = _231 * b; #line 123 float _234 = 2.00000000e+00 * b; #line 123 float _235 = _232 - _234; #line 123 float _237 = _235 + 1.00000000e+00; #line 123 bool _239 = b > 5.00000000e-01; #line 123 float _241 = lerp(_229, _237, ((float)_239)); #line 123 float _242 = sqrta * _241; #line 123 float HDRToning = _242; #line 124 float _245 = a + 9.99999997e-07; #line 124 float4 _247 = color / _245.xxxx; #line 124 float _248 = lerp(a, HDRToning, g_sldHDR); #line 124 float4 _250 = _247 * _248.xxxx; #line 124 color = _250; #line 127 float3 _253 = color.xyz - smallblur.xyz; #line 127 float3 _254; #line 127 _254 = _253; #line 127 float _255 = F__getluma(_254); #line 127 float Sharpen = _255; #line 128 float _259 = lerp(2.50000000e-01, 6.00000024e-01, g_sldSharpen); #line 128 float sharplimit = _259; #line 129 float _261 = -sharplimit; #line 129 float _262 = clamp(Sharpen, _261, sharplimit); #line 129 Sharpen = _262; #line 130 float3 _265 = color.xyz / a.xxx; #line 130 float _266 = a + Sharpen; #line 130 float _267 = lerp(a, _266, g_sldSharpen); #line 130 float3 _269 = _265 * _267.xxx; #line 130 color.xyz = _269; #line 133 float _271 = 5.00000000e-01 + a; #line 133 float _272 = _271 - b; #line 133 float Clarity = _272; #line 134 float _275 = 2.00000000e+00 * Clarity; #line 134 float _277 = 2.00000000e+00 * Clarity; #line 134 float _279 = 1.00000000e+00 - _277; #line 134 float _280 = a * _279; #line 134 float _281 = _275 + _280; #line 134 float _283 = 1.00000000e+00 - Clarity; #line 134 float _285 = 2.00000000e+00 * _283; #line 134 float _287 = 2.00000000e+00 * Clarity; #line 134 float _289 = _287 - 1.00000000e+00; #line 134 float _290 = rsqrt(a); #line 134 float _291 = _289 * _290; #line 134 float _292 = _285 + _291; #line 134 bool _293 = a > b; #line 134 float _295 = lerp(_281, _292, ((float)_293)); #line 134 Clarity = _295; #line 135 float _297 = lerp(1.00000000e+00, Clarity, g_sldClarity); #line 135 float3 _300 = color.xyz * _297.xxx; #line 135 color.xyz = _300; #line 138 float3 _303 = float3(1.00000000e+00, 1.00000000e+00, 1.00000000e+00) - color.xyz; #line 138 float3 _306 = largeblur.xyz * g_sldBloom.xxx; #line 138 float3 _308 = float3(1.00000000e+00, 1.00000000e+00, 1.00000000e+00) - _306; #line 138 float3 _309 = _303 * _308; #line 138 float3 _311 = float3(1.00000000e+00, 1.00000000e+00, 1.00000000e+00) - _309; #line 138 color.xyz = _311; return; }