}; #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 _13 = dot(float3(2.98999995e-01, 5.87000012e-01, 1.14000000e-01), color); return _13; } #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 _21 = vid == 2; #line 87 float _24 = _21 ? 2.00000000e+00 : 0.00000000e+00; #line 87 o.uv[0] = _24; #line 88 bool _26 = vid == 1; #line 88 float _29 = _26 ? 2.00000000e+00 : 0.00000000e+00; #line 88 o.uv[1] = _29; #line 89 float2 _32 = o.uv * float2(2.00000000e+00, -2.00000000e+00); #line 89 float2 _34 = _32 + float2(-1.00000000e+00, 1.00000000e+00); #line 89 float4 _39 = float4(_34.x, _34.y, 0.00000000e+00, 1.00000000e+00); #line 89 o.pos = _39; 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 _45; #line 95 _45 = vid; #line 95 S__VSOut _46 = F__VSMain(_45); #line 95 S__VSOut o_47 = _46; #line 96 position = o_47.pos; #line 97 texcoord = o_47.uv; return; } #line 46 "NvTiltShift.fx" float4 F__tilt_shift_pass( #line 46 in S__VSOut i, #line 46 in int dir) { #line 48 float _56 = radians(g_sldAxis); #line 48 float tsAngle = _56; #line 49 float _58 = cos(tsAngle); #line 49 float _59 = sin(tsAngle); #line 49 float _60 = -_59; #line 49 float _61 = sin(tsAngle); #line 49 float _62 = cos(tsAngle); #line 49 float2x2 _63 = float2x2(_58, _60, _61, _62); #line 49 float2x2 tsMat = _63; #line 51 bool _66 = captureState == 3; #line 51 float2 _70 = lerp(tileUV.xy, tileUV.zw, i.uv); #line 51 float2 _73 = _66.xx ? _70 : i.uv; #line 51 float2 global_uv = _73; #line 53 float2 _76 = global_uv * float2(2.00000000e+00, 2.00000000e+00); #line 53 float2 _78 = _76 - float2(1.00000000e+00, 1.00000000e+00); #line 53 float2 tscoord = _78; #line 54 float _82 = 1.00000000e+00 / _1.y; #line 54 float _84 = ((float)((int)_1.x)) * _82; #line 54 float _86 = tscoord.x / _84; #line 54 tscoord[0] = _86; #line 55 float2 _87 = mul(tscoord, tsMat); #line 55 tscoord = _87; #line 56 float _90 = 1.00000000e+00 / _1.y; #line 56 float _92 = ((float)((int)_1.x)) * _90; #line 56 float _94 = tscoord.x * _92; #line 56 tscoord[0] = _94; #line 58 float _96 = abs(tscoord.y); #line 58 float _97 = pow(_96, g_sldCurve); #line 58 float intensity = _97; #line 59 bool _100 = !((bool)dir); #line 59 float2 _103 = float2(((float)dir), ((float)_100)); #line 59 float2 blur_axis = _103; #line 62 float _105 = intensity * g_sldBlur; #line 62 float2 gaussian_size_pixels = _105.xx; #line 66 float2 _110 = tileUV.zw - tileUV.xy; #line 66 float2 _111 = rcp(_110); #line 66 float2 _112 = gaussian_size_pixels * _111; #line 66 gaussian_size_pixels = _112; #line 71 float _113 = dot(blur_axis, gaussian_size_pixels); #line 71 float gaussian_size_to_use = _113; #line 75 float _115 = gaussian_size_to_use * gaussian_size_to_use; #line 75 float _117 = _115 + 1.00000005e-03; #line 75 float _118 = rcp(_117); #line 75 float _120 = -2.00000000e+00 * _118; #line 75 float k = _120; #line 76 float _122 = ceil(gaussian_size_to_use); #line 76 int steps = ((int)_122); #line 78 float4 _126 = V__NV__ColorInput.t.Sample(V__NV__ColorInput.s, i.uv); #line 78 float4 original = _126; #line 80 float4 _132 = float4(original.xyz.x, original.xyz.y, original.xyz.z, 1.00000000e+00); #line 80 float4 _134 = _132 * float4(5.00000000e-01, 5.00000000e-01, 5.00000000e-01, 5.00000000e-01); #line 80 float4 blurred = _134; #line 82 float s = 1.00000000e+00; #line 82 bool _144 = s <= ((float)steps); #line 82 while (_144) { { #line 84 float _148 = s * s; #line 84 float _149 = _148 * k; #line 84 float _150 = exp(_149); #line 84 float w = _150; #line 85 float _153 = 2.00000000e+00 * s; #line 85 float _155 = _153 - 5.00000000e-01; #line 85 float offset = _155; #line 86 float2 _158 = blur_axis * offset.xx; #line 86 float _161 = 1.00000000e+00 / _1.x; #line 86 float _164 = 1.00000000e+00 / _1.y; #line 86 float2 _165 = float2(_161, _164); #line 86 float2 _166 = _158 * _165; #line 86 float2 _168 = i.uv + _166; #line 86 float4 _173 = float4(_168.x, _168.y, 0.00000000e+00, 0.00000000e+00); #line 86 float4 _174 = V__NV__ColorInput.t.SampleLevel(V__NV__ColorInput.s, _173.xy, _173.w); #line 86 float4 _179 = float4(_174.xyz.x, _174.xyz.y, _174.xyz.z, 1.00000000e+00); #line 86 float4 _181 = _179 * w.xxxx; #line 86 float4 _182 = blurred + _181; #line 86 blurred = _182; #line 87 float2 _184 = blur_axis * offset.xx; #line 87 float _187 = 1.00000000e+00 / _1.x; #line 87 float _190 = 1.00000000e+00 / _1.y; #line 87 float2 _191 = float2(_187, _190); #line 87 float2 _192 = _184 * _191; #line 87 float2 _194 = i.uv - _192; #line 87 float4 _199 = float4(_194.x, _194.y, 0.00000000e+00, 0.00000000e+00); #line 87 float4 _200 = V__NV__ColorInput.t.SampleLevel(V__NV__ColorInput.s, _199.xy, _199.w); #line 87 float4 _205 = float4(_200.xyz.x, _200.xyz.y, _200.xyz.z, 1.00000000e+00); #line 87 float4 _207 = _205 * w.xxxx; #line 87 float4 _208 = blurred + _207; #line 87 blurred = _208; } float _145 = s; #line 82 float _147 = _145 + 1.00000000e+00; #line 82 s = _147; #line 82 _144 = s <= ((float)steps); } #line 89 float4 _210 = blurred / blurred.w.xxxx; #line 89 blurred = _210; #line 91 float _213 = blurred.w * 4.00000000e+00; #line 91 float _214 = saturate(_213); #line 91 float4 _216 = lerp(original, blurred, _214.xxxx); return _216; } #line 94 void F__PSMain1( #line 94 in S__VSOut i, #line 94 out float4 color : SV_TARGET) { #line 96 S__VSOut _221; #line 96 int _222; #line 96 _221 = i; #line 96 _222 = 0; #line 96 float4 _224 = F__tilt_shift_pass(_221, _222); #line 96 color = _224; return; } #line 98 void F__PSMain2( #line 98 in S__VSOut i, #line 98 out float4 color : SV_TARGET) { #line 100 S__VSOut _229; #line 100 int _230; #line 100 _229 = i; #line 100 _230 = 1; #line 100 float4 _232 = F__tilt_shift_pass(_229, _230); #line 100 color = _232; return; }