#line 42 "DOF.fx" float ui_fNearBlurCurve; #line 46 "DOF.fx" float ui_fShapeRadius; #line 46 "NvCommon.fxh" bool g_sldDepthInvertZ; #line 51 "NvCommon.fxh" bool g_sldDepthInvertY; #line 57 "DOF.fx" float4 tileUV; }; #line 28 "NvCommon.fxh" Texture2D __V__NV__ColorInputTex : register(t0); Texture2D __srgbV__NV__ColorInputTex : 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 56 float F__NV__GetLinearizedDepth( #line 56 in float2 uv) { #line 58 float _17 = 1.00000000e+00 - uv.y; #line 58 float _19 = g_sldDepthInvertY ? _17 : uv.y; #line 58 uv[1] = _19; #line 59 float4 _24 = float4(uv.x, uv.y, 0.00000000e+00, 0.00000000e+00); #line 59 float4 _25 = V__NV__DepthInput.t.SampleLevel(V__NV__DepthInput.s, _24.xy, _24.w); #line 59 float depth = _25.x; #line 60 float _29 = 1.00000000e+00 - depth; #line 60 float _30 = g_sldDepthInvertZ ? _29 : depth; #line 60 depth = _30; #line 65 float _32 = depth * 9.99000000e+02; #line 65 float _34 = 1.00000000e+03 - _32; #line 65 float _35 = depth / _34; #line 65 depth = _35; return depth; } #line 71 float F__NV__GetLuma( #line 71 in float3 color) { #line 74 float _40 = dot(float3(2.98999995e-01, 5.87000012e-01, 1.14000000e-01), color); return _40; } #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 _48 = vid == 2; #line 87 float _51 = _48 ? 2.00000000e+00 : 0.00000000e+00; #line 87 o.uv[0] = _51; #line 88 bool _53 = vid == 1; #line 88 float _56 = _53 ? 2.00000000e+00 : 0.00000000e+00; #line 88 o.uv[1] = _56; #line 89 float2 _59 = o.uv * float2(2.00000000e+00, -2.00000000e+00); #line 89 float2 _61 = _59 + float2(-1.00000000e+00, 1.00000000e+00); #line 89 float4 _66 = float4(_61.x, _61.y, 0.00000000e+00, 1.00000000e+00); #line 89 o.pos = _66; 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 _72; #line 95 _72 = vid; #line 95 S__VSOut _73 = F__VSMain(_72); #line 95 S__VSOut o_74 = _73; #line 96 position = o_74.pos; #line 97 texcoord = o_74.uv; return; } #line 59 "DOF.fx" Texture2D __V__CommonTex : register(t4); Texture2D __srgbV__CommonTex : register(t5); #line 60 static const __sampler2D V__sCommonTex = { __V__CommonTex, __s0 }; #line 62 float F__CircleOfConfusion( #line 62 in float2 uv, #line 62 in bool aggressiveLeakReduction) { #line 64 float2 depthdata = float2(0.00000000e+00, 0.00000000e+00); #line 65 float scenecoc = 0.00000000e+00; #line 67 float2 _88; #line 67 _88 = uv; #line 67 float _89 = F__NV__GetLinearizedDepth(_88); #line 67 depthdata[0] = _89; #line 70 [branch] if (aggressiveLeakReduction) { #line 72 float _95 = 1.00000000e+00 / _1.x; #line 72 float _98 = 1.00000000e+00 / _1.y; #line 72 float2 _99 = float2(_95, _98); #line 72 float3 _103 = float3(_99.x, _99.y, 0.00000000e+00); #line 72 float3 neighbourOffsets = _103; #line 74 float2 _106 = uv - neighbourOffsets.xz; #line 74 float2 _107; #line 74 _107 = _106; #line 74 float _108 = F__NV__GetLinearizedDepth(_107); #line 75 float2 _110 = uv + neighbourOffsets.xz; #line 75 float2 _111; #line 75 _111 = _110; #line 75 float _112 = F__NV__GetLinearizedDepth(_111); #line 76 float2 _114 = uv - neighbourOffsets.zy; #line 76 float2 _115; #line 76 _115 = _114; #line 76 float _116 = F__NV__GetLinearizedDepth(_115); #line 77 float2 _118 = uv + neighbourOffsets.zy; #line 77 float2 _119; #line 77 _119 = _118; #line 77 float _120 = F__NV__GetLinearizedDepth(_119); #line 74 float4 _121 = float4(_108, _112, _116, _120); #line 74 float4 neighbourDepths = _121; #line 79 float _125 = min(neighbourDepths.x, neighbourDepths.y); #line 79 float _128 = min(neighbourDepths.z, neighbourDepths.w); #line 79 float _129 = min(_125, _128); #line 79 float neighbourMin = _129; #line 80 float _132 = min(neighbourMin, depthdata.x); #line 80 float _135 = lerp(_132, depthdata.x, 1.00000005e-03); #line 80 depthdata[0] = _135; } #line 83 float _136 = ui_fFocusDepth * ui_fFocusDepth; #line 83 float _137 = _136 * ui_fFocusDepth; #line 83 depthdata[1] = _137; #line 86 bool _143 = depthdata.x < depthdata.y; #line 86 [branch] if (_143) { #line 88 float _146 = depthdata.x / depthdata.y; #line 88 float _148 = _146 - 1.00000000e+00; #line 88 scenecoc = _148; #line 89 float _150 = -5.00000000e-01 * ui_fNearBlurCurve; #line 89 float _151 = _150 * ui_fNearBlurCurve; #line 89 float _153 = _151 * 1.00000000e+02; #line 89 float _154 = exp2(_153); #line 89 float _155 = scenecoc * _154; #line 89 scenecoc = _155; } else { #line 93 float _158 = depthdata.x - depthdata.y; #line 93 float _160 = ui_fFarBlurCurve * 1.00000000e+01; #line 93 float _162 = pow(_160, 1.50000000e+00); #line 93 float _163 = exp2(_162); #line 93 float _165 = depthdata.y * _163; #line 93 float _167 = _165 - depthdata.y; #line 93 float _168 = _158 / _167; #line 93 scenecoc = _168; #line 94 float _169 = saturate(scenecoc); #line 94 scenecoc = _169; } #line 97 float _170 = abs(scenecoc); return _170; } #line 100 float4 F__PS_CoC2Alpha( #line 100 in S__VSOut IN) : SV_TARGET { #line 102 float4 _175 = V__NV__ColorInput.t.Sample(V__NV__ColorInput.s, IN.uv); #line 102 float4 color_176 = _175; #line 104 float _179 = 1.00000000e+00 / _1.x; #line 104 float _182 = 1.00000000e+00 / _1.y; #line 104 float2 _183 = float2(_179, _182); #line 104 float2 _185 = float2(1.50000000e+00, 5.00000000e-01) * _183; #line 105 float _188 = 1.00000000e+00 / _1.x; #line 105 float _191 = 1.00000000e+00 / _1.y; #line 105 float2 _192 = float2(_188, _191); #line 105 float2 _194 = float2(5.00000000e-01, -1.50000000e+00) * _192; #line 106 float _197 = 1.00000000e+00 / _1.x; #line 106 float _200 = 1.00000000e+00 / _1.y; #line 106 float2 _201 = float2(_197, _200); #line 106 float2 _203 = float2(-1.50000000e+00, -5.00000000e-01) * _201; #line 107 float _206 = 1.00000000e+00 / _1.x; #line 107 float _209 = 1.00000000e+00 / _1.y; #line 107 float2 _210 = float2(_206, _209); #line 107 float2 _212 = float2(-5.00000000e-01, 1.50000000e+00) * _210; #line 104 float2 _213[4] = { _185, _194, _203, _212 }; #line 104 float2 sampleOffsets[4] = _213; #line 109 float2 _215; #line 109 _215 = IN.uv; #line 109 float _217 = F__NV__GetLinearizedDepth(_215); #line 109 float centerDepth = _217; #line 110 float2 sampleCoord = float2(0.00000000e+00, 0.00000000e+00); #line 111 float _223 = 1.00000000e+00 / _1.x; #line 111 float _226 = 1.00000000e+00 / _1.y; #line 111 float2 _227 = float2(_223, _226); #line 111 float3 _231 = float3(_227.x, _227.y, 0.00000000e+00); #line 111 float3 neighbourOffsets_232 = _231; #line 112 float4 coccolor = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 115 int j = 0; #line 115 bool _243 = j < 4; #line 115 [loop] while (_243) { { #line 117 float2 _249 = IN.uv + sampleOffsets[j]; #line 117 sampleCoord.xy = _249; #line 118 float4 _254 = float4(sampleCoord.x, sampleCoord.y, 0.00000000e+00, 0.00000000e+00); #line 118 float4 _255 = V__NV__ColorInput.t.SampleLevel(V__NV__ColorInput.s, _254.xy, _254.w); #line 118 float3 sampleColor = _255.xyz; #line 120 float2 _260 = sampleCoord.xy + neighbourOffsets_232.xz; #line 120 float2 _261; #line 120 _261 = _260; #line 120 float _262 = F__NV__GetLinearizedDepth(_261); #line 121 float2 _265 = sampleCoord.xy - neighbourOffsets_232.xz; #line 121 float2 _266; #line 121 _266 = _265; #line 121 float _267 = F__NV__GetLinearizedDepth(_266); #line 122 float2 _270 = sampleCoord.xy + neighbourOffsets_232.zy; #line 122 float2 _271; #line 122 _271 = _270; #line 122 float _272 = F__NV__GetLinearizedDepth(_271); #line 123 float2 _275 = sampleCoord.xy - neighbourOffsets_232.zy; #line 123 float2 _276; #line 123 _276 = _275; #line 123 float _277 = F__NV__GetLinearizedDepth(_276); #line 120 float4 _278 = float4(_262, _267, _272, _277); #line 120 float4 sampleDepths = _278; #line 125 float _282 = min(sampleDepths.x, sampleDepths.y); #line 125 float _285 = min(sampleDepths.z, sampleDepths.w); #line 125 float _286 = min(_282, _285); #line 125 float sampleDepthMin = _286; #line 127 float _290 = max(sampleColor.x, sampleColor.y); #line 127 float _292 = max(_290, sampleColor.z); #line 127 float _294 = 1.00000000e+00 + _292; #line 127 float3 _296 = sampleColor / _294.xxx; #line 127 sampleColor = _296; #line 129 float _298 = centerDepth + 9.99999997e-07; #line 129 float _299 = rcp(_298); #line 129 float _300 = sampleDepthMin * _299; #line 129 float _302 = _300 + 1.00000005e-03; #line 129 float _303 = saturate(_302); #line 129 float sampleWeight = _303; #line 130 float3 _307 = sampleColor.xyz * sampleWeight.xxx; #line 130 float4 _311 = float4(_307.x, _307.y, _307.z, sampleWeight); #line 130 float4 _312 = coccolor + _311; #line 130 coccolor = _312; } int _244 = j; #line 115 int _246 = _244 + 1; #line 115 j = _246; #line 115 _243 = j < 4; } #line 133 float3 _315 = coccolor.xyz / coccolor.w.xxx; #line 133 coccolor.xyz = _315; #line 134 float _318 = max(coccolor.y, coccolor.z); #line 134 float _320 = max(coccolor.x, _318); #line 134 float _322 = 1.00000000e+00 - _320; #line 134 float3 _325 = coccolor.xyz / _322.xxx; #line 134 coccolor.xyz = _325; #line 136 float _328 = coccolor.w * 8.00000000e+00; #line 136 float _329 = saturate(_328); #line 136 float3 _333 = lerp(color_176.xyz, coccolor.xyz, _329.xxx); #line 136 color_176.xyz = _333; #line 137 float2 _334; #line 137 bool _335; #line 137 _334 = IN.uv; #line 137 _335 = true; #line 137 float _338 = F__CircleOfConfusion(_334, _335); #line 137 color_176[3] = _338; #line 138 float _341 = color_176.w * 5.00000000e-01; #line 138 float _343 = _341 + 5.00000000e-01; #line 138 float _344 = saturate(_343); #line 138 color_176[3] = _344; return color_176; } #line 142 void F__decompress_fake_hdr( #line 142 inout float3 color) { #line 144 float3 _350 = float3(1.00999999e+00, 1.00999999e+00, 1.00999999e+00) - color.xyz; #line 144 float3 _352 = color.xyz / _350; #line 144 color.xyz = _352; #line 145 float _354 = rcp(1.60000000e+01); #line 145 float3 _357 = color.xyz * _354.xxx; #line 145 color.xyz = _357; return; } #line 148 void F__compress_fake_hdr( #line 148 inout float3 color) { #line 150 float3 _363 = color.xyz * float3(1.60000000e+01, 1.60000000e+01, 1.60000000e+01); #line 150 color.xyz = _363; #line 151 float3 _365 = color * float3(1.00999999e+00, 1.00999999e+00, 1.00999999e+00); #line 151 float3 _367 = color + float3(1.00000000e+00, 1.00000000e+00, 1.00000000e+00); #line 151 float3 _368 = _365 / _367; #line 151 color = _368; return; } #line 154 float4 F__PS_Bokeh( #line 154 in S__VSOut IN) : SV_TARGET { #line 156 float _374 = 1.00000000e+00 / _1.x; #line 156 float _377 = 1.00000000e+00 / _1.y; #line 156 float2 _378 = float2(_374, _377); #line 156 float2 _381 = tileUV.zw - tileUV.xy; #line 156 float2 _382 = rcp(_381); #line 156 float2 _383 = _378 * _382; #line 156 float2 PixelSizeScaled = _383; #line 158 float4 BokehSum = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 159 float4 _388 = V__sCommonTex.t.Sample(V__sCommonTex.s, IN.uv); #line 159 BokehSum = _388; #line 160 float3 _389; #line 160 _389 = BokehSum.xyz; #line 160 F__decompress_fake_hdr(_389); #line 160 BokehSum.xyz = _389; #line 161 float weightSum = 1.00000000e+00; #line 162 float _396 = BokehSum.w * 2.00000000e+00; #line 162 float _398 = _396 - 1.00000000e+00; #line 162 float _399 = abs(_398); #line 162 float CoC = _399; #line 163 float _401 = CoC * ui_fShapeRadius; #line 163 float _403 = _401 * 2.50000000e+01; #line 163 float2 bokehRadiusScaled = _403.xx; #line 164 float _408 = tileUV.z - tileUV.x; #line 164 float _409 = rcp(_408); #line 164 float _411 = bokehRadiusScaled.x * _409; #line 164 float _413 = _411 * 2.00000003e-01; #line 164 float _414 = round(_413); #line 164 float _416 = _414 + 2.00000000e+00; #line 164 float _419 = dot(IN.pos.xy, float2(1.00000000e+00, 1.00000000e+00)); #line 164 float _421 = _419 % 2.00000000e+00; #line 164 float _423 = _421 * 5.00000000e-01; #line 164 float _424 = _416 + _423; #line 164 float nRings = _424; #line 166 float2 _427 = bokehRadiusScaled / nRings.xx; #line 166 bokehRadiusScaled = _427; #line 167 float2 _428 = bokehRadiusScaled * PixelSizeScaled; #line 167 bokehRadiusScaled = _428; #line 168 float _429 = CoC / nRings; #line 168 CoC = _429; #line 170 float2 currentVertex = float2(0.00000000e+00, 0.00000000e+00); #line 170 float2 nextVertex = float2(0.00000000e+00, 0.00000000e+00); #line 170 float2 matrixVector = float2(0.00000000e+00, 0.00000000e+00); #line 171 float _437 = radians(1.00000000e+01); #line 171 float _438; #line 171 float _439; #line 171 _438 = sin(_437), _439 = cos(_437); #line 171 currentVertex[1] = _438; #line 171 currentVertex[0] = _439; #line 172 float _442 = round(6.00000000e+00); #line 172 float _444 = 3.60000000e+02 / _442; #line 172 float _445 = radians(_444); #line 172 float _446; #line 172 float _447; #line 172 _446 = sin(_445), _447 = cos(_445); #line 172 matrixVector[0] = _446; #line 172 matrixVector[1] = _447; #line 174 float _450 = -matrixVector.x; #line 174 float2x2 _454 = float2x2(matrixVector.y, _450, matrixVector.x, matrixVector.y); #line 174 float2x2 rotMatrix = _454; #line 177 int iVertices = 0; #line 177 bool _464 = iVertices < 6; #line 177 [loop] while (_464) { { #line 179 float2 _469 = mul(currentVertex.xy, rotMatrix); #line 179 nextVertex = _469; #line 181 float iRings = 1.00000000e+00; #line 181 bool _477 = iRings <= nRings; #line 181 [loop] while (_477) { { #line 184 float iSamplesPerRing = 0.00000000e+00; #line 184 bool _488 = iSamplesPerRing < iRings; #line 184 [loop] while (_488) { { #line 186 float _492 = iSamplesPerRing / iRings; #line 186 float2 _494 = lerp(currentVertex, nextVertex, _492.xx); #line 186 float2 sampleOffset = _494; #line 189 float _496 = dot(sampleOffset, sampleOffset); #line 189 float _497 = rsqrt(_496); #line 189 float2 _499 = sampleOffset * _497.xx; #line 189 sampleOffset = _499; #line 191 float2 _501 = sampleOffset.xy * bokehRadiusScaled; #line 191 float2 _503 = _501 * iRings.xx; #line 191 float2 _505 = IN.uv + _503; #line 191 float4 _510 = float4(_505.x, _505.y, 0.00000000e+00, 0.00000000e+00); #line 191 float4 _511 = V__sCommonTex.t.SampleLevel(V__sCommonTex.s, _510.xy, _510.w); #line 191 float4 sampleBokeh = _511; #line 192 float _515 = sampleBokeh.w * 2.00000000e+00; #line 192 float _517 = _515 - 1.00000000e+00; #line 192 float _518 = abs(_517); #line 192 float _519 = CoC * iRings; #line 192 float _520 = _518 - _519; #line 192 float _522 = 1.00000000e+06 * _520; #line 192 float _524 = _522 + 1.00000000e+00; #line 192 float _525 = saturate(_524); #line 192 float sampleWeight_526 = _525; #line 194 float3 _527; #line 194 _527 = sampleBokeh.xyz; #line 194 F__decompress_fake_hdr(_527); #line 194 sampleBokeh.xyz = _527; #line 196 float3 _532 = sampleBokeh.xyz * sampleWeight_526.xxx; #line 196 sampleBokeh.xyz = _532; #line 197 float _533 = weightSum + sampleWeight_526; #line 197 weightSum = _533; #line 198 float4 _534 = BokehSum + sampleBokeh; #line 198 BokehSum = _534; } float _489 = iSamplesPerRing; #line 184 float _491 = _489 + 1.00000000e+00; #line 184 iSamplesPerRing = _491; #line 184 _488 = iSamplesPerRing < iRings; } } float _478 = iRings; #line 181 float _480 = _478 + 1.00000000e+00; #line 181 iRings = _480; #line 181 _477 = iRings <= nRings; } #line 201 currentVertex = nextVertex; } int _465 = iVertices; #line 177 int _467 = _465 + 1; #line 177 iVertices = _467; #line 177 _464 = iVertices < 6; } #line 208 float4 _536 = BokehSum / weightSum.xxxx; #line 208 BokehSum = _536; #line 210 float4 blurredColor = BokehSum; #line 211 float3 _538; #line 211 _538 = blurredColor.xyz; #line 211 F__compress_fake_hdr(_538); #line 211 blurredColor.xyz = _538; #line 213 float4 _542 = V__NV__ColorInput.t.Sample(V__NV__ColorInput.s, IN.uv); #line 213 float4 originalColor = _542; #line 215 float2 _544; #line 215 bool _545; #line 215 _544 = IN.uv; #line 215 _545 = false; #line 215 float _548 = F__CircleOfConfusion(_544, _545); #line 215 CoC = _548; #line 216 float _549 = CoC * ui_fShapeRadius; #line 216 float _551 = _549 * 2.50000000e+01; #line 216 bokehRadiusScaled = _551.xx; #line 219 float _555 = bokehRadiusScaled.x - 2.50000000e-01; #line 219 float _557 = _555 / 7.50000000e-01; #line 219 float _558 = saturate(_557); #line 219 float blendWeight = _558; #line 220 float _560 = sqrt(blendWeight); #line 220 blendWeight = _560; #line 222 float4 color_562 = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 223 float3 _566 = lerp(originalColor.xyz, blurredColor.xyz, blendWeight.xxx); #line 223 color_562.xyz = _566; #line 224 float _568 = CoC * 2.00000000e+00; #line 224 float _569 = saturate(_568); #line 224 float _571 = _569 * 5.00000000e-01; #line 224 float _573 = _571 + 5.00000000e-01; #line 224 color_562[3] = _573; return color_562; } #line 228 float4 F__gauss( #line 228 in __sampler2D tex, #line 228 in float2 uv, #line 228 in bool yAxis) { #line 230 float4 _579 = tex.t.Sample(tex.s, uv); #line 230 float4 centerTap = _579; #line 231 float _583 = centerTap.w * 2.00000000e+00; #line 231 float _585 = _583 - 1.00000000e+00; #line 231 float _586 = abs(_585); #line 231 float CoC_587 = _586; #line 233 float _589 = CoC_587 * 2.00000000e+00; #line 233 float nSteps = _589; #line 234 float _591 = nSteps * nSteps; #line 234 float _593 = _591 + 1.00000005e-03; #line 234 float _594 = rcp(_593); #line 234 float _596 = -2.00000000e+00 * _594; #line 234 float expCoeff = _596; #line 236 float2 _601 = yAxis.xx ? float2(0.00000000e+00, 1.00000000e+00) : float2(1.00000000e+00, 0.00000000e+00); #line 236 float2 axisCoords = _601; #line 237 float _605 = 1.00000000e+00 / _1.x; #line 237 float _608 = 1.00000000e+00 / _1.y; #line 237 float2 _609 = float2(_605, _608); #line 237 float2 _610 = axisCoords * _609; #line 237 float2 blurAxisScaled = _610; #line 239 float _612 = ceil(nSteps); #line 239 nSteps = _612; #line 241 float4 gaussianSum = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 242 float gaussianSumWeight = 1.00000005e-03; #line 244 float _617 = -nSteps; #line 244 float iStep = _617; #line 244 bool _624 = iStep <= nSteps; #line 244 while (_624) { { #line 246 float _628 = iStep * iStep; #line 246 float _629 = _628 * expCoeff; #line 246 float _630 = exp(_629); #line 246 float currentWeight = _630; #line 247 float _633 = 2.00000000e+00 * iStep; #line 247 float _635 = _633 - 5.00000000e-01; #line 247 float currentOffset = _635; #line 249 float2 _639 = blurAxisScaled.xy * currentOffset.xx; #line 249 float2 _640 = uv + _639; #line 249 float4 _645 = float4(_640.x, _640.y, 0.00000000e+00, 0.00000000e+00); #line 249 float4 _646 = tex.t.SampleLevel(tex.s, _645.xy, _645.w); #line 249 float4 currentTap = _646; #line 250 float _650 = currentTap.w * 2.00000000e+00; #line 250 float _652 = _650 - 1.00000000e+00; #line 250 float _653 = abs(_652); #line 250 float _655 = CoC_587 * 2.50000000e-01; #line 250 float _656 = _653 - _655; #line 250 float _657 = saturate(_656); #line 250 float _658 = currentWeight * _657; #line 250 currentWeight = _658; #line 252 float4 _660 = currentTap * currentWeight.xxxx; #line 252 float4 _661 = gaussianSum + _660; #line 252 gaussianSum = _661; #line 253 float _662 = gaussianSumWeight + currentWeight; #line 253 gaussianSumWeight = _662; } float _625 = iStep; #line 244 float _627 = _625 + 1.00000000e+00; #line 244 iStep = _627; #line 244 _624 = iStep <= nSteps; } #line 256 float4 _664 = gaussianSum / gaussianSumWeight.xxxx; #line 256 gaussianSum = _664; #line 258 float4 color_666 = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 259 float _667 = saturate(gaussianSumWeight); #line 259 float3 _671 = lerp(centerTap.xyz, gaussianSum.xyz, _667.xxx); #line 259 color_666.xyz = _671; #line 260 color_666[3] = centerTap.w; return color_666; } #line 264 float4 F__PS_Gauss1( #line 264 in S__VSOut IN) : SV_TARGET { #line 266 float2 _676; #line 266 bool _677; #line 266 _676 = IN.uv; #line 266 _677 = false; #line 266 float4 _680 = F__gauss(V__NV__ColorInput, _676, _677); return _680; } #line 269 float4 F__PS_Gauss2( #line 269 in S__VSOut IN) : SV_TARGET { #line 271 float2 _684; #line 271 bool _685; #line 271 _684 = IN.uv; #line 271 _685 = true; #line 271 float4 _688 = F__gauss(V__NV__ColorInput, _684, _685); return _688; }