0% found this document useful (0 votes)
22 views19 pages

Waterfrag

The document contains a GLSL shader code that utilizes various uniform and input variables to perform complex calculations for rendering graphics. It includes functions for texture sampling, depth fetching, and vector manipulations to achieve visual effects. The shader is structured to handle multiple textures and incorporates conditional logic for dynamic rendering based on input parameters.

Uploaded by

seplanely
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views19 pages

Waterfrag

The document contains a GLSL shader code that utilizes various uniform and input variables to perform complex calculations for rendering graphics. It includes functions for texture sampling, depth fetching, and vector manipulations to achieve visual effects. The shader is structured to handle multiple textures and incorporates conditional logic for dynamic rendering based on input parameters.

Uploaded by

seplanely
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 19

#version 450

uniform vec4 pc0_h[31];


uniform vec4 pc3_h[1];
uniform vec4 pc4_h[1];
uniform vec4 pc2_h[46];
uniform vec4 pc1_h[2];
uniform vec4 pc6_h[1];
uniform vec4 pc5_h[3];
uniform vec4 pc7_h[10];
uniform vec4 pu_h[3];
uniform sampler2D ps6;
uniform sampler2D ps0;
uniform sampler2D ps1;
uniform sampler2D ps2;
uniform sampler2D ps3;
uniform sampler2DArray ps8;
uniform sampler2D ps4;
uniform sampler2D ps5;
uniform sampler2D ps7;
layout(location = 1) in vec4 in_TEXCOORD11;
layout(location = 3) in vec4 in_TEXCOORD7;
layout(location = 4) in vec4 in_TEXCOORD8;
layout(location = 0) out vec4 out_Target0;
bool IsForceSampleDepth(){
return true;
}
float DepthbufferFetchES2_R11G11B10(){
return 0.0;
}
void main(){
float f0;
(f0 = pu_h[2].x);
float f1;
(f1 = pu_h[1].x);
float f2;
(f2 = pu_h[0].x);
vec3 v3;
(v3.xyz = pc3_h[0].xyz);
float f4;
(f4 = pc1_h[0].x);
float f5;
(f5 = pc0_h[28].x);
vec3 v6;
(v6.xyz = pc0_h[19].xyz);
float f7;
(f7 = pc0_h[18].x);
float f8;
(f8 = pc0_h[17].x);
vec3 v9;
(v9.xyz = pc0_h[9].xyz);
vec4 v10;
(v10.xyzw = gl_FragCoord);
(v10.w = (1.0 / gl_FragCoord.w));
vec4 v11;
float f12;
float f13;
vec3 v14;
vec3 v15;
vec3 v16;
(v16.xyz = vec3(0.0, 0.0, 0.0));
vec4 v17;
vec3 v18;
(v18.xy = ((((gl_FragCoord.xy + (-pc0_h[30].xy)) * pc0_h[15].zw) + vec2(-0.5, -
0.5)) * vec2(2.0, -2.0)));
(v18.z = gl_FragCoord.z);
vec4 v19;
(v19.w = 1.0);
(v19.xyz = v18);
(v17.xyzw = (v19 * v10.wwww));
vec3 v20;
(v20.xyz = (in_TEXCOORD8.xyz + (-pc0_h[10].xyz)));
vec3 v21;
(v21.xyz = normalize((-in_TEXCOORD8.xyz)));
vec3 v22;
float f23;
(f23 = (pc7_h[4].x * f7));
float f24;
(f24 = (f23 * 0.1));
float f25;
(f25 = (f7 * -0.0044999998));
vec2 v26;
(v26.xy = (vec2(f25) + (v20.xy / pc7_h[4].yy)));
vec2 v27;
(v27.x = f24);
(v27.y = f24);
vec2 v28;
(v28.xy = ((texture(ps3, (v27 + v26)).xy * vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v29;
(v29.w = 1.0);
(v29.xy = v28);
(v29.z = sqrt(clamp((1.0 + (-dot(v28, v28))), 0.0, 1.0)));
vec2 v30;
(v30.x = (f23 * -0.1));
(v30.y = f24);
vec2 v31;
(v31.xy = ((texture(ps3, (v30 + (v26 + vec2(0.86486101, 0.148384)))).xy *
vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v32;
(v32.w = 1.0);
(v32.xy = v31);
(v32.z = sqrt(clamp((1.0 + (-dot(v31, v31))), 0.0, 1.0)));
float f33;
(f33 = (((pc5_h[1].w + -3.0) * 0.30000001) + 1.0));
float f34;
float f35;
(f35 = length(in_TEXCOORD8.xyz));
(f34 = (1.0 + (-(1.0 + (-clamp((f35 / pc7_h[4].w), 0.0, 1.0))))));
vec3 v36;
float f37;
(f37 = length((in_TEXCOORD8.xyz * vec3(0.0, 0.0, 1.0))));
(v36.xyz = mix(mix(vec3(0.0, 0.0, 1.0), mix(vec3(0.0, 0.0, 1.0), (vec3(0.25,
0.25, 0.25) * (v29.xyz + v32.xyz)), vec3((pc7_h[4].z * f33))), vec3(f34)),
vec3(0.0, 0.0, 1.0), vec3(min(max((1.0 + (-(1.0 + (-clamp(((f37 + -1000.0) /
3000.0), 0.0, 1.0))))), 0.0), 0.94999999))));
float f38;
(f38 = (v36.z + 1.0));
float f39;
(f39 = (pc7_h[5].x * f7));
float f40;
(f40 = (f39 * 0.1));
vec2 v41;
(v41.xy = (vec2(f25) + (v20.xy / pc7_h[5].yy)));
vec2 v42;
(v42.x = f40);
(v42.y = f40);
vec2 v43;
(v43.xy = ((texture(ps2, (v42 + v41)).xy * vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v44;
(v44.w = 1.0);
(v44.xy = v43);
(v44.z = sqrt(clamp((1.0 + (-dot(v43, v43))), 0.0, 1.0)));
vec2 v45;
(v45.x = (f39 * -0.1));
(v45.y = f40);
vec2 v46;
(v46.xy = ((texture(ps2, (v45 + (v41 + vec2(0.86486101, 0.148384)))).xy *
vec2(2.0, 2.0)) + vec2(-1.0, -1.0)));
vec4 v47;
(v47.w = 1.0);
(v47.xy = v46);
(v47.z = sqrt(clamp((1.0 + (-dot(v46, v46))), 0.0, 1.0)));
vec3 v48;
(v48.xyz = mix(mix(vec3(0.0, 0.0, 1.0), (vec3(0.25, 0.25, 0.25) * (v44.xyz +
v47.xyz)), vec3((pc7_h[5].z * f33))), vec3(0.0, 0.0, 1.0), vec3(f34)));
vec2 v49;
(v49.xy = (v48.xy * vec2(-1.0, -1.0)));
vec3 v50;
(v50.xy = v36.xy);
(v50.z = f38);
vec3 v51;
(v51.xy = v49);
(v51.z = v48.z);
vec3 v52;
(v52.xy = v36.xy);
(v52.z = f38);
vec3 v53;
(v53.xy = v49);
(v53.z = v48.z);
vec3 v54;
(v54.xyz = ((v52 * vec3(dot(v50, v51))) + (-(vec3(f38) * v53))));
vec3 v55;
float f56;
(f56 = length(v54));
(v55.xyz = (v54 / vec3(f56)));
float f57;
(f57 = dot(in_TEXCOORD11.xyz, v21));
float f58;
(f58 = max(abs((1.0 + (-max(0.0, f57)))), 9.9999997e-05));
float f59;
(f59 = pow(f58, 9.0));
float f60;
(f60 = (((f58 <= 0.0)) ? (0.0) : (f59)));
float f61;
(f61 = ((f60 * 0.95999998) + 0.039999999));
float f62;
(f62 = pow(f61, 1.5));
float f63;
(f63 = (((f61 <= 0.0)) ? (0.0) : (f62)));
vec3 v64;
(v64.xyz = mix(v55, vec3(0.0, 0.0, 1.0), vec3(f63)));
vec4 v65;
(v65.xyzw = texture(ps1, ((v20.xy + (-pc5_h[2].xy)) / pc5_h[2].zz)));
vec3 v66;
(v66.xyz = mix(v64, vec3(0.0, 0.0, 1.0), v65.xxx));
float f67;
(f67 = (v66.z + 1.0));
vec2 v68;
(v68.x = v65.y);
(v68.y = v65.z);
vec3 v69;
(v69.xy = v68);
(v69.z = pc7_h[5].w);
vec2 v70;
(v70.x = v65.y);
(v70.y = v65.z);
vec3 v71;
(v71.xy = v70);
(v71.z = pc7_h[5].w);
vec2 v72;
(v72.x = v65.y);
(v72.y = v65.z);
vec3 v73;
(v73.xy = v72);
(v73.z = pc7_h[5].w);
vec3 v74;
(v74.xyz = (v73 / vec3(sqrt(dot(v69, v71)))));
vec2 v75;
(v75.xy = (v74.xy * vec2(-1.0, -1.0)));
vec3 v76;
(v76.xy = v66.xy);
(v76.z = f67);
vec3 v77;
(v77.xy = v75);
(v77.z = v74.z);
vec3 v78;
(v78.xy = v66.xy);
(v78.z = f67);
vec3 v79;
(v79.xy = v75);
(v79.z = v74.z);
vec3 v80;
(v80.xyz = ((v78 * vec3(dot(v76, v77))) + (-(vec3(f67) * v79))));
vec3 v81;
float f82;
(f82 = length(v80));
(v81.xyz = (v80 / vec3(f82)));
vec3 v83;
(v83.xyz = (((pc5_h[2].w >= 0.5)) ? (v81) : (v64)));
vec3 v84;
(v84.xyz = in_TEXCOORD8.xyz);
float f85;
(f85 = pc5_h[0].x);
vec3 v86;
(v86.xyz = v83);
if ((pc5_h[0].x > 0.001))
{
vec3 v87;
float f88;
float f89;
(f89 = length((v84 * vec3(1.0, 1.0, 0.30000001))));
(f88 = (1.0 + (-clamp((f89 / 2000.0), 0.0, 1.0))));
if ((f88 > 9.9999997e-05))
{
float f90;
(f90 = mix(1.0, 3.0, f85));
vec2 v91;
float f92;
float f93;
(f92 = 0.0);
vec2 v94;
(v94.xy = ((v20.xy / vec2(256.0, 256.0)) * vec2(10.0, 10.0)));
vec2 v95;
(v95.xy = floor(v94));
(v91.xy = vec2(0.0, 0.0));
(f93 = -2.0);
for (; (f93 <= 2.0); )
{
(f92 = -2.0);
for (; (f92 <= 2.0); )
{
vec2 v96;
vec2 v97;
(v97.x = f93);
(v97.y = f92);
vec2 v98;
(v98.xy = (v95 + v97));
vec3 v99;
(v99.xyz = fract((v98.xyx * vec3(0.12, 0.30000001, 0.69999999))));
vec3 v100;
(v100.xyz = (v99 + vec3(dot(v99, (v99.yzx + vec3(19.190001, 19.190001,
19.190001))))));
vec2 v101;
(v101.xy = fract(((v100.xy + v100.yz) * v100.zy)));
vec2 v102;
(v102.xy = fract((vec2((0.2 * f7)) + v101)));
vec2 v103;
(v103.xy = ((v98 + v101) + (-v94)));
(v96.xy = v103);
float f104;
(f104 = length(v96));
vec2 v105;
vec2 v106;
(v106.xy = (v103 / vec2(f104)));
(v105.xy = (((f104 > 9.9999997e-05)) ? (v106) : (vec2(0.0, 0.0))));
(v96.xy = v105);
float f107;
(f107 = ((f104 + (-((3.0 * f90) * v102.x))) + 0.0099999998));
(v91.xy = (v91 + ((vec2(0.5, 0.5) * v105) * vec2(((((sin((30.0 * f107)) *
smoothstep(-0.60000002, -0.30000001, f107)) * smoothstep(0.0, -0.30000001, f107)) /
0.02) * pow((1.0 + (-v102.x)), 15.0))))));
(f92 = (f92 + 1.0));
}
(f93 = (f93 + 1.0));
}
vec2 v108;
(v108.xy = (v91 / vec2(25.0, 25.0)));
(v91.xy = v108);
vec3 v109;
(v109.xy = v108);
(v109.z = sqrt(max((1.0 + (-dot(v108, v108))), 0.0)));
vec3 v110;
(v110.xyz = mix(vec3(0.0, 0.0, 1.0), v109, vec3(f85)));
float f111;
(f111 = (v83.z + 1.0));
vec3 v112;
(v112.xy = v83.xy);
(v112.z = f111);
vec3 v113;
(v113.xy = (-v110.xy));
(v113.z = v110.z);
(v87.xyz = normalize(mix(v83, ((v112 * vec3(dot(v112, v113))) + (-(v113 *
vec3(f111)))), vec3(f88))));
}
else
{
(v87.xyz = v83);
}
(v86.xyz = v87);
}
vec3 v114;
(v114.xyz = normalize(v86));
vec3 v115;
(v115.xyz = (v9 + (-v20)));
float f116;
(f116 = length(v115));
vec3 v117;
float f118;
(f118 = length(pc6_h[0].xyz));
(v117.xyz = ((pc6_h[0].xyz / vec3(f118)) * vec3(-1.0, -1.0, -1.0)));
float f119;
(f119 = clamp((dot((v115 / vec3(f116)), v117) * -1.0), 0.0, 1.0));
float f120;
(f120 = (((f119 + (-f119)) * f119) + 1.0));
(v22.xyz = (vec3((clamp((((dot(v114, (pc6_h[0].xyz * vec3(-1.0, -1.0, -1.0))) * -
1.0) + 0.5) / 2.25), 0.0, 1.0) * (1.0 / (f120 * f120)))) * pc7_h[0].xyz));
vec2 v121;
(v121.xy = (((v17.xy / v17.ww) * pc0_h[29].xy) + pc0_h[29].wz));
float f122;
bool b123;
(b123 = IsForceSampleDepth());
if (b123)
{
(f122 = textureLod(ps7, v121, 0.0).x);
}
else
{
float f124;
(f124 = DepthbufferFetchES2_R11G11B10());
(f122 = f124);
}
float f125;
(f125 = (((f122 * pc0_h[8].x) + pc0_h[8].y) + (1.0 / ((f122 * pc0_h[8].z) + (-
pc0_h[8].w)))));
float f126;
if ((pc0_h[7].w < 1.0))
{
(f126 = v17.w);
}
else
{
(f126 = (((v17.z * pc0_h[8].x) + pc0_h[8].y) + (1.0 / ((v17.z * pc0_h[8].z) +
(-pc0_h[8].w)))));
}
float f127;
(f127 = (f125 / f126));
float f128;
(f128 = (((f127 + -1.0) * v115.z) / pc7_h[6].x));
float f129;
(f129 = pow(f128, pc7_h[6].y));
float f130;
(f130 = (((f128 <= 0.0)) ? (0.0) : (f129)));
vec3 v131;
(v131.xyz = mix(pc7_h[2].xyz, pc7_h[1].xyz, vec3(clamp(clamp(f130, 0.0, 1.0),
0.0, 1.0))));
float f132;
if ((pc0_h[7].w < 1.0))
{
(f132 = v17.w);
}
else
{
(f132 = (((v17.z * pc0_h[8].x) + pc0_h[8].y) + (1.0 / ((v17.z * pc0_h[8].z) +
(-pc0_h[8].w)))));
}
float f133;
(f133 = ((f125 + (-f132)) / pc7_h[6].x));
float f134;
(f134 = pow(f133, pc7_h[6].y));
float f135;
(f135 = (((f133 <= 0.0)) ? (0.0) : (f134)));
float f136;
(f136 = clamp((f135 + pc7_h[6].z), 0.0, 1.0));
float f137;
(f137 = clamp((0.69999999 + (-f136)), 0.0, 1.0));
float f138;
(f138 = (f7 * pc7_h[6].w));
vec3 v139;
(v139.xyz = ((((vec3(f127) * (v20 + (-v9))) + v9) + (-v3)) / pc7_h[7].xxx));
vec2 v140;
(v140.x = (f138 * -0.059999999));
(v140.y = (f138 * -0.029999999));
vec2 v141;
(v141.xy = (v83.xy * pc7_h[7].yy));
vec4 v142;
(v142.xyzw = texture(ps0, ((v140 + v139.xy) + v141)));
vec2 v143;
(v143.x = (f138 * 0.059999999));
(v143.y = (f138 * 0.029999999));
vec3 v144;
(v144.xyz = (texture(ps0, (v141 + (v143 + (v139.xy * vec2(1.5, 1.5))))).xyz *
vec3(10.0, 10.0, 10.0)));
float f145;
(f145 = pow(v144.x, 1.4));
float f146;
(f146 = (((v144.x <= 0.0)) ? (0.0) : (f145)));
float f147;
(f147 = pow(v144.y, 1.4));
float f148;
(f148 = (((v144.y <= 0.0)) ? (0.0) : (f147)));
vec2 v149;
(v149.x = f146);
(v149.y = f148);
float f150;
(f150 = pow(v144.z, 1.4));
float f151;
(f151 = (((v144.z <= 0.0)) ? (0.0) : (f150)));
vec3 v152;
(v152.xy = v149);
(v152.z = f151);
vec3 v153;
(v153.xyz = min(v142.xyz, v152));
float f154;
(f154 = dot(v153, vec3(0.30000001, 0.58999997, 0.11)));
vec3 v155;
(v155.x = f154);
(v155.y = f154);
(v155.z = f154);
vec3 v156;
(v156.xyz = (v131 + (((vec3(f137) * (mix(v153, v155, vec3(((1.0 + sin((3.141593 *
f7))) * 0.5))) * pc7_h[7].zzz)) * vec3(0.1, 0.1, 0.1)) * vec3((1.0 + (-f34))))));
float f157;
(f157 = max(abs((1.0 + (-max(0.0, dot(v114, v21))))), 9.9999997e-05));
float f158;
(f158 = pow(f157, 5.0));
float f159;
(f159 = (((f157 <= 0.0)) ? (0.0) : (f158)));
float f160;
(f160 = mix(pc7_h[8].w, pc7_h[8].z, f159));
float f161;
(f161 = (1.0 + (-clamp(f57, 0.0, 1.0))));
float f162;
(f162 = pow(f161, 3.0));
float f163;
(f163 = (((f161 <= 0.0)) ? (0.0) : (f162)));
float f164;
(f164 = pow(f163, 5.0));
float f165;
(f165 = (((f163 <= 0.0)) ? (0.0) : (f164)));
vec3 v166;
(v166.xyz = ((pc7_h[3].xyz * vec3((f165 * (1.0 + (-clamp(v117.z, 0.0, 1.0)))))) *
pc7_h[9].xxx));
vec3 v167;
float f168;
(f168 = length(v114));
(v167.xyz = (v114 / vec3(f168)));
vec3 v169;
(v169.xyz = ((((vec3(dot(v21, v167)) * v167) * vec3(2.0, 2.0, 2.0)) + (-v21)) *
vec3(-1.0, -1.0, -1.0)));
vec2 v170;
(v170.x = v169.x);
(v170.y = v169.y);
vec3 v171;
(v171.xy = v170);
(v171.z = abs(v169.z));
vec3 v172;
(v172.xyz = (-v171));
vec3 v173;
float f174;
(f174 = length(v172));
(v173.xyz = ((v172 / vec3(f174)) * vec3(1.0, 1.0, -1.0)));
vec2 v175;
(v175.x = ((1.0 + (atan(v173.x, (-v173.y)) / 3.141593)) / 2.0));
(v175.y = (acos(v173.z) / 3.141593));
vec4 v176;
(v176.xyz = v166);
(v176.w = pc7_h[9].y);
vec4 v177;
(v177.w = 0.0);
(v177.xyz = textureLod(ps6, (v175 * vec2(1.0, 2.0)), 0.0).xyz);
(v16.xyz = v114);
vec3 v178;
(v178.xyz = clamp(v156, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)));
float f179;
(f179 = max(0.015625, clamp(f160, 0.0, 1.0)));
float f180;
(f180 = clamp(f136, 0.0, 1.0));
float f181;
(f181 = clamp(pc7_h[8].x, 0.0, 1.0));
vec4 v182;
(v182.xyzw = v176);
(v182.xyz = clamp(v166, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)));
(v15.xyz = v182.xyz);
float f183;
(f183 = max(0.015625, clamp(f160, 0.0, 1.0)));
(v14.xyz = vec3(0.0, 0.0, 0.0));
float f184;
(f184 = (0.079999998 * clamp(pc7_h[8].y, 0.0, 1.0)));
vec3 v185;
(v185.xyz = vec3(f184));
vec4 v186;
(v186.xyzw = ((vec4(f183) * vec4(-1.0, -0.0275, -0.57200003, 0.022)) + vec4(1.0,
0.0425, 1.04, -0.039999999)));
vec2 v187;
(v187.xy = ((vec2(-1.04, 1.04) * vec2(((min((v186.x * v186.x), exp2((-9.2799997 *
max(dot(v114, v21), 0.0)))) * v186.x) + v186.y))) + v186.zw));
vec3 v188;
(v188.xyz = ((vec3(f184) * v187.xxx) + vec3((clamp((50.0 * f184), 0.0, 1.0) *
v187.y))));
(f13 = 0.0);
(f12 = 1.0);
if (bool(f0))
{
vec3 v189;
vec3 v190;
vec4 v191;
(v191.w = 1.0);
(v191.xyz = v114);
(v190.x = dot(pc0_h[21], v191));
(v190.y = dot(pc0_h[22], v191));
(v190.z = dot(pc0_h[23], v191));
vec4 v192;
(v192.xyzw = (v114.xyzz * v114.yzzx));
(v189.x = dot(pc0_h[24], v192));
(v189.y = dot(pc0_h[25], v192));
(v189.z = dot(pc0_h[26], v192));
vec3 v193;
(v193.xyz = (max(vec3(0.0, 0.0, 0.0), ((v190 + v189) + (pc0_h[27].xyz *
vec3(((v114.x * v114.x) + (-(v114.y * v114.y))))))) * pc0_h[20].xyz));
(v14.xyz = (v193 * v178));
(f13 = dot(v193, vec3(0.30000001, 0.58999997, 0.11)));
}
float f194;
(f194 = min(1.0, (f13 * 2.0)));
(v14.xyz = (v14 + (mix(v6, vec3(0.0, 0.0, 0.0), vec3((f194 * f194))) * v178)));
bool b195;
(b195 = (f2 > 0.0));
float f196;
vec4 v197;
float f198;
float f199;
vec4 v200;
(v200.xyzw = vec4(1.0, 1.0, 65504.0, 1.0));
(f199 = pc2_h[1].w);
(v197.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
int i201;
(i201 = (((pc2_h[3].w == 2.0)) ? (1) : (0)));
int i202;
(i202 = ((b195) ? (0) : (i201)));
vec4 v203;
(v203.w = 1.0);
(v203.x = v17.x);
(v203.y = v17.y);
(v203.z = v17.w);
vec4 v204;
(v204.xyzw = (pc2_h[(8 + (i202 * 4))] + ((pc2_h[(7 + (i202 * 4))] * v203.zzzz) +
((pc2_h[(6 + (i202 * 4))] * v203.yyyy) + (pc2_h[(5 + (i202 * 4))] * v17.xxxx)))));
(v197.xyzw = v204);
(f198 = float(i202));
float f205;
(f205 = min(v204.z, 0.99998999));
(f196 = 1.0);
if ((((((pc2_h[3].w > 0.0) && (v204.x > 0.0)) && (v204.x < 1.0)) && (v204.y >
0.0)) && (v204.y < 1.0)))
{
vec2 v206;
(v206.xy = ((v204.xy * pc2_h[2].xy) + vec2(-0.5, -0.5)));
vec2 v207;
(v207.xy = fract(v206));
vec2 v208;
(v208.xy = ((floor(v206) + vec2(0.5, 0.5)) * pc2_h[2].zw));
vec3 v209;
(v209.xy = v208);
(v209.z = f198);
vec4 v210;
(v210.xyzw = clamp(((textureGatherOffset(ps8, v209, ivec2(-1, -1)) *
vec4(f199)) + (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v211;
(v211.xy = v208);
(v211.z = f198);
vec4 v212;
(v212.xyzw = clamp(((textureGatherOffset(ps8, v211, ivec2(1, -1)) * vec4(f199))
+ (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0,
1.0)));
vec3 v213;
(v213.xy = v208);
(v213.z = f198);
vec4 v214;
(v214.xyzw = clamp(((textureGatherOffset(ps8, v213, ivec2(-1, 1)) * vec4(f199))
+ (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0,
1.0)));
vec3 v215;
(v215.xy = v208);
(v215.z = f198);
vec4 v216;
(v216.xyzw = clamp(((textureGatherOffset(ps8, v215, ivec2(1, 1)) * vec4(f199))
+ (-vec4(((f205 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0, 1.0, 1.0,
1.0)));
vec4 v217;
(v217.x = (v210.w * (1.0 + (-v207.x))));
(v217.y = (v210.x * (1.0 + (-v207.x))));
(v217.z = (v214.w * (1.0 + (-v207.x))));
(v217.w = (v214.x * (1.0 + (-v207.x))));
(v217.x = (v217.x + v210.z));
(v217.y = (v217.y + v210.y));
(v217.z = (v217.z + v214.z));
(v217.w = (v217.w + v214.y));
(v217.x = (v217.x + v212.w));
(v217.y = (v217.y + v212.x));
(v217.z = (v217.z + v216.w));
(v217.w = (v217.w + v216.x));
(v217.x = (v217.x + (v212.z * v207.x)));
(v217.y = (v217.y + (v212.y * v207.x)));
(v217.z = (v217.z + (v216.z * v207.x)));
(v217.w = (v217.w + (v216.y * v207.x)));
vec4 v218;
(v218.yz = vec2(1.0, 1.0));
(v218.x = (1.0 + (-v207.y)));
(v218.w = v207.y);
(f196 = dot(v217, (v218 * vec4(0.1111111, 0.1111111, 0.1111111, 0.1111111))));
}
vec3 v219;
(v219.z = 0.0099999998);
(v219.xy = pc2_h[4].ww);
vec3 v220;
(v220.xyz = clamp((min(v204.xyz, (vec3(1.0, 1.0, 1.0) + (-v204.xyz))) / v219),
vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)));
float f221;
(f221 = length((vec3(1.0, 1.0, 1.0) + (-(v220 * v220)))));
vec4 v222;
(v222.z = 0.0);
(v222.x = f196);
(v222.y = f196);
(v222.w = clamp(f221, 0.0, 1.0));
(v200.xyzw = v222);
(v200.x = mix(f196, 1.0, v222.w));
if ((pc2_h[4].x > 0.0))
{
float f223;
int i224;
(i224 = -1);
vec4 v225;
(v225.xyzw = (pc2_h[24] + ((pc2_h[23] * v20.zzzz) + ((pc2_h[22] * v20.yyyy) +
(pc2_h[21] * v20.xxxx)))));
(v197.xyzw = v225);
if (((((((v225.x > pc2_h[37].x) && (v225.x < pc2_h[37].z)) && (v225.y >
pc2_h[37].y)) && (v225.y < pc2_h[37].w)) && (v225.z > 0.0)) && (v225.z < 1.0)))
{
(i224 = 0);
}
else
{
vec4 v226;
(v226.xyzw = (pc2_h[28] + ((pc2_h[27] * v20.zzzz) + ((pc2_h[26] * v20.yyyy) +
(pc2_h[25] * v20.xxxx)))));
(v197.xyzw = v226);
if (((((((v226.x > pc2_h[38].x) && (v226.x < pc2_h[38].z)) && (v226.y >
pc2_h[38].y)) && (v226.y < pc2_h[38].w)) && (v226.z > 0.0)) && (v226.z < 1.0)))
{
(i224 = 1);
}
}
(f223 = 1.0);
(f196 = 1.0);
if ((i224 >= 0))
{
float f227;
(f227 = min(v197.z, 0.99998999));
(f198 = (pc2_h[45][i224] + pc2_h[3].w));
vec4 v228;
(v228.zw = vec2(0.0, 0.0));
(v228.x = pc2_h[(41 + i224)].x);
(v228.y = pc2_h[(41 + i224)].y);
vec4 v229;
(v229.xyzw = (v197 + v228));
(v197.xyzw = v229);
(v200.z = (float(i224) + 1.0));
vec2 v230;
(v230.xy = ((v229.xy * pc2_h[2].xy) + vec2(-0.5, -0.5)));
vec2 v231;
(v231.xy = fract(v230));
vec2 v232;
(v232.xy = ((floor(v230) + vec2(0.5, 0.5)) * pc2_h[2].zw));
vec3 v233;
(v233.xy = v232);
(v233.z = f198);
vec4 v234;
(v234.xyzw = clamp(((textureGatherOffset(ps8, v233, ivec2(-1, -1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v235;
(v235.xy = v232);
(v235.z = f198);
vec4 v236;
(v236.xyzw = clamp(((textureGatherOffset(ps8, v235, ivec2(1, -1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v237;
(v237.xy = v232);
(v237.z = f198);
vec4 v238;
(v238.xyzw = clamp(((textureGatherOffset(ps8, v237, ivec2(-1, 1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec3 v239;
(v239.xy = v232);
(v239.z = f198);
vec4 v240;
(v240.xyzw = clamp(((textureGatherOffset(ps8, v239, ivec2(1, 1)) *
vec4(f199)) + (-vec4(((f227 * f199) + -1.0)))), vec4(0.0, 0.0, 0.0, 0.0), vec4(1.0,
1.0, 1.0, 1.0)));
vec4 v241;
(v241.x = (v234.w * (1.0 + (-v231.x))));
(v241.y = (v234.x * (1.0 + (-v231.x))));
(v241.z = (v238.w * (1.0 + (-v231.x))));
(v241.w = (v238.x * (1.0 + (-v231.x))));
(v241.x = (v241.x + v234.z));
(v241.y = (v241.y + v234.y));
(v241.z = (v241.z + v238.z));
(v241.w = (v241.w + v238.y));
(v241.x = (v241.x + v236.w));
(v241.y = (v241.y + v236.x));
(v241.z = (v241.z + v240.w));
(v241.w = (v241.w + v240.x));
(v241.x = (v241.x + (v236.z * v231.x)));
(v241.y = (v241.y + (v236.y * v231.x)));
(v241.z = (v241.z + (v240.z * v231.x)));
(v241.w = (v241.w + (v240.y * v231.x)));
vec4 v242;
(v242.yz = vec2(1.0, 1.0));
(v242.x = (1.0 + (-v231.y)));
(v242.w = v231.y);
(f196 = dot(v241, (v242 * vec4(0.1111111, 0.1111111, 0.1111111,
0.1111111))));
(f223 = 0.0);
if ((float(i224) == (pc2_h[4].x + -1.0)))
{
vec3 v243;
(v243.xyz = v229.xyz);
float f244;
if (((((((v229.x > 0.89999998) || (v229.x < 0.1)) || (v229.y > 0.89999998))
|| (v229.y < 0.1)) || (v229.z > 0.89999998)) || (v229.z < 0.1)))
{
vec3 v245;
(v245.xyz = ((v243 + vec3(-0.89999998, -0.89999998, -0.89999998)) /
vec3(0.1, 0.1, 0.1)));
vec3 v246;
(v246.xyz = (v243 / vec3(0.1, 0.1, 0.1)));
(f244 = min((1.0 + (-clamp(max(v245.z, max(v245.x, v245.y)), 0.0, 1.0))),
clamp(min(v246.z, min(v246.y, v246.x)), 0.0, 1.0)));
}
else
{
(f244 = 1.0);
}
(f223 = (1.0 + (-f244)));
}
}
float f247;
(f247 = mix(f196, 1.0, f223));
(f196 = f247);
(v200.x = min(v200.x, f247));
}
else
{
(v200.x = min(v200.x, 1.0));
}
(f12 = v200.x);
vec3 v248;
(v248.xyz = pc2_h[1].xyz);
float f249;
(f249 = max(0.0, dot(v114, pc2_h[1].xyz)));
vec3 v250;
(v250.xyz = (pc2_h[0].xyz * vec3(3.141593, 3.141593, 3.141593)));
float f251;
(f251 = max(max(pc2_h[0].x, pc2_h[0].y), pc2_h[0].z));
if ((f251 > 0.0))
{
vec4 v252;
vec3 v253;
(v253.xyz = (v178 * vec3(0.3183099, 0.3183099, 0.3183099)));
float f254;
(f254 = f249);
float f255;
float f256;
float f257;
(f257 = dot(v21, v248));
float f258;
(f258 = inversesqrt((2.0 + (2.0 * f257))));
float f259;
(f259 = min(0.99989998, clamp(((f249 + dot(v114, v21)) * f258), 0.0, 1.0)));
(f256 = f259);
float f260;
(f260 = clamp((f258 + (f258 * f257)), 0.0, 1.0));
(f255 = f260);
float f261;
(f261 = clamp((abs(clamp(dot(v114, v21), 0.0, 1.0)) + 0.0099999998), 0.0,
1.0));
if ((f181 != 0.0))
{
float f262;
(f262 = f259);
float f263;
(f263 = f260);
float f264;
(f264 = f249);
bool b265;
(b265 = true);
if ((f181 > 0.0))
{
float f266;
(f266 = sqrt((1.0 + (-(f181 * f181)))));
float f267;
(f267 = (((2.0 * f249) * f261) + (-f257)));
if ((f267 >= f266))
{
(f262 = 1.0);
(f263 = abs(f261));
}
else
{
float f268;
(f268 = (f181 * inversesqrt((1.0 + (-(f267 * f267))))));
float f269;
(f269 = (f268 * (f261 + (-(f267 * f249)))));
float f270;
(f270 = (f268 * ((((2.0 * f261) * f261) + -1.0) + (-(f267 * f257)))));
float f271;
(f271 = sqrt(clamp(((((1.0 + (-(f249 * f249))) + (-(f261 * f261))) + (-
(f257 * f257))) + (((2.0 * f249) * f261) * f257)), 0.0, 1.0)));
float f272;
(f272 = (f268 * f271));
float f273;
(f273 = (((f268 * f271) * 2.0) * f261));
float f274;
(f274 = (((f249 * f266) + f261) + f269));
float f275;
(f275 = (((f257 * f266) + 1.0) + f270));
float f276;
(f276 = (f272 * f275));
float f277;
(f277 = (f274 * f275));
float f278;
(f278 = (f273 * f274));
float f279;
(f279 = (f277 * ((-0.5 * f276) + ((0.25 * f273) * f274))));
float f280;
(f280 = (((f276 * f276) + (f278 * (f278 + (-(2.0 * f276))))) + (f274 *
(((((f249 * f266) + f261) * f275) * f275) + (f277 * ((-0.5 * (f275 + (f257 *
f266))) + -0.5))))));
float f281;
(f281 = ((2.0 * f279) / ((f280 * f280) + (f279 * f279))));
float f282;
(f282 = (f281 * f280));
float f283;
(f283 = (1.0 + (-(f281 * f279))));
float f284;
(f284 = ((f249 * f266) + ((f283 * f269) + (f282 * f272))));
(f264 = f284);
float f285;
(f285 = ((f257 * f266) + ((f283 * f270) + (f282 * f273))));
float f286;
(f286 = inversesqrt(((2.0 * f285) + 2.0)));
(f262 = clamp(((f284 + f261) * f286), 0.0, 1.0));
(f263 = clamp((f286 + (f286 * f285)), 0.0, 1.0));
(b265 = false);
}
}
if (b265)
{
(b265 = false);
}
(f256 = f262);
(f255 = f263);
(f254 = f264);
}
float f287;
float f288;
(f288 = (f179 * f179));
(f287 = (f288 * f288));
float f289;
(f289 = min(0.99989998, f256));
float f290;
(f290 = ((((f289 * f287) + (-f289)) * f289) + 1.0));
float f291;
(f291 = sqrt(f287));
float f292;
float f293;
(f293 = (1.0 + (-f255)));
float f294;
(f294 = (f293 * f293));
(f292 = ((f294 * f294) * f293));
float f295;
(f295 = min(1.0, (f179 * 2.0)));
float f296;
(f296 = dot(v114, v21));
float f297;
(f297 = dot(v21, v248));
float f298;
(f298 = inversesqrt((2.0 + (2.0 * f297))));
float f299;
(f299 = min(0.99900001, clamp(((f249 + f296) * f298), 0.0, 1.0)));
float f300;
(f300 = (f295 * f295));
float f301;
(f301 = (f299 * f300));
float f302;
(f302 = (f300 / (clamp((abs((1.0 + (-(f299 * f299)))) + 6.1035164e-05), 0.0,
1.0) + (f301 * f301))));
float f303;
(f303 = clamp((abs(f296) + 0.0099999998), 0.0, 1.0));
float f304;
(f304 = (f295 * f295));
float f305;
float f306;
(f306 = (1.0 + (-clamp((f298 + (f298 * f297)), 0.0, 1.0))));
float f307;
(f307 = (f306 * f306));
(f305 = ((f307 * f307) * f306));
float f308;
(f308 = max(max(v250.x, v250.y), max(v250.z, 9.9999997e-05)));
vec3 v309;
(v309.x = (v250.x / f308));
(v309.y = (v250.y / f308));
(v309.z = (v250.z / f308));
vec3 v310;
(v310.xyz = (v14 + ((vec3((f12 * f249)) * (v250 * ((vec3(1.0, 1.0, 1.0) + v309)
* vec3(0.5, 0.5, 0.5)))) * (v253 + (clamp((((vec3(((f287 / ((3.141593 * f290) *
f290)) * (0.5 * (1.0 / ((f254 * ((f261 * (1.0 + (-f291))) + f291)) + (f261 * ((f254
* (1.0 + (-f291))) + f291))))))) * (vec3((clamp((50.0 * v185.y), 0.0, 1.0) * f292))
+ (vec3((1.0 + (-f292))) * v185))) + clamp((vec3(((min((f302 * f302), 2048.0) /
3.141593) * (0.5 * (1.0 / ((f249 * ((f303 * (1.0 + (-f304))) + f304)) + (f303 *
((f249 * (1.0 + (-f304))) + f304))))))) * (vec3((clamp((50.0 * v15.y), 0.0, 1.0) *
f305)) + (vec3((1.0 + (-f305))) * v15))), vec3(0.0, 0.0, 0.0), vec3(65504.0,
65504.0, 65504.0))) / vec3(5.0, 5.0, 5.0)), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0,
1.0)) * vec3(5.0, 5.0, 5.0))))));
(v14.xyz = v310);
(v252.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
if ((f1 > 0.0))
{
float f311;
(f311 = float((pc4_h[0].y > 0.0)));
float f312;
float f313;
(f313 = pc4_h[0].y);
(f312 = ((bool(f311)) ? (f313) : (f5)));
float f314;
(f314 = ((min(f4, f312) + -1.0) + (-(1.0 + (-(1.2 * log2(max(f183,
9.9999997e-05))))))));
vec4 v315;
(v315.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
if ((f1 == 1.0))
{
(v315.xyzw = textureLod(ps4, (((v17.xy / v17.ww) * pc0_h[29].xy) +
pc0_h[29].wz), f314));
}
(v252.xyzw = v315);
}
else
{
if ((pc1_h[1].z > 0.0))
{
vec4 v316;
(v316.xyzw = vec4(0.0, 0.0, 0.0, 0.0));
float f317;
(f317 = length(in_TEXCOORD8.xy));
float f318;
(f318 = (max(pc1_h[1].z, (f317 * pc1_h[1].x)) + (-f317)));
vec3 v319;
(v319 = reflect((-v21), v16));
vec3 v320;
(v320.xyz = (in_TEXCOORD8.xyz + (normalize(v319) * vec3(f318))));
vec4 v321;
vec4 v322;
vec4 v323;
vec4 v324;
(v324.xyzw = ((pc0_h[0].wwww * pc0_h[14]) + ((pc0_h[0].zzzz * pc0_h[13]) +
((pc0_h[0].yyyy * pc0_h[12]) + (pc0_h[0].xxxx * pc0_h[11])))));
(v321.xyzw = v324);
(v324.xyzw = (pc0_h[1].xxxx * pc0_h[11]));
vec4 v325;
(v325.xyzw = ((pc0_h[1].wwww * pc0_h[14]) + ((pc0_h[1].zzzz * pc0_h[13]) +
((pc0_h[1].yyyy * pc0_h[12]) + v324))));
(v322.xyzw = v325);
(v325.xyzw = (pc0_h[2].xxxx * pc0_h[11]));
vec4 v326;
(v326.xyzw = ((pc0_h[2].wwww * pc0_h[14]) + ((pc0_h[2].zzzz * pc0_h[13]) +
((pc0_h[2].yyyy * pc0_h[12]) + v325))));
(v323.xyzw = v326);
(v326.xyzw = (pc0_h[3].xxxx * pc0_h[11]));
vec4 v327;
(v327.xyzw = (((pc0_h[3].wwww * pc0_h[14]) + ((pc0_h[3].zzzz * pc0_h[13]) +
((pc0_h[3].yyyy * pc0_h[12]) + v326))) + ((v323 * v320.zzzz) + ((v322 * v320.yyyy)
+ (v321 * v320.xxxx)))));
vec3 v328;
(v328.xyz = (v327.xyz / v327.www));
vec2 v329;
(v329.x = (0.5 + (0.5 * v328.x)));
(v329.y = (0.5 + (-(0.5 * v328.y))));
vec2 v330;
(v330.xy = (((v329 * pc0_h[15].xy) + pc0_h[30].xy) * pc0_h[16].zw));
vec4 v331;
(v331.xyzw = texture(ps5, v330));
(v316.xyzw = v331);
(v316.w = 1.0);
vec2 v332;
(v332.xy = abs(((v330 * vec2(2.0, 2.0)) + vec2(-1.0, -1.0))));
float f333;
(f333 = clamp(((1.0 + (-max((v332.x + -0.1), v332.y))) * 5.0), 0.0, 1.0));
bvec3 v334;
(v334.xyz = isnan(v331.xyz));
vec3 v335;
if (v334.x)
{
(v335.x = 0.0);
}
else
{
(v335.x = v316.x);
}
if (v334.y)
{
(v335.y = 0.0);
}
else
{
(v335.y = v316.y);
}
if (v334.z)
{
(v335.z = 0.0);
}
else
{
(v335.z = v316.z);
}
(v316.xyz = v335);
(v316.w = (pc1_h[1].w * f333));
(v252.xyzw = v316);
}
}
(v14.xyz = (v310 + (mix(v177.xyz, v252.xyz, vec3(clamp(v252.w, 0.0, 1.0))) *
v188)));
}
vec3 v336;
(v336.xyz = (v14 + max(v22, vec3(0.0, 0.0, 0.0))));
(v14.xyz = v336);
bool b337;
(b337 = any(not(not(isinf(v336)))));
bool b338;
(b338 = any(isnan(v336)));
if ((b337 || b338))
{
(v14.xyz = vec3(0.0, 0.0, 0.0));
}
vec4 v339;
(v339.xyz = ((v14 * in_TEXCOORD7.www) + in_TEXCOORD7.xyz));
(v339.w = f180);
(v11.xyzw = v339);
(v11.xyz = (v339.xyz * vec3(f8)));
(out_Target0.xyzw = v11);
}

You might also like