Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // smaaBlendWeight.frag
- #version 450
- struct SMAAParameters
- {
- float threshold;
- float depthThreshold;
- uint maxSearchSteps;
- uint maxSearchStepsDiag;
- uint cornerRounding;
- uint pad0;
- uint pad1;
- uint pad2;
- };
- layout(binding = 0, std140) uniform Globals
- {
- vec4 screenSize;
- mat4 viewProj;
- mat4 guiOrtho;
- SMAAParameters smaaParameters;
- float predicationThreshold;
- float predicationScale;
- float predicationStrength;
- float pad0;
- } _190;
- layout(binding = 0) uniform sampler2D edgesTex;
- layout(binding = 1) uniform sampler2D areaTex;
- layout(binding = 2) uniform sampler2D searchTex;
- layout(location = 2) in vec4 offset0;
- layout(location = 3) in vec4 offset1;
- layout(location = 4) in vec4 offset2;
- layout(location = 0) out vec4 outColor;
- layout(location = 0) in vec2 texcoord;
- layout(location = 1) in vec2 pixcoord;
- vec4 _2819;
- vec2 _2820;
- vec3 _2845;
- void main()
- {
- vec2 _1268 = texture(edgesTex, texcoord).xy;
- vec4 _2856;
- vec2 _2857;
- if (_1268.y > 0.0)
- {
- vec4 _2823;
- if (_1268.x > 0.0)
- {
- vec2 _2821;
- vec4 _2822;
- _2821 = _2820;
- _2822 = vec4(texcoord, -1.0, 1.0);
- vec2 _1697;
- vec4 _2504;
- for (;;)
- {
- bool _1675 = _2822.z < 15.0;
- bool _1681;
- if (_1675)
- {
- _1681 = _2822.w > 0.89999997615814208984375;
- }
- else
- {
- _1681 = _1675;
- }
- if (_1681)
- {
- vec3 _1690 = fma(vec3(_190.screenSize.xy, 1.0), vec3(-1.0, -1.0, 1.0), _2822.xyz);
- vec4 _1692 = vec4(_1690.x, _1690.y, _1690.z, _2822.w);
- _1697 = textureLod(edgesTex, _1692.xy, 0.0).xy;
- _2504 = _1692;
- _2504.w = dot(_1697, vec2(0.5));
- _2821 = _1697;
- _2822 = _2504;
- continue;
- }
- else
- {
- break;
- }
- }
- vec4 _2510 = vec4(_2822.zw.x, _2819.y, _2822.zw.y, _2819.w);
- _2510.x = vec4(_2822.zw.x, _2819.y, _2822.zw.y, _2819.w).x + float(_2821.y > 0.89999997615814208984375);
- _2823 = _2510;
- }
- else
- {
- _2823 = vec4(vec2(0.0).x, _2819.y, vec2(0.0).y, _2819.w);
- }
- float _1708 = -(-1.0);
- vec4 _1713 = vec4(texcoord, -1.0, 1.0);
- vec3 _1719 = vec3(_190.screenSize.xy, 1.0);
- vec4 _2826;
- _2826 = _1713;
- vec4 _2520;
- for (;;)
- {
- bool _1726 = _2826.z < 15.0;
- bool _1732;
- if (_1726)
- {
- _1732 = _2826.w > 0.89999997615814208984375;
- }
- else
- {
- _1732 = _1726;
- }
- if (_1732)
- {
- vec3 _1741 = fma(_1719, vec3(1.0, _1708, 1.0), _2826.xyz);
- vec4 _1743 = vec4(_1741.x, _1741.y, _1741.z, _2826.w);
- _2520 = _1743;
- _2520.w = dot(textureLod(edgesTex, _1743.xy, 0.0).xy, vec2(0.5));
- _2826 = _2520;
- continue;
- }
- else
- {
- break;
- }
- }
- vec2 _2829;
- if ((vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).x + vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y) > 2.0)
- {
- float _1497 = -vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).x;
- vec4 _1515 = fma(vec4(_1497 + 0.25, _1497, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y, -((-vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y) - 0.25)), _190.screenSize.xyxy, texcoord.xyxy);
- vec2 _1520 = textureLodOffset(edgesTex, _1515.xy, 0.0, ivec2(-1, 0)).xy;
- vec4 _1522 = vec4(_1520.x, _1520.y, _2819.z, _2819.w);
- vec2 _1527 = textureLodOffset(edgesTex, _1515.zw, 0.0, ivec2(1, 0)).xy;
- vec4 _1529 = vec4(_1522.x, _1522.y, _1527.x, _1527.y);
- vec2 _1756 = _1529.xz;
- vec2 _1763 = _1756 * abs((_1756 * 5.0) - vec2(3.75));
- vec4 _1767 = round(vec4(_1763.x, _1529.y, _1763.y, _1529.w));
- vec4 _1533 = vec4(_1767.y, _1767.x, _1767.w, _1767.z);
- vec2 _1538 = fma(vec2(2.0), _1533.xz, _1533.yw);
- bvec2 _1543 = notEqual(step(vec2(0.89999997615814208984375), vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).zw), vec2(0.0));
- vec2 _2827;
- if (_1543.x)
- {
- vec2 _2536 = _1538;
- _2536.x = 0.0;
- _2827 = _2536;
- }
- else
- {
- _2827 = _1538;
- }
- vec2 _2828;
- if (_1543.y)
- {
- vec2 _2540 = _2827;
- _2540.y = 0.0;
- _2828 = _2540;
- }
- else
- {
- _2828 = _2827;
- }
- vec2 _1788 = fma(vec2(0.0062500000931322574615478515625, 0.001785714295692741870880126953125), fma(vec2(20.0), _2828, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).xy), vec2(0.00312500004656612873077392578125, 0.0008928571478463709354400634765625));
- vec2 _2546 = _1788;
- _2546.x = _1788.x + 0.5;
- vec2 _2554 = _2546;
- _2554.y = 1.0 - (_2546.y + (0.14285714924335479736328125 * 0.0));
- _2829 = vec2(0.0) + textureLod(areaTex, _2554, 0.0).xy;
- }
- else
- {
- _2829 = vec2(0.0);
- }
- vec4 _2562 = _1713;
- _2562.x = texcoord.x + (0.25 * _190.screenSize.x);
- vec4 _2832;
- _2832 = _2562;
- vec4 _2574;
- for (;;)
- {
- bool _1838 = _2832.z < 15.0;
- bool _1844;
- if (_1838)
- {
- _1844 = _2832.w > 0.89999997615814208984375;
- }
- else
- {
- _1844 = _1838;
- }
- if (_1844)
- {
- vec3 _1853 = fma(_1719, vec3(-1.0, _1708, 1.0), _2832.xyz);
- vec4 _1855 = vec4(_1853.x, _1853.y, _1853.z, _2832.w);
- vec2 _1860 = textureLod(edgesTex, _1855.xy, 0.0).xy;
- float _2568 = _1860.x;
- vec2 _2572 = _1860;
- _2572.x = _2568 * abs((5.0 * _2568) - 3.75);
- _2574 = _1855;
- _2574.w = dot(round(_2572), vec2(0.5));
- _2832 = _2574;
- continue;
- }
- else
- {
- break;
- }
- }
- vec4 _2835;
- if (textureLodOffset(edgesTex, texcoord, 0.0, ivec2(1, 0)).x > 0.0)
- {
- vec2 _2833;
- vec4 _2834;
- _2833 = _2820;
- _2834 = _2562;
- vec2 _1952;
- vec4 _2594;
- for (;;)
- {
- bool _1911 = _2834.z < 15.0;
- bool _1917;
- if (_1911)
- {
- _1917 = _2834.w > 0.89999997615814208984375;
- }
- else
- {
- _1917 = _1911;
- }
- if (_1917)
- {
- vec3 _1926 = fma(_1719, vec3(1.0, -1.0, 1.0), _2834.xyz);
- vec4 _1928 = vec4(_1926.x, _1926.y, _1926.z, _2834.w);
- vec2 _1933 = textureLod(edgesTex, _1928.xy, 0.0).xy;
- float _2588 = _1933.x;
- vec2 _2592 = _1933;
- _2592.x = _2588 * abs((5.0 * _2588) - 3.75);
- _1952 = round(_2592);
- _2594 = _1928;
- _2594.w = dot(_1952, vec2(0.5));
- _2833 = _1952;
- _2834 = _2594;
- continue;
- }
- else
- {
- break;
- }
- }
- vec4 _2600 = vec4(vec4(_2832.zw.x, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y, _2832.zw.y, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).w).x, _2834.zw.x, vec4(_2832.zw.x, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y, _2832.zw.y, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).w).z, _2834.zw.y);
- _2600.y = vec4(vec4(_2832.zw.x, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y, _2832.zw.y, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).w).x, _2834.zw.x, vec4(_2832.zw.x, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y, _2832.zw.y, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).w).z, _2834.zw.y).y + float(_2833.y > 0.89999997615814208984375);
- _2835 = _2600;
- }
- else
- {
- _2835 = vec4(vec4(_2832.zw.x, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y, _2832.zw.y, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).w).x, vec2(0.0).x, vec4(_2832.zw.x, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).y, _2832.zw.y, vec4(_2823.x, _2826.zw.x, _2823.z, _2826.zw.y).w).z, vec2(0.0).y);
- }
- vec2 _2840;
- if ((_2835.x + _2835.y) > 2.0)
- {
- float _1593 = -_2835.x;
- vec4 _1609 = fma(vec4(_1593, -_1593, _2835.y, -_2835.y), _190.screenSize.xyxy, texcoord.xyxy);
- vec2 _1612 = _1609.xy;
- vec4 _2614 = _2819;
- _2614.x = textureLodOffset(edgesTex, _1612, 0.0, ivec2(-1, 0)).y;
- vec4 _2616 = _2614;
- _2616.y = textureLodOffset(edgesTex, _1612, 0.0, ivec2(0, 1)).x;
- vec2 _1626 = textureLodOffset(edgesTex, _1609.zw, 0.0, ivec2(1, 0)).yx;
- vec4 _1628 = vec4(_2616.x, _2616.y, _1626.x, _1626.y);
- vec2 _1633 = fma(vec2(2.0), _1628.xz, _1628.yw);
- bvec2 _1638 = notEqual(step(vec2(0.89999997615814208984375), _2835.zw), vec2(0.0));
- vec2 _2838;
- if (_1638.x)
- {
- vec2 _2620 = _1633;
- _2620.x = 0.0;
- _2838 = _2620;
- }
- else
- {
- _2838 = _1633;
- }
- vec2 _2839;
- if (_1638.y)
- {
- vec2 _2624 = _2838;
- _2624.y = 0.0;
- _2839 = _2624;
- }
- else
- {
- _2839 = _2838;
- }
- vec2 _1973 = fma(vec2(0.0062500000931322574615478515625, 0.001785714295692741870880126953125), fma(vec2(20.0), _2839, _2835.xy), vec2(0.00312500004656612873077392578125, 0.0008928571478463709354400634765625));
- vec2 _2630 = _1973;
- _2630.x = _1973.x + 0.5;
- vec2 _2638 = _2630;
- _2638.y = 1.0 - (_2630.y + (0.14285714924335479736328125 * 0.0));
- _2840 = _2829 + textureLod(areaTex, _2638, 0.0).xy.yx;
- }
- else
- {
- _2840 = _2829;
- }
- vec4 _2848;
- vec2 _2849;
- if (vec4(_2840.x, _2840.y, vec4(0.0).z, vec4(0.0).w).x == (-vec4(_2840.x, _2840.y, vec4(0.0).z, vec4(0.0).w).y))
- {
- vec2 _2843;
- vec2 _2844;
- _2843 = offset0.xy;
- _2844 = vec2(0.0, 1.0);
- vec2 _2021;
- vec2 _2026;
- float _2646;
- for (;;)
- {
- _2646 = _2843.x;
- bool _2004 = _2646 > offset2.x;
- bool _2010;
- if (_2004)
- {
- _2010 = _2844.y > 0.828100025653839111328125;
- }
- else
- {
- _2010 = _2004;
- }
- bool _2016;
- if (_2010)
- {
- _2016 = _2844.x == 0.0;
- }
- else
- {
- _2016 = _2010;
- }
- if (_2016)
- {
- _2021 = textureLod(edgesTex, _2843, 0.0).xy;
- _2026 = fma(vec2(-2.0, -0.0), _190.screenSize.xy, _2843);
- _2843 = _2026;
- _2844 = _2021;
- continue;
- }
- else
- {
- break;
- }
- }
- vec2 _2048 = (vec2(33.0, -33.0) + vec2(-1.0, 1.0)) * vec2(0.015625, 0.0625);
- vec2 _2054 = fma(_2048, _2844, ((vec2(66.0, 33.0) * vec2(0.0, 1.0)) + vec2(0.5, -0.5)) * vec2(0.015625, 0.0625));
- vec2 _2654 = _2054;
- _2654.y = 1.0 - _2054.y;
- float _2035 = fma(_190.screenSize.x, fma(-2.007874011993408203125, textureLod(searchTex, _2654, 0.0).x, 3.25), _2646);
- vec3 _2658 = _2845;
- _2658.x = _2035;
- vec3 _2662 = _2658;
- _2662.y = offset1.y;
- vec2 _2666 = _2820;
- _2666.x = _2035;
- vec2 _2846;
- vec2 _2847;
- _2846 = offset0.zw;
- _2847 = vec2(0.0, 1.0);
- vec2 _2092;
- vec2 _2097;
- float _2670;
- for (;;)
- {
- _2670 = _2846.x;
- bool _2075 = _2670 < offset2.y;
- bool _2081;
- if (_2075)
- {
- _2081 = _2847.y > 0.828100025653839111328125;
- }
- else
- {
- _2081 = _2075;
- }
- bool _2087;
- if (_2081)
- {
- _2087 = _2847.x == 0.0;
- }
- else
- {
- _2087 = _2081;
- }
- if (_2087)
- {
- _2092 = textureLod(edgesTex, _2846, 0.0).xy;
- _2097 = fma(vec2(2.0, 0.0), _190.screenSize.xy, _2846);
- _2846 = _2097;
- _2847 = _2092;
- continue;
- }
- else
- {
- break;
- }
- }
- vec2 _2126 = fma(_2048, _2847, ((vec2(66.0, 33.0) * vec2(0.5, 1.0)) + vec2(0.5, -0.5)) * vec2(0.015625, 0.0625));
- vec2 _2678 = _2126;
- _2678.y = 1.0 - _2126.y;
- float _2107 = fma(-_190.screenSize.x, fma(-2.007874011993408203125, textureLod(searchTex, _2678, 0.0).x, 3.25), _2670);
- vec3 _2682 = _2662;
- _2682.z = _2107;
- vec2 _2686 = _2666;
- _2686.y = _2107;
- vec2 _1326 = abs(round(fma(_190.screenSize.zz, _2686, -pixcoord.xx)));
- vec2 _2145 = fma(vec2(0.0062500000931322574615478515625, 0.001785714295692741870880126953125), fma(vec2(16.0), round(vec2(textureLod(edgesTex, _2662.xy, 0.0).x, textureLodOffset(edgesTex, _2682.zy, 0.0, ivec2(1, 0)).x) * 4.0), sqrt(_1326)), vec2(0.00312500004656612873077392578125, 0.0008928571478463709354400634765625));
- vec2 _2696 = _2145;
- _2696.y = 1.0 - fma(0.14285714924335479736328125, 0.0, _2145.y);
- vec2 _2158 = textureLod(areaTex, _2696, 0.0).xy;
- vec4 _1341 = vec4(_2158.x, _2158.y, vec4(_2840.x, _2840.y, vec4(0.0).z, vec4(0.0).w).z, vec4(_2840.x, _2840.y, vec4(0.0).z, vec4(0.0).w).w);
- vec3 _2700 = _2682;
- _2700.y = texcoord.y;
- vec2 _2165 = step(_1326, _1326.yx);
- vec2 _2175 = (_2165 * 0.75) / vec2(_2165.x + _2165.y);
- float _2706 = _2175.x;
- float _2712 = _2175.y;
- vec2 _2716 = vec2(1.0);
- _2716.x = (1.0 - (_2706 * textureLodOffset(edgesTex, _2700.xyzy.xy, 0.0, ivec2(0, -1)).x)) - (_2712 * textureLodOffset(edgesTex, _2700.xyzy.zw, 0.0, ivec2(1, -1)).x);
- vec2 _2728 = _2716;
- _2728.y = (1.0 - (_2706 * textureLodOffset(edgesTex, _2700.xyzy.xy, 0.0, ivec2(0, 2)).x)) - (_2712 * textureLodOffset(edgesTex, _2700.xyzy.zw, 0.0, ivec2(1, 2)).x);
- vec2 _2229 = _1341.xy * clamp(_2728, vec2(0.0), vec2(1.0));
- _2848 = vec4(_2229.x, _2229.y, _1341.z, _1341.w);
- _2849 = _1268;
- }
- else
- {
- vec2 _2730 = _1268;
- _2730.x = 0.0;
- _2848 = vec4(_2840.x, _2840.y, vec4(0.0).z, vec4(0.0).w);
- _2849 = _2730;
- }
- _2856 = _2848;
- _2857 = _2849;
- }
- else
- {
- _2856 = vec4(0.0);
- _2857 = _1268;
- }
- vec4 _2880;
- if (_2857.x > 0.0)
- {
- vec2 _2876;
- vec2 _2877;
- _2876 = offset1.xy;
- _2877 = vec2(1.0, 0.0);
- vec2 _2259;
- vec2 _2264;
- float _2736;
- for (;;)
- {
- _2736 = _2876.y;
- bool _2242 = _2736 < offset2.z;
- bool _2248;
- if (_2242)
- {
- _2248 = _2877.x > 0.828100025653839111328125;
- }
- else
- {
- _2248 = _2242;
- }
- bool _2254;
- if (_2248)
- {
- _2254 = _2877.y == 0.0;
- }
- else
- {
- _2254 = _2248;
- }
- if (_2254)
- {
- _2259 = textureLod(edgesTex, _2876, 0.0).xy;
- _2264 = fma(vec2(-0.0, 2.0), _190.screenSize.xy, _2876);
- _2876 = _2264;
- _2877 = _2259;
- continue;
- }
- else
- {
- break;
- }
- }
- vec2 _2288 = (vec2(33.0, -33.0) + vec2(-1.0, 1.0)) * vec2(0.015625, 0.0625);
- vec2 _2294 = fma(_2288, _2877.yx, ((vec2(66.0, 33.0) * vec2(0.0, 1.0)) + vec2(0.5, -0.5)) * vec2(0.015625, 0.0625));
- vec2 _2744 = _2294;
- _2744.y = 1.0 - _2294.y;
- float _2275 = fma(_190.screenSize.y, -fma(-2.007874011993408203125, textureLod(searchTex, _2744, 0.0).x, 3.25), _2736);
- vec3 _2748 = _2845;
- _2748.y = _2275;
- vec3 _2752 = _2748;
- _2752.x = offset0.x;
- vec2 _2756 = _2820;
- _2756.x = _2275;
- vec2 _2878;
- vec2 _2879;
- _2878 = offset1.zw;
- _2879 = vec2(1.0, 0.0);
- vec2 _2332;
- vec2 _2337;
- float _2760;
- for (;;)
- {
- _2760 = _2878.y;
- bool _2315 = _2760 > offset2.w;
- bool _2321;
- if (_2315)
- {
- _2321 = _2879.x > 0.828100025653839111328125;
- }
- else
- {
- _2321 = _2315;
- }
- bool _2327;
- if (_2321)
- {
- _2327 = _2879.y == 0.0;
- }
- else
- {
- _2327 = _2321;
- }
- if (_2327)
- {
- _2332 = textureLod(edgesTex, _2878, 0.0).xy;
- _2337 = fma(vec2(0.0, -2.0), _190.screenSize.xy, _2878);
- _2878 = _2337;
- _2879 = _2332;
- continue;
- }
- else
- {
- break;
- }
- }
- vec2 _2368 = fma(_2288, _2879.yx, ((vec2(66.0, 33.0) * vec2(0.5, 1.0)) + vec2(0.5, -0.5)) * vec2(0.015625, 0.0625));
- vec2 _2768 = _2368;
- _2768.y = 1.0 - _2368.y;
- float _2349 = fma(-_190.screenSize.y, -fma(-2.007874011993408203125, textureLod(searchTex, _2768, 0.0).x, 3.25), _2760);
- vec3 _2772 = _2752;
- _2772.z = _2349;
- vec2 _2776 = _2756;
- _2776.y = _2349;
- vec2 _1397 = abs(round(fma(_190.screenSize.ww, _2776, -pixcoord.yy)));
- vec2 _2387 = fma(vec2(0.0062500000931322574615478515625, 0.001785714295692741870880126953125), fma(vec2(16.0), round(vec2(textureLod(edgesTex, _2752.xy, 0.0).y, textureLodOffset(edgesTex, _2772.xz, 0.0, ivec2(0, -1)).y) * 4.0), sqrt(_1397)), vec2(0.00312500004656612873077392578125, 0.0008928571478463709354400634765625));
- vec2 _2786 = _2387;
- _2786.y = 1.0 - fma(0.14285714924335479736328125, 0.0, _2387.y);
- vec2 _2400 = textureLod(areaTex, _2786, 0.0).xy;
- vec4 _1412 = vec4(_2856.x, _2856.y, _2400.x, _2400.y);
- vec3 _2790 = _2772;
- _2790.x = texcoord.x;
- vec2 _2407 = step(_1397, _1397.yx);
- vec2 _2417 = (_2407 * 0.75) / vec2(_2407.x + _2407.y);
- float _2796 = _2417.x;
- float _2802 = _2417.y;
- vec2 _2806 = vec2(1.0);
- _2806.x = (1.0 - (_2796 * textureLodOffset(edgesTex, _2790.xyxz.xy, 0.0, ivec2(1, 0)).y)) - (_2802 * textureLodOffset(edgesTex, _2790.xyxz.zw, 0.0, ivec2(1, -1)).y);
- vec2 _2818 = _2806;
- _2818.y = (1.0 - (_2796 * textureLodOffset(edgesTex, _2790.xyxz.xy, 0.0, ivec2(-2, 0)).y)) - (_2802 * textureLodOffset(edgesTex, _2790.xyxz.zw, 0.0, ivec2(-2, -1)).y);
- vec2 _2471 = _1412.zw * clamp(_2818, vec2(0.0), vec2(1.0));
- _2880 = vec4(_1412.x, _1412.y, _2471.x, _2471.y);
- }
- else
- {
- _2880 = _2856;
- }
- outColor = _2880;
- }
Add Comment
Please, Sign In to add comment