INT__GetScreenSize() { #line 85 float2 _30 = float2(((float)((int)_1.x)), ((float)((int)_1.y))); return _30; } #line 97 Texture2D __V__qUINT__BackBufferTex : register(t0); Texture2D __srgbV__qUINT__BackBufferTex : register(t1); #line 98 Texture2D __V__qUINT__DepthBufferTex : register(t2); Texture2D __srgbV__qUINT__DepthBufferTex : register(t3); SamplerState __s0 : register(s0); #line 100 static const __sampler2D V__qUINT__sBackBufferTex = { __V__qUINT__BackBufferTex, __s0 }; #line 101 static const __sampler2D V__qUINT__sDepthBufferTex = { __V__qUINT__DepthBufferTex, __s0 }; #line 104 Texture2D __V__qUINT__CommonTex0 : register(t4); Texture2D __srgbV__qUINT__CommonTex0 : register(t5); #line 105 Texture2D __V__qUINT__CommonTex1 : register(t6); Texture2D __srgbV__qUINT__CommonTex1 : register(t7); #line 107 static const __sampler2D V__qUINT__sCommonTex0 = { __V__qUINT__CommonTex0, __s0 }; #line 108 static const __sampler2D V__qUINT__sCommonTex1 = { __V__qUINT__CommonTex1, __s0 }; #line 111 float F__qUINT__linear_depth( #line 111 in float2 uv) { #line 116 float4 _46 = float4(uv.x, uv.y, 0.00000000e+00, 0.00000000e+00); #line 116 float4 _47 = V__qUINT__sDepthBufferTex.t.SampleLevel(V__qUINT__sDepthBufferTex.s, _46.xy, _46.w); #line 116 float depth = _47.x; #line 123 float _51 = 1.00000000e+00 - depth; #line 123 depth = _51; #line 126 float _53 = depth * 9.99000000e+02; #line 126 float _55 = 1.00000000e+03 - _53; #line 126 float _56 = depth / _55; #line 126 depth = _56; return depth; } #line 133 void F__PostProcessVS( #line 133 in uint id : SV_VERTEXID, #line 133 out float4 vpos : SV_POSITION, #line 133 out float2 uv : TEXCOORD0) { #line 135 bool _63 = id == 2; #line 135 float _66 = _63 ? 2.00000000e+00 : 0.00000000e+00; #line 135 uv[0] = _66; #line 136 bool _68 = id == 1; #line 136 float _71 = _68 ? 2.00000000e+00 : 0.00000000e+00; #line 136 uv[1] = _71; #line 137 float2 _73 = uv * float2(2.00000000e+00, -2.00000000e+00); #line 137 float2 _75 = _73 + float2(-1.00000000e+00, 1.00000000e+00); #line 137 float4 _80 = float4(_75.x, _75.y, 0.00000000e+00, 1.00000000e+00); #line 137 vpos = _80; return; } #line 144 struct S__VSOUT { float4 vpos : SV_POSITION; float2 uv : TEXCOORD0; }; #line 150 S__VSOUT F__VS_Paint( #line 150 in uint id : SV_VERTEXID) { #line 152 S__VSOUT o = (S__VSOUT)0; #line 153 bool _88 = id == 2; #line 153 float _91 = _88 ? 2.00000000e+00 : 0.00000000e+00; #line 153 o.uv[0] = _91; #line 154 bool _93 = id == 1; #line 154 float _96 = _93 ? 2.00000000e+00 : 0.00000000e+00; #line 154 o.uv[1] = _96; #line 155 float2 _99 = o.uv.xy * float2(2.00000000e+00, -2.00000000e+00); #line 155 float2 _101 = _99 + float2(-1.00000000e+00, 1.00000000e+00); #line 155 float4 _106 = float4(_101.x, _101.y, 0.00000000e+00, 1.00000000e+00); #line 155 o.vpos = _106; return o; } #line 163 float3 F__paint_filter( #line 163 in S__VSOUT i, #line 163 in float pass_id) { #line 165 float3 least_divergent = float3(0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 166 float3 total_sum = float3(0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 167 float min_divergence = 1.00000000e+10; #line 170 int j = 0; #line 170 bool _125 = j < 5; #line 170 [loop] while (_125) { { #line 172 float2 dir = float2(0.00000000e+00, 0.00000000e+00); #line 172 float _132 = pass_id / 4.00000000e+00; #line 172 float _134 = ((float)j) + _132; #line 172 float _136 = 1.80000000e+02 * _134; #line 172 float _138 = _136 / 5.00000000e+00; #line 172 float _139 = radians(_138); #line 172 float _140; #line 172 float _141; #line 172 _140 = sin(_139), _141 = cos(_139); #line 172 dir[1] = _140; #line 172 dir[0] = _141; #line 174 float3 col_avg_per_dir = float3(0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 175 float curr_divergence = 0.00000000e+00; #line 177 float2 _148 = dir * float2(4.00000000e+00, 4.00000000e+00); #line 177 float2 _149 = F__qUINT__GetPixelSize(); #line 177 float2 _150 = _148 * _149; #line 177 float2 _152 = i.uv.xy - _150; #line 177 float4 _157 = float4(_152.x, _152.y, 0.00000000e+00, 0.00000000e+00); #line 177 float4 _158 = V__qUINT__sBackBufferTex.t.SampleLevel(V__qUINT__sBackBufferTex.s, _157.xy, _157.w); #line 177 float3 col_prev = _158.xyz; #line 179 int k = -3; #line 179 bool _169 = k <= 4; #line 179 while (_169) { { #line 181 float2 _174 = dir * ((float2)k.xx); #line 181 float2 _175 = F__qUINT__GetPixelSize(); #line 181 float2 _176 = _174 * _175; #line 181 float2 _178 = i.uv.xy + _176; #line 181 float4 _183 = float4(_178.x, _178.y, 0.00000000e+00, 0.00000000e+00); #line 181 float4 _184 = V__qUINT__sBackBufferTex.t.SampleLevel(V__qUINT__sBackBufferTex.s, _183.xy, _183.w); #line 181 float3 col_curr = _184.xyz; #line 182 float3 _187 = col_avg_per_dir + col_curr; #line 182 col_avg_per_dir = _187; #line 184 float3 _188 = col_curr - col_prev; #line 184 float3 _189 = abs(_188); #line 184 float3 color_diff = _189; #line 186 float _193 = max(color_diff.x, color_diff.y); #line 186 float _195 = max(_193, color_diff.z); #line 186 float _196 = curr_divergence + _195; #line 186 curr_divergence = _196; #line 187 col_prev = col_curr; } int _170 = k; #line 179 int _172 = _170 + 1; #line 179 k = _172; #line 179 _169 = k <= 4; } #line 191 bool _200 = curr_divergence < min_divergence; #line 191 [flatten] if (_200) { #line 193 least_divergent = col_avg_per_dir; #line 194 min_divergence = curr_divergence; } #line 197 float3 _201 = total_sum + col_avg_per_dir; #line 197 total_sum = _201; } int _126 = j; #line 170 int _128 = _126 + 1; #line 170 j = _128; #line 170 _125 = j < 5; } #line 200 float3 _203 = least_divergent / float3(8.00000000e+00, 8.00000000e+00, 8.00000000e+00); #line 200 least_divergent = _203; #line 201 float3 _205 = total_sum / float3(4.00000000e+01, 4.00000000e+01, 4.00000000e+01); #line 201 total_sum = _205; #line 202 float _207 = min_divergence / 8.00000000e+00; #line 202 min_divergence = _207; #line 204 float3 _208 = least_divergent - total_sum; #line 204 float _210 = dot(_208, float3(3.33000004e-01, 3.33000004e-01, 3.33000004e-01)); #line 204 float lumasharpen = _210; #line 205 float _213 = lumasharpen * 6.99999988e-01; #line 205 float3 _215 = least_divergent + _213.xxx; #line 205 least_divergent = _215; #line 207 float _217 = min_divergence * 0.00000000e+00; #line 207 float _219 = 1.00000000e+00 - _217; #line 207 float _220 = saturate(_219); #line 207 float3 _222 = least_divergent * _220.xxx; #line 207 least_divergent = _222; return least_divergent; } #line 215 void F__PS_Paint_1( #line 215 in S__VSOUT i, #line 215 out float4 o : SV_TARGET0) { #line 217 S__VSOUT _227; #line 217 float _228; #line 217 _227 = i; #line 217 _228 = 1.00000000e+00; #line 217 float3 _230 = F__paint_filter(_227, _228); #line 217 o.xyz = _230; #line 218 o[3] = 1.00000000e+00; return; } #line 221 void F__PS_Paint_2( #line 221 in S__VSOUT i, #line 221 out float4 o : SV_TARGET0) { #line 223 S__VSOUT _236; #line 223 float _237; #line 223 _236 = i; #line 223 _237 = 2.00000000e+00; #line 223 float3 _239 = F__paint_filter(_236, _237); #line 223 o.xyz = _239; #line 224 o[3] = 1.00000000e+00; return; } #line 227 void F__PS_Paint_3( #line 227 in S__VSOUT i, #line 227 out float4 o : SV_TARGET0) { #line 229 S__VSOUT _245; #line 229 float _246; #line 229 _245 = i; #line 229 _246 = 3.00000000e+00; #line 229 float3 _248 = F__paint_filter(_245, _246); #line 229 o.xyz = _248; #line 230 o[3] = 1.00000000e+00; return; } #line 233 void F__PS_Paint_4( #line 233 in S__VSOUT i, #line 233 out float4 o : SV_TARGET0) { #line 235 S__VSOUT _254; #line 235 float _255; #line 235 _254 = i; #line 235 _255 = 4.00000000e+00; #line 235 float3 _257 = F__paint_filter(_254, _255); #line 235 o.xyz = _257; #line 236 o[3] = 1.00000000e+00; return; } #line 239 void F__PS_Paint_5( #line 239 in S__VSOUT i, #line 239 out float4 o : SV_TARGET0) { #line 241 S__VSOUT _263; #line 241 float _264; #line 241 _263 = i; #line 241 _264 = 5.00000000e+00; #line 241 float3 _266 = F__paint_filter(_263, _264); #line 241 o.xyz = _266; #line 242 o[3] = 1.00000000e+00; return; } #line 245 void F__PS_Posterize( #line 245 in S__VSOUT i, #line 245 out float4 o : SV_TARGET0) { #line 247 float4 _273 = V__qUINT__sBackBufferTex.t.Sample(V__qUINT__sBackBufferTex.s, i.uv); #line 247 float3 color = _273.xyz; #line 249 float _278 = i.vpos.y * 1.25000000e-01; #line 249 float _279 = frac(_278); #line 249 bool _281 = _279 > 5.00000000e-01; #line 249 bool zebra = _281; #line 251 float _284 = dot(color, float3(3.00000012e-01, 5.89999974e-01, 1.09999999e-01)); #line 251 float lum = _284; #line 252 float _287 = lum * 3.00000000e+00; #line 252 float _290 = ((float)zebra) - 5.00000000e-01; #line 252 float _291 = _290 * ZEBRA_INTENSITY; #line 252 float _293 = _291 * 2.00000003e-01; #line 252 float _294 = _287 + _293; #line 252 float _295 = round(_294); #line 252 int posterized = ((int)_295); #line 253 int _300 = clamp(posterized, 0, 3); #line 253 posterized = _300; #line 256 float3 _301[4] = { PALETTE_COLOR_1, PALETTE_COLOR_2, PALETTE_COLOR_3, PALETTE_COLOR_4 }; #line 255 float3 palette[4] = _301; #line 263 o = palette[posterized].xyzz; return; }