Repository URL to install this package:
|
Version:
0.19.0 ▾
|
SREV_TAM
EMAN_TAM defaultLit LDMS_TAM NMOD_TAM MFER_TAM TFER_TAM BIU_TAMô MaterialParams
baseColor baseMetallic baseRoughness reflectance pointSize clearCoat clearCoatRoughness anisotropy shDegree _doubleSided BIS_TAMk MaterialParams albedo ao_rough_metalMap normalMap reflectanceMap anisotropyMap BUS_TAM MaterialParams SSOD_TAM ISOD_TAM NELB_TAM DMRT_TAM SWED_TAM IRWC_TAM IRWD_TAM SETD_TAM OMUC_TAM PORP_TAM DAHS_TAM ROIC_TAM AQER_TAM ÿ AAPS_TAM RAVS_TAM >RHTS_TAM ÍÌL>ODEV_TAM RTNI_TAM PDSC_TAM TXET_CID+ #version 410 layout(std140) uniform FrameUniforms { mat4 a; mat4 b; mat4 c; mat4 d; mat4 e; mat4 f; mat4 g[4]; vec4 h; vec4 i; vec3 j; float k; vec4 l; vec4 m; vec3 n; uint o; vec3 p; uint q; vec3 r; float s; vec4 t; uvec2 u; vec2 v; float w; float x; float y; float z; vec3 az[9]; vec4 bz; float cz; float dz; float ez; uint fz; vec3 gz; float hz; float iz; float jz; float kz; float lz; vec3 mz; float nz; float oz; float pz; float qz; uint rz; float sz; float tz; float uz; float vz; vec2 wz; vec2 xz; vec4 yz[60]; } frameUniforms; layout(std140) uniform ObjectUniforms mat3 b; vec4 c; int d; int e; uint f; float g; } objectUniforms; layout(std140) uniform MaterialParams vec3 a; float b; float c; float d; float e; float f; float h; int i; uint j; } materialParams; layout(location = 0) in vec4 mesh_position; layout(location = 8) in vec4 mesh_custom0; layout(location = 9) in vec4 mesh_custom1; layout(location = 10) in vec4 mesh_custom2; layout(location = 11) in vec4 mesh_custom3; layout(location = 12) in vec4 mesh_custom4; layout(location = 13) in vec4 mesh_custom5; layout(location = 14) in vec4 mesh_custom6; layout(location = 15) in vec4 mesh_custom7; layout(location = 2) in vec4 mesh_color; layout(location = 1) in vec4 mesh_tangents; layout(location = 9) out vec4 vertex_color; layout(location = 0) out vec4 variable_colorFromSh; layout(location = 1) out vec4 variable_test1; layout(location = 2) out vec4 variable_test2; layout(location = 3) out vec4 variable_test3; layout(location = 4) out vec3 vertex_worldPosition; layout(location = 5) out vec3 vertex_worldNormal; layout(location = 7) out vec4 vertex_position; void main() vec4 _654 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3])); gl_PointSize = materialParams.e; vec3 _692 = _654.xyz; vec3 _699 = _692 * inversesqrt(dot(_692, _692)); vec3 _812 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1118; if (materialParams.i >= 1) vec4 _671 = mesh_custom1; vec4 _672 = mesh_custom2; float _674[9]; for (int _1110 = 0; _1110 < 4; ) _674[_1110] = _671[_1110]; _674[4 + _1110] = _672[_1110]; _1110++; continue; } _674[8] = mesh_custom3.x; float _677[9] = _674; vec3 _823; for (int _1111 = 0; _1111 < 3; ) _823[_1111] = 0.48860251903533935546875 * ((((-_699.y) * _677[_1111]) + (_699.z * _677[3 + _1111])) - (_699.x * _677[6 + _1111])); _1111++; _1118 = _812 + _823; else _1118 = _812; vec3 _1119; if (materialParams.i >= 2) float _679[15]; _679[0] = mesh_custom3.y; _679[1] = mesh_custom3.z; _679[2] = mesh_custom3.w; vec4 _680 = mesh_custom4; vec4 _681 = mesh_custom5; vec4 _682 = mesh_custom6; for (int _1114 = 0; _1114 < 4; ) _679[3 + _1114] = _680[_1114]; _679[7 + _1114] = _681[_1114]; _679[11 + _1114] = _682[_1114]; _1114++; float _685[15] = _679; float _909 = _699.z; float _915 = (-1.09254848957061767578125) * _909; float _917 = _699.x; float _922 = _699.y; float _935 = (0.946174681186676025390625 * (_909 * _909)) - 0.3153915703296661376953125; float _939 = _915 * _917; float _943 = _915 * _922; float _945 = 0.546274244785308837890625 * ((_917 * _917) - (_922 * _922)); float _947 = 0.546274244785308837890625 * ((2.0 * _917) * _922); vec3 _889; for (int _1115 = 0; _1115 < 3; ) _889[_1115] = ((((_947 * _685[_1115]) + (_943 * _685[3 + _1115])) + (_935 * _685[6 + _1115])) + (_939 * _685[9 + _1115])) + (_945 * _685[12 + _1115]); _1115++; _1119 = _1118 + _889; _1119 = _1118; vec4 _1100 = vec4(0.0); _1100.x = _1119.x; vec4 _1103 = _1100; _1103.y = _1119.y; vec4 _1106 = _1103; _1106.z = _1119.z; vec4 _1108 = _1106; _1108.w = 0.0; vertex_color = mesh_color; variable_colorFromSh = _1108; variable_test1 = mesh_custom7; variable_test2 = mesh_custom1; variable_test3 = mesh_custom6; vertex_worldPosition = _692; vertex_worldNormal = objectUniforms.b * ((vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy)); gl_Position = frameUniforms.e * _654; vertex_position = gl_Position; gl_Position.z = dot(gl_Position.zw, frameUniforms.wz); uniform sampler2D light_ssao; uniform sampler2D light_iblDFG; uniform samplerCube light_iblSpecular; layout(location = 5) in vec3 vertex_worldNormal; layout(location = 4) in vec3 vertex_worldPosition; layout(location = 7) in vec4 vertex_position; layout(location = 0) in vec4 variable_colorFromSh; layout(location = 0) out vec4 fragColor; layout(location = 9) in vec4 vertex_color; layout(location = 1) in vec4 variable_test1; layout(location = 2) in vec4 variable_test2; layout(location = 3) in vec4 variable_test3; vec2 shading_normalizedViewportCoord; vec3 shading_position; vec4 _2017; float _2040; float evaluateSSAO() vec2 _433 = vec3(shading_normalizedViewportCoord, _2040).xy; if (frameUniforms.sz > 0.0) vec4 _459 = textureGather(light_ssao, _433, 1); vec4 _463 = textureGather(light_ssao, _433, 2); vec2 _470 = fract((_433 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _473 = _470.x; float _474 = 1.0 - _473; float _476 = _470.y; vec4 _1940 = _2017; _1940.x = _474 * _476; vec4 _1944 = _1940; _1944.y = _473 * _476; float _489 = 1.0 - _476; vec4 _1948 = _1944; _1948.z = _473 * _489; vec4 _1952 = _1948; _1952.w = _474 * _489; vec4 _1958 = _2017; _1958.x = (_459.x * 0.996108949184417724609375) + (_463.x * 0.00389105058275163173675537109375); vec4 _1964 = _1958; _1964.y = (_459.y * 0.996108949184417724609375) + (_463.y * 0.00389105058275163173675537109375); vec4 _1970 = _1964; _1970.z = (_459.z * 0.996108949184417724609375) + (_463.z * 0.00389105058275163173675537109375); vec4 _1976 = _1970; _1976.w = (_459.w * 0.996108949184417724609375) + (_463.w * 0.00389105058275163173675537109375); vec4 _562 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_1976 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _572 = max(vec4(6.103515625e-05), vec4(1.0) - (_562 * _562)) * _1952; return dot(textureGather(light_ssao, _433), _572) * (1.0 / (((_572.x + _572.y) + _572.z) + _572.w)); return textureLod(light_ssao, _433, 0.0).x; vec3 diffuseIrradiance(vec3 n) if (frameUniforms.az[0].x == 65504.0) ivec2 _778 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _793 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _800 = _793 * (1.0 / float(_778.x)); vec3 _804 = cross(_793, n) * (1.0 / float(_778.y)); vec3 _807 = n - _800; vec3 _812 = n + _800; return (((textureLod(light_iblSpecular, _807 - _804, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _812 - _804, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _812 + _804, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _807 + _804, frameUniforms.cz).xyz) * 0.25; return max((((((((frameUniforms.az[0] + (frameUniforms.az[1] * n.y)) + (frameUniforms.az[2] * n.z)) + (frameUniforms.az[3] * n.x)) + (frameUniforms.az[4] * (n.y * n.x))) + (frameUniforms.az[5] * (n.y * n.z))) + (frameUniforms.az[6] * (((3.0 * n.z) * n.z) - 1.0))) + (frameUniforms.az[7] * (n.z * n.x))) + (frameUniforms.az[8] * ((n.x * n.x) - (n.y * n.y))), vec3(0.0)); vec3 _1988; if (materialParams.j != 0u) vec3 _1987; if (gl_FrontFacing) _1987 = vertex_worldNormal; _1987 = -vertex_worldNormal; _1988 = _1987; _1988 = vertex_worldNormal; vec3 _1166 = normalize(_1988); shading_position = vertex_worldPosition; shading_normalizedViewportCoord = (vertex_position.xy * (0.5 / vertex_position.w)) + vec2(0.5); float _1229 = max(dot(_1166, normalize(frameUniforms.j - shading_position)), 9.9999997473787516355514526367188e-05); vec3 _1317 = variable_colorFromSh.xyz * 1.0; vec4 _1388 = textureLod(light_iblDFG, vec2(_1229, 1.0), 0.0); float _1424 = min(1.0, evaluateSSAO()); float _1517 = clamp((pow(_1229 + _1424, 7.62939453125e-06) - 1.0) + _1424, 0.0, 1.0); vec3 _1525 = mix(_1388.xxx, _1388.yyy, vec3(0.039999999105930328369140625)); fragColor = vec4((((((_1317 * diffuseIrradiance(_1166)) * (vec3(1.0) - _1525)) * 1.0) * max(vec3(_1424), ((((((_1317 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1424) + ((_1317 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1424) + ((_1317 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1424)) + (((_1525 * textureLod(light_iblSpecular, _1166, frameUniforms.cz).xyz) * ((vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1388.y) - 1.0))) * 1.0)) * max(vec3(_1517), ((((vec3(-0.250783979892730712890625) * _1517) + vec3(0.449896037578582763671875)) * _1517) + vec3(0.800507962703704833984375)) * _1517))) * frameUniforms.x, 1.0); struct MaterialInputs vec4 baseColor; float roughness; float metallic; float reflectance; float ambientOcclusion; vec4 emissive; vec3 sheenColor; float sheenRoughness; float clearCoat; float clearCoatRoughness; float anisotropy; vec3 anisotropyDirection; }; struct PixelParams vec3 diffuseColor; float perceptualRoughness; float perceptualRoughnessUnclamped; vec3 f0; vec3 dfg; vec3 energyCompensation; vec3 shading_view; vec3 shading_normal; float shading_NoV; vec3 shading_reflected; vec3 _2679; float _2682; vec4 _2706; float _2735; vec2 _749 = vec3(shading_normalizedViewportCoord, _2735).xy; vec4 _775 = textureGather(light_ssao, _749, 1); vec4 _779 = textureGather(light_ssao, _749, 2); vec2 _786 = fract((_749 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _789 = _786.x; float _790 = 1.0 - _789; float _792 = _786.y; vec4 _2629 = _2706; _2629.x = _790 * _792; vec4 _2633 = _2629; _2633.y = _789 * _792; float _805 = 1.0 - _792; vec4 _2637 = _2633; _2637.z = _789 * _805; vec4 _2641 = _2637; _2641.w = _790 * _805; vec4 _2647 = _2706; _2647.x = (_775.x * 0.996108949184417724609375) + (_779.x * 0.00389105058275163173675537109375); vec4 _2653 = _2647; _2653.y = (_775.y * 0.996108949184417724609375) + (_779.y * 0.00389105058275163173675537109375); vec4 _2659 = _2653; _2659.z = (_775.z * 0.996108949184417724609375) + (_779.z * 0.00389105058275163173675537109375); vec4 _2665 = _2659; _2665.w = (_775.w * 0.996108949184417724609375) + (_779.w * 0.00389105058275163173675537109375); vec4 _878 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2665 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _888 = max(vec4(6.103515625e-05), vec4(1.0) - (_878 * _878)) * _2641; return dot(textureGather(light_ssao, _749), _888) * (1.0 / (((_888.x + _888.y) + _888.z) + _888.w)); return textureLod(light_ssao, _749, 0.0).x; ivec2 _1093 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1108 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1115 = _1108 * (1.0 / float(_1093.x)); vec3 _1119 = cross(_1108, n) * (1.0 / float(_1093.y)); vec3 _1122 = n - _1115; vec3 _1127 = n + _1115; return (((textureLod(light_iblSpecular, _1122 - _1119, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1127 - _1119, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1127 + _1119, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1122 + _1119, frameUniforms.cz).xyz) * 0.25; vec3 sampleSunAreaLight(vec3 lightDirection) if (frameUniforms.m.w >= 0.0) float _1317 = dot(lightDirection, shading_reflected); vec3 _2707; if (_1317 < frameUniforms.m.x) _2707 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1317)) * frameUniforms.m.y)); _2707 = shading_reflected; return _2707; return lightDirection; void evaluateDirectionalLight(MaterialInputs material, PixelParams pixel, inout vec3 color) vec3 _2211 = sampleSunAreaLight(frameUniforms.p); float _2218 = clamp(dot(shading_normal, _2211), 0.0, 1.0); if (_2218 <= 0.0) return; vec3 _2241 = normalize(shading_view + _2211); float _2244 = clamp(_2218, 0.0, 1.0); float _2248 = clamp(dot(shading_normal, _2241), 0.0, 1.0); float _2336 = _2248 * pixel.roughness; float _2343 = pixel.roughness / ((1.0 - (_2248 * _2248)) + (_2336 * _2336)); float _2366 = pixel.roughness * pixel.roughness; float _2413 = 1.0 - clamp(dot(_2211, _2241), 0.0, 1.0); float _2422 = _2413 * _2413; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_2422 * _2422) * _2413))) * (((_2343 * _2343) * 0.3183098733425140380859375) * (0.5 / ((_2244 * sqrt(((shading_NoV - (_2366 * shading_NoV)) * shading_NoV) + _2366)) + (shading_NoV * sqrt(((_2244 - (_2366 * _2244)) * _2244) + _2366)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _2244)); vec3 _2677; vec3 _2676; _2676 = vertex_worldNormal; _2676 = -vertex_worldNormal; _2677 = _2676; _2677 = vertex_worldNormal; shading_view = normalize(frameUniforms.j - shading_position); shading_normal = normalize(_2677); shading_NoV = max(dot(shading_normal, shading_view), 9.9999997473787516355514526367188e-05); shading_reflected = reflect(-shading_view, shading_normal); vec3 _1717 = variable_colorFromSh.xyz * 1.0; vec4 _1788 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _1773 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1788.y) - 1.0)); float _1824 = min(1.0, evaluateSSAO()); float _1917 = clamp((pow(shading_NoV + _1824, 7.62939453125e-06) - 1.0) + _1824, 0.0, 1.0); vec3 _1925 = mix(_1788.xxx, _1788.yyy, vec3(0.039999999105930328369140625)); vec3 _1638 = (((((_1717 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _1925)) * 1.0) * max(vec3(_1824), ((((((_1717 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1824) + ((_1717 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1824) + ((_1717 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1824)) + (((_1925 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_1773 * 1.0)) * max(vec3(_1917), ((((vec3(-0.250783979892730712890625) * _1917) + vec3(0.449896037578582763671875)) * _1917) + vec3(0.800507962703704833984375)) * _1917))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _2679, _2682, _2682, _2682, _2682, _2679), PixelParams(_1717, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _1788.xyz, _1773), _1638); fragColor = vec4(_1638, 1.0); layout(std140) uniform LightsUniforms mat4 a[256]; } lightsUniforms; uniform usampler2D light_froxels; uniform usampler2D light_records; vec4 _3293; vec4 _3319; float _3320; vec2 _794 = vec3(shading_normalizedViewportCoord, _3320).xy; vec4 _819 = textureGather(light_ssao, _794, 1); vec4 _823 = textureGather(light_ssao, _794, 2); vec2 _830 = fract((_794 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _833 = _830.x; float _834 = 1.0 - _833; float _836 = _830.y; vec4 _3178 = _3293; _3178.x = _834 * _836; vec4 _3182 = _3178; _3182.y = _833 * _836; float _849 = 1.0 - _836; vec4 _3186 = _3182; _3186.z = _833 * _849; vec4 _3190 = _3186; _3190.w = _834 * _849; vec4 _3196 = _3293; _3196.x = (_819.x * 0.996108949184417724609375) + (_823.x * 0.00389105058275163173675537109375); vec4 _3202 = _3196; _3202.y = (_819.y * 0.996108949184417724609375) + (_823.y * 0.00389105058275163173675537109375); vec4 _3208 = _3202; _3208.z = (_819.z * 0.996108949184417724609375) + (_823.z * 0.00389105058275163173675537109375); vec4 _3214 = _3208; _3214.w = (_819.w * 0.996108949184417724609375) + (_823.w * 0.00389105058275163173675537109375); vec4 _922 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3214 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _932 = max(vec4(6.103515625e-05), vec4(1.0) - (_922 * _922)) * _3190; return dot(textureGather(light_ssao, _794), _932) * (1.0 / (((_932.x + _932.y) + _932.z) + _932.w)); return textureLod(light_ssao, _794, 0.0).x; ivec2 _1137 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1152 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1159 = _1152 * (1.0 / float(_1137.x)); vec3 _1163 = cross(_1152, n) * (1.0 / float(_1137.y)); vec3 _1166 = n - _1159; vec3 _1171 = n + _1159; return (((textureLod(light_iblSpecular, _1166 - _1163, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1171 - _1163, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1171 + _1163, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1166 + _1163, frameUniforms.cz).xyz) * 0.25; vec3 _3226; vec3 _3225; _3225 = vertex_worldNormal; _3225 = -vertex_worldNormal; _3226 = _3225; _3226 = vertex_worldNormal; vec3 _1833 = normalize(_3226); vec3 _1839 = normalize(frameUniforms.j - shading_position); float _1895 = max(dot(_1833, _1839), 9.9999997473787516355514526367188e-05); vec3 _1988 = variable_colorFromSh.xyz * 1.0; vec4 _2059 = textureLod(light_iblDFG, vec2(_1895, 1.0), 0.0); vec3 _2044 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2059.y) - 1.0)); float _2095 = min(1.0, evaluateSSAO()); float _2188 = clamp((pow(_1895 + _2095, 7.62939453125e-06) - 1.0) + _2095, 0.0, 1.0); vec3 _2196 = mix(_2059.xxx, _2059.yyy, vec3(0.039999999105930328369140625)); float _2361 = 1.0 - gl_FragCoord.z; uvec2 _2400 = uvec2((vec3(shading_normalizedViewportCoord, _2361).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _2385 = ((_2400.x * frameUniforms.q) + (_2400.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2361) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _2432 = texelFetch(light_froxels, ivec2(int(_2385 & 63u), int(_2385 >> 6u)), 0); uint _2435 = _2432.x; uint _2333 = _2435 + (_2432.y & 255u); vec3 _3259; _3259 = (((((_1988 * diffuseIrradiance(_1833)) * (vec3(1.0) - _2196)) * 1.0) * max(vec3(_2095), ((((((_1988 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2095) + ((_1988 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2095) + ((_1988 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2095)) + (((_2196 * textureLod(light_iblSpecular, _1833, frameUniforms.cz).xyz) * (_2044 * 1.0)) * max(vec3(_2188), ((((vec3(-0.250783979892730712890625) * _2188) + vec3(0.449896037578582763671875)) * _2188) + vec3(0.800507962703704833984375)) * _2188))) * frameUniforms.x; vec3 _3286; for (uint _3258 = _2435; _3258 < _2333; _3259 = _3286, _3258++) uvec4 _2470 = texelFetch(light_records, ivec2(int(_3258 & 31u), int(_3258 >> 5u)), 0); uint _2471 = _2470.x; vec3 _2488 = lightsUniforms.a[_2471][0].xyz - vertex_worldPosition; float _2568 = lightsUniforms.a[_2471][1].w * frameUniforms.y; vec4 _3171 = vec4(lightsUniforms.a[_2471][1].x, lightsUniforms.a[_2471][1].y, lightsUniforms.a[_2471][1].z, _3319.w); _3171.w = _2568; vec3 _2501 = normalize(_2488); float _2575 = dot(_2488, _2488); float _2590 = _2575 * lightsUniforms.a[_2471][0].w; float _2595 = clamp(1.0 - (_2590 * _2590), 0.0, 1.0); float _2583 = (_2595 * _2595) / max(_2575, 9.9999997473787516355514526367188e-05); float _2512 = clamp(dot(_1833, _2501), 0.0, 1.0); float _3282; if (floatBitsToUint(lightsUniforms.a[_2471][3].w) == 1u) float _2609 = clamp((dot(-lightsUniforms.a[_2471][2].xyz, _2501) * lightsUniforms.a[_2471][3].x) + lightsUniforms.a[_2471][3].y, 0.0, 1.0); _3282 = _2583 * (_2609 * _2609); _3282 = _2583; if (_2512 <= 0.0) _3286 = _3259; vec3 _2633 = normalize(_1839 + _2501); float _2636 = clamp(_2512, 0.0, 1.0); float _2640 = clamp(dot(_1833, _2633), 0.0, 1.0); float _2785 = (_2636 * sqrt(((_1895 - _1895) * _1895) + 1.0)) + (_1895 * sqrt(((_2636 - _2636) * _2636) + 1.0)); float _2805 = 1.0 - clamp(dot(_2501, _2633), 0.0, 1.0); float _2814 = _2805 * _2805; _3286 = _3259 + ((((_1988 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_2814 * _2814) * _2805))) * (0.15915493667125701904296875 / _2785)) * _2044)) * _3171.xyz) * ((_2568 * _3282) * _2636)); fragColor = vec4(_3259, 1.0); vec3 _3607; float _3610; vec4 _3672; vec4 _3704; float _3705; vec2 _805 = vec3(shading_normalizedViewportCoord, _3705).xy; vec4 _830 = textureGather(light_ssao, _805, 1); vec4 _834 = textureGather(light_ssao, _805, 2); vec2 _841 = fract((_805 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _844 = _841.x; float _845 = 1.0 - _844; float _847 = _841.y; vec4 _3557 = _3672; _3557.x = _845 * _847; vec4 _3561 = _3557; _3561.y = _844 * _847; float _860 = 1.0 - _847; vec4 _3565 = _3561; _3565.z = _844 * _860; vec4 _3569 = _3565; _3569.w = _845 * _860; vec4 _3575 = _3672; _3575.x = (_830.x * 0.996108949184417724609375) + (_834.x * 0.00389105058275163173675537109375); vec4 _3581 = _3575; _3581.y = (_830.y * 0.996108949184417724609375) + (_834.y * 0.00389105058275163173675537109375); vec4 _3587 = _3581; _3587.z = (_830.z * 0.996108949184417724609375) + (_834.z * 0.00389105058275163173675537109375); vec4 _3593 = _3587; _3593.w = (_830.w * 0.996108949184417724609375) + (_834.w * 0.00389105058275163173675537109375); vec4 _933 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3593 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _943 = max(vec4(6.103515625e-05), vec4(1.0) - (_933 * _933)) * _3569; return dot(textureGather(light_ssao, _805), _943) * (1.0 / (((_943.x + _943.y) + _943.z) + _943.w)); return textureLod(light_ssao, _805, 0.0).x; ivec2 _1148 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1163 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1170 = _1163 * (1.0 / float(_1148.x)); vec3 _1174 = cross(_1163, n) * (1.0 / float(_1148.y)); vec3 _1177 = n - _1170; vec3 _1182 = n + _1170; return (((textureLod(light_iblSpecular, _1177 - _1174, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1182 - _1174, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1182 + _1174, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1177 + _1174, frameUniforms.cz).xyz) * 0.25; float _1372 = dot(lightDirection, shading_reflected); vec3 _3673; if (_1372 < frameUniforms.m.x) _3673 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1372)) * frameUniforms.m.y)); _3673 = shading_reflected; return _3673; vec3 _3097 = sampleSunAreaLight(frameUniforms.p); float _3104 = clamp(dot(shading_normal, _3097), 0.0, 1.0); if (_3104 <= 0.0) vec3 _3127 = normalize(shading_view + _3097); float _3130 = clamp(_3104, 0.0, 1.0); float _3134 = clamp(dot(shading_normal, _3127), 0.0, 1.0); float _3222 = _3134 * pixel.roughness; float _3229 = pixel.roughness / ((1.0 - (_3134 * _3134)) + (_3222 * _3222)); float _3252 = pixel.roughness * pixel.roughness; float _3299 = 1.0 - clamp(dot(_3097, _3127), 0.0, 1.0); float _3308 = _3299 * _3299; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3308 * _3308) * _3299))) * (((_3229 * _3229) * 0.3183098733425140380859375) * (0.5 / ((_3130 * sqrt(((shading_NoV - (_3252 * shading_NoV)) * shading_NoV) + _3252)) + (shading_NoV * sqrt(((_3130 - (_3252 * _3130)) * _3130) + _3252)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _3130)); vec3 _3605; vec3 _3604; _3604 = vertex_worldNormal; _3604 = -vertex_worldNormal; _3605 = _3604; _3605 = vertex_worldNormal; shading_normal = normalize(_3605); vec3 _2082 = variable_colorFromSh.xyz * 1.0; vec4 _2153 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2138 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2153.y) - 1.0)); float _2189 = min(1.0, evaluateSSAO()); float _2282 = clamp((pow(shading_NoV + _2189, 7.62939453125e-06) - 1.0) + _2189, 0.0, 1.0); vec3 _2290 = mix(_2153.xxx, _2153.yyy, vec3(0.039999999105930328369140625)); vec3 _1998 = (((((_2082 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2290)) * 1.0) * max(vec3(_2189), ((((((_2082 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2189) + ((_2082 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2189) + ((_2082 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2189)) + (((_2290 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2138 * 1.0)) * max(vec3(_2282), ((((vec3(-0.250783979892730712890625) * _2282) + vec3(0.449896037578582763671875)) * _2282) + vec3(0.800507962703704833984375)) * _2282))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3607, _3610, _3610, _3610, _3610, _3607), PixelParams(_2082, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2153.xyz, _2138), _1998); float _2455 = 1.0 - gl_FragCoord.z; uvec2 _2494 = uvec2((vec3(shading_normalizedViewportCoord, _2455).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _2479 = ((_2494.x * frameUniforms.q) + (_2494.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2455) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _2526 = texelFetch(light_froxels, ivec2(int(_2479 & 63u), int(_2479 >> 6u)), 0); uint _2529 = _2526.x; uint _2427 = _2529 + (_2526.y & 255u); vec3 _3638; _3638 = _1998; vec3 _3665; for (uint _3637 = _2529; _3637 < _2427; _3638 = _3665, _3637++) uvec4 _2564 = texelFetch(light_records, ivec2(int(_3637 & 31u), int(_3637 >> 5u)), 0); uint _2565 = _2564.x; vec3 _2582 = lightsUniforms.a[_2565][0].xyz - vertex_worldPosition; float _2662 = lightsUniforms.a[_2565][1].w * frameUniforms.y; vec4 _3550 = vec4(lightsUniforms.a[_2565][1].x, lightsUniforms.a[_2565][1].y, lightsUniforms.a[_2565][1].z, _3704.w); _3550.w = _2662; vec3 _2595 = normalize(_2582); float _2669 = dot(_2582, _2582); float _2684 = _2669 * lightsUniforms.a[_2565][0].w; float _2689 = clamp(1.0 - (_2684 * _2684), 0.0, 1.0); float _2677 = (_2689 * _2689) / max(_2669, 9.9999997473787516355514526367188e-05); float _2606 = clamp(dot(shading_normal, _2595), 0.0, 1.0); float _3661; if (floatBitsToUint(lightsUniforms.a[_2565][3].w) == 1u) float _2703 = clamp((dot(-lightsUniforms.a[_2565][2].xyz, _2595) * lightsUniforms.a[_2565][3].x) + lightsUniforms.a[_2565][3].y, 0.0, 1.0); _3661 = _2677 * (_2703 * _2703); _3661 = _2677; if (_2606 <= 0.0) _3665 = _3638; vec3 _2727 = normalize(shading_view + _2595); float _2730 = clamp(_2606, 0.0, 1.0); float _2734 = clamp(dot(shading_normal, _2727), 0.0, 1.0); float _2879 = (_2730 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_2730 - _2730) * _2730) + 1.0)); float _2899 = 1.0 - clamp(dot(_2595, _2727), 0.0, 1.0); float _2908 = _2899 * _2899; _3665 = _3638 + ((((_2082 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_2908 * _2908) * _2899))) * (0.15915493667125701904296875 / _2879)) * _2138)) * _3550.xyz) * ((_2662 * _3661) * _2730)); fragColor = vec4(_3638, 1.0); layout(location = 11) out vec4 vertex_lightSpacePosition; vec4 _709 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3])); vec3 _747 = _709.xyz; vec3 _754 = _747 * inversesqrt(dot(_747, _747)); vec3 _867 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1201; vec4 _726 = mesh_custom1; vec4 _727 = mesh_custom2; float _729[9]; for (int _1193 = 0; _1193 < 4; ) _729[_1193] = _726[_1193]; _729[4 + _1193] = _727[_1193]; _1193++; _729[8] = mesh_custom3.x; float _732[9] = _729; vec3 _878; for (int _1194 = 0; _1194 < 3; ) _878[_1194] = 0.48860251903533935546875 * ((((-_754.y) * _732[_1194]) + (_754.z * _732[3 + _1194])) - (_754.x * _732[6 + _1194])); _1194++; _1201 = _867 + _878; _1201 = _867; vec3 _1202; float _734[15]; _734[0] = mesh_custom3.y; _734[1] = mesh_custom3.z; _734[2] = mesh_custom3.w; vec4 _735 = mesh_custom4; vec4 _736 = mesh_custom5; vec4 _737 = mesh_custom6; for (int _1197 = 0; _1197 < 4; ) _734[3 + _1197] = _735[_1197]; _734[7 + _1197] = _736[_1197]; _734[11 + _1197] = _737[_1197]; _1197++; float _740[15] = _734; float _964 = _754.z; float _970 = (-1.09254848957061767578125) * _964; float _972 = _754.x; float _977 = _754.y; float _990 = (0.946174681186676025390625 * (_964 * _964)) - 0.3153915703296661376953125; float _994 = _970 * _972; float _998 = _970 * _977; float _1000 = 0.546274244785308837890625 * ((_972 * _972) - (_977 * _977)); float _1002 = 0.546274244785308837890625 * ((2.0 * _972) * _977); vec3 _944; for (int _1198 = 0; _1198 < 3; ) _944[_1198] = ((((_1002 * _740[_1198]) + (_998 * _740[3 + _1198])) + (_990 * _740[6 + _1198])) + (_994 * _740[9 + _1198])) + (_1000 * _740[12 + _1198]); _1198++; _1202 = _1201 + _944; _1202 = _1201; vec4 _1183 = vec4(0.0); _1183.x = _1202.x; vec4 _1186 = _1183; _1186.y = _1202.y; vec4 _1189 = _1186; _1189.z = _1202.z; vec4 _1191 = _1189; _1191.w = 0.0; variable_colorFromSh = _1191; vertex_worldPosition = _747; float _1069 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0); vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1069 * _1069)) * frameUniforms.r.y)), 1.0); gl_Position = frameUniforms.e * _709; uniform sampler2D light_structure; uniform sampler2DArrayShadow light_shadowMap; layout(location = 11) in vec4 vertex_lightSpacePosition; vec3 _4052; float _4055; vec4 _4079; vec3 _4083; float _4125; vec3 _518; vec2 _1421 = vec3(shading_normalizedViewportCoord, _4125).xy; vec4 _1443 = textureGather(light_ssao, _1421, 1); vec4 _1447 = textureGather(light_ssao, _1421, 2); vec2 _1454 = fract((_1421 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1457 = _1454.x; float _1458 = 1.0 - _1457; float _1460 = _1454.y; vec4 _3964 = _4079; _3964.x = _1458 * _1460; vec4 _3968 = _3964; _3968.y = _1457 * _1460; float _1473 = 1.0 - _1460; vec4 _3972 = _3968; _3972.z = _1457 * _1473; vec4 _3976 = _3972; _3976.w = _1458 * _1473; vec4 _3982 = _4079; _3982.x = (_1443.x * 0.996108949184417724609375) + (_1447.x * 0.00389105058275163173675537109375); vec4 _3988 = _3982; _3988.y = (_1443.y * 0.996108949184417724609375) + (_1447.y * 0.00389105058275163173675537109375); vec4 _3994 = _3988; _3994.z = (_1443.z * 0.996108949184417724609375) + (_1447.z * 0.00389105058275163173675537109375); vec4 _4000 = _3994; _4000.w = (_1443.w * 0.996108949184417724609375) + (_1447.w * 0.00389105058275163173675537109375); vec4 _1545 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4000 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1555 = max(vec4(6.103515625e-05), vec4(1.0) - (_1545 * _1545)) * _3976; return dot(textureGather(light_ssao, _1421), _1555) * (1.0 / (((_1555.x + _1555.y) + _1555.z) + _1555.w)); return textureLod(light_ssao, _1421, 0.0).x; ivec2 _1758 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1772 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1779 = _1772 * (1.0 / float(_1758.x)); vec3 _1783 = cross(_1772, n) * (1.0 / float(_1758.y)); vec3 _1786 = n - _1779; vec3 _1791 = n + _1779; return (((textureLod(light_iblSpecular, _1786 - _1783, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1791 - _1783, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1791 + _1783, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1786 + _1783, frameUniforms.cz).xyz) * 0.25; float _1980 = dot(lightDirection, shading_reflected); vec3 _4080; if (_1980 < frameUniforms.m.x) _4080 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1980)) * frameUniforms.m.y)); _4080 = shading_reflected; return _4080; vec3 getCascadeLightSpacePosition(uint cascade) if (cascade == 0u) return vertex_lightSpacePosition.xyz * (1.0 / vertex_lightSpacePosition.w); float _3740 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _3755 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_3740 * _3740)) * frameUniforms.r.y)), 1.0); return _3755.xyz * (1.0 / _3755.w); float _2094; vec3 _2984 = sampleSunAreaLight(frameUniforms.p); float _2991 = clamp(dot(shading_normal, _2984), 0.0, 1.0); if (_2991 > 0.0) bvec4 _3008 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _3018 = clamp(uint(dot(vec4(_3008.x ? vec4(1.0).x : vec4(0.0).x, _3008.y ? vec4(1.0).y : vec4(0.0).y, _3008.z ? vec4(1.0).z : vec4(0.0).z, _3008.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _4084; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _3018) << 8u)) != 0u)) uint param = _3018; vec3 _2066 = getCascadeLightSpacePosition(param); vec2 _3051 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _3086 = vec2(1.0) / _3051; vec2 _3096 = (clamp(_2066.xy, vec2(-1.0), vec2(2.0)).xy * _3051) + vec2(0.5); vec2 _3102 = (floor(_3096) - vec2(0.5)) * _3086; vec2 _3104 = fract(_3096); float _3106 = _3104.x; float _3107 = 2.0 * _3106; float _3108 = 3.0 - _3107; float _3112 = 1.0 + _3107; float _3115 = _3104.y; float _3116 = 2.0 * _3115; float _3117 = 3.0 - _3116; float _3121 = 1.0 + _3116; vec2 _3154 = vec2(((2.0 - _3106) / _3108) - 1.0, (_3106 / _3112) + 1.0) * _3086.x; vec2 _3158 = vec2(((2.0 - _3115) / _3117) - 1.0, (_3115 / _3121) + 1.0) * _3086.y; float _3172 = _3154.x; float _3174 = _3158.x; float _3249 = float(_3018); float _3251 = clamp(_2066.z, 0.0, 1.0); float _3189 = _3154.y; float _3208 = _3158.y; _4084 = (((((_3108 * _3117) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3172, _3174), _3249, _3251).xyz, _3251))) + ((_3112 * _3117) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3189, _3174), _3249, _3251).xyz, _3251)))) + ((_3108 * _3121) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3172, _3208), _3249, _3251).xyz, _3251)))) + ((_3112 * _3121) * texture(light_shadowMap, vec4(vec4(_3102 + vec2(_3189, _3208), _3249, _3251).xyz, _3251)))) * 0.0625; _4084 = 1.0; float _4092; if (((frameUniforms.fz & 2u) != 0u) && (_4084 > 0.0)) float _4094; if (objectUniforms.f != 0u) uint _3322 = (frameUniforms.fz >> 8u) & 255u; vec4 _3432 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3439 = frameUniforms.e * vec4(shading_position + (_2984 * frameUniforms.hz), 1.0); vec4 _3445 = _3432 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3451 = _3432.xyz * (1.0 / _3432.w); vec3 _3476 = (_3451 * 0.5) + vec3(0.5); vec3 _3481 = (((_3439.xyz * (1.0 / _3439.w)) * 0.5) + vec3(0.5)) - _3476; float _3332 = 1.0 / float(_3322); float _3341 = (abs((_3445.xyz * (1.0 / _3445.w)).z - _3451.z) * _3332) * 0.5; float _3353 = (_3332 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3332; vec3 _4088; _4088 = _4083; vec3 _3366; vec3 _4087; float _4090; uint _4085 = 0u; float _4086 = _3353; for (;;) if (_4085 < _3322) _3366 = _3476 + (_3481 * _4086); if (abs(_3341 - (_3366.z - (1.0 - textureLod(light_structure, _3366.xy, 0.0).x))) < _3341) _4090 = 1.0; _4087 = _3366; break; _4086 += _3332; _4085++; _4088 = _3366; _4090 = 0.0; _4087 = _4088; vec2 _3402 = max((abs(_4087.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _4094 = _4090 * clamp(1.0 - dot(_3402, _3402), 0.0, 1.0); _4094 = 0.0; _4092 = _4094; _4092 = 0.0; _2094 = _4084 * (1.0 - _4092); vec3 _3514 = normalize(shading_view + _2984); float _3517 = clamp(_2991, 0.0, 1.0); float _3521 = clamp(dot(shading_normal, _3514), 0.0, 1.0); float _3609 = _3521 * pixel.roughness; float _3616 = pixel.roughness / ((1.0 - (_3521 * _3521)) + (_3609 * _3609)); float _3639 = pixel.roughness * pixel.roughness; float _3686 = 1.0 - clamp(dot(_2984, _3514), 0.0, 1.0); float _3695 = _3686 * _3686; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3695 * _3695) * _3686))) * (((_3616 * _3616) * 0.3183098733425140380859375) * (0.5 / ((_3517 * sqrt(((shading_NoV - (_3639 * shading_NoV)) * shading_NoV) + _3639)) + (shading_NoV * sqrt(((_3517 - (_3639 * _3517)) * _3517) + _3639)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3517) * _2094)); vec3 uintToColorDebug(uint v) if (v == 0u) return vec3(0.0, 1.0, 0.0); if (v == 1u) return vec3(0.0, 0.0, 1.0); if (v == 2u) return vec3(1.0, 1.0, 0.0); if (v == 3u) return vec3(1.0, 0.0, 0.0); if (v == 4u) return vec3(1.0, 0.0, 1.0); if (v == 5u) return vec3(0.0, 1.0, 1.0); vec3 _4050; vec3 _4049; _4049 = vertex_worldNormal; _4049 = -vertex_worldNormal; _4050 = _4049; _4050 = vertex_worldNormal; shading_normal = normalize(_4050); vec3 _2443 = variable_colorFromSh.xyz * 1.0; vec4 _2514 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2499 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2514.y) - 1.0)); float _2550 = min(1.0, evaluateSSAO()); float _2643 = clamp((pow(shading_NoV + _2550, 7.62939453125e-06) - 1.0) + _2550, 0.0, 1.0); vec3 _2651 = mix(_2514.xxx, _2514.yyy, vec3(0.039999999105930328369140625)); vec3 _2364 = (((((_2443 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2651)) * 1.0) * max(vec3(_2550), ((((((_2443 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2550) + ((_2443 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2550) + ((_2443 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2550)) + (((_2651 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2499 * 1.0)) * max(vec3(_2643), ((((vec3(-0.250783979892730712890625) * _2643) + vec3(0.449896037578582763671875)) * _2643) + vec3(0.800507962703704833984375)) * _2643))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4052, _4055, _4055, _4055, _4055, _4052), PixelParams(_2443, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2514.xyz, _2499), _2364); fragColor = vec4(_2364, 1.0); if ((frameUniforms.rz & 16u) != 0u) bvec4 _2789 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_2789.x ? vec4(1.0).x : vec4(0.0).x, _2789.y ? vec4(1.0).y : vec4(0.0).y, _2789.z ? vec4(1.0).z : vec4(0.0).z, _2789.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2247 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2247.x, _2247.y, _2247.z, fragColor.w); layout(std140) uniform ShadowUniforms mat4 a[2]; vec4 b[2]; } shadowUniforms; layout(location = 12) out vec4 vertex_spotLightSpacePosition[2]; vec4 _733 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3])); vec3 _771 = _733.xyz; vec3 _778 = _771 * inversesqrt(dot(_771, _771)); vec3 _891 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1234; vec4 _750 = mesh_custom1; vec4 _751 = mesh_custom2; float _753[9]; for (int _1226 = 0; _1226 < 4; ) _753[_1226] = _750[_1226]; _753[4 + _1226] = _751[_1226]; _1226++; _753[8] = mesh_custom3.x; float _756[9] = _753; vec3 _902; for (int _1227 = 0; _1227 < 3; ) _902[_1227] = 0.48860251903533935546875 * ((((-_778.y) * _756[_1227]) + (_778.z * _756[3 + _1227])) - (_778.x * _756[6 + _1227])); _1227++; _1234 = _891 + _902; _1234 = _891; vec3 _1235; float _758[15]; _758[0] = mesh_custom3.y; _758[1] = mesh_custom3.z; _758[2] = mesh_custom3.w; vec4 _759 = mesh_custom4; vec4 _760 = mesh_custom5; vec4 _761 = mesh_custom6; for (int _1230 = 0; _1230 < 4; ) _758[3 + _1230] = _759[_1230]; _758[7 + _1230] = _760[_1230]; _758[11 + _1230] = _761[_1230]; _1230++; float _764[15] = _758; float _988 = _778.z; float _994 = (-1.09254848957061767578125) * _988; float _996 = _778.x; float _1001 = _778.y; float _1014 = (0.946174681186676025390625 * (_988 * _988)) - 0.3153915703296661376953125; float _1018 = _994 * _996; float _1022 = _994 * _1001; float _1024 = 0.546274244785308837890625 * ((_996 * _996) - (_1001 * _1001)); float _1026 = 0.546274244785308837890625 * ((2.0 * _996) * _1001); vec3 _968; for (int _1231 = 0; _1231 < 3; ) _968[_1231] = ((((_1026 * _764[_1231]) + (_1022 * _764[3 + _1231])) + (_1014 * _764[6 + _1231])) + (_1018 * _764[9 + _1231])) + (_1024 * _764[12 + _1231]); _1231++; _1235 = _1234 + _968; _1235 = _1234; vec4 _1216 = vec4(0.0); _1216.x = _1235.x; vec4 _1219 = _1216; _1219.y = _1235.y; vec4 _1222 = _1219; _1222.z = _1235.z; vec4 _1224 = _1222; _1224.w = 0.0; variable_colorFromSh = _1224; vertex_worldPosition = _771; for (uint _1242 = 0u; _1242 < 2u; ) float _1094 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1242].xyz), 0.0, 1.0); vertex_spotLightSpacePosition[_1242] = shadowUniforms.a[_1242] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1094 * _1094)) * shadowUniforms.b[_1242].w)), 1.0); _1242++; gl_Position = frameUniforms.e * _733; layout(location = 12) in vec4 vertex_spotLightSpacePosition[2]; vec3 _4325; uint _4364; bool _4373; vec4 _4453; vec4 _4481; float _4482; vec2 _1299 = vec3(shading_normalizedViewportCoord, _4482).xy; vec4 _1320 = textureGather(light_ssao, _1299, 1); vec4 _1324 = textureGather(light_ssao, _1299, 2); vec2 _1331 = fract((_1299 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1334 = _1331.x; float _1335 = 1.0 - _1334; float _1337 = _1331.y; vec4 _4275 = _4453; _4275.x = _1335 * _1337; vec4 _4279 = _4275; _4279.y = _1334 * _1337; float _1350 = 1.0 - _1337; vec4 _4283 = _4279; _4283.z = _1334 * _1350; vec4 _4287 = _4283; _4287.w = _1335 * _1350; vec4 _4293 = _4453; _4293.x = (_1320.x * 0.996108949184417724609375) + (_1324.x * 0.00389105058275163173675537109375); vec4 _4299 = _4293; _4299.y = (_1320.y * 0.996108949184417724609375) + (_1324.y * 0.00389105058275163173675537109375); vec4 _4305 = _4299; _4305.z = (_1320.z * 0.996108949184417724609375) + (_1324.z * 0.00389105058275163173675537109375); vec4 _4311 = _4305; _4311.w = (_1320.w * 0.996108949184417724609375) + (_1324.w * 0.00389105058275163173675537109375); vec4 _1422 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4311 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1432 = max(vec4(6.103515625e-05), vec4(1.0) - (_1422 * _1422)) * _4287; return dot(textureGather(light_ssao, _1299), _1432) * (1.0 / (((_1432.x + _1432.y) + _1432.z) + _1432.w)); return textureLod(light_ssao, _1299, 0.0).x; ivec2 _1636 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1651 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1658 = _1651 * (1.0 / float(_1636.x)); vec3 _1662 = cross(_1651, n) * (1.0 / float(_1636.y)); vec3 _1665 = n - _1658; vec3 _1670 = n + _1658; return (((textureLod(light_iblSpecular, _1665 - _1662, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1670 - _1662, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1670 + _1662, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1665 + _1662, frameUniforms.cz).xyz) * 0.25; vec3 _4323; vec3 _4322; _4322 = vertex_worldNormal; _4322 = -vertex_worldNormal; _4323 = _4322; _4323 = vertex_worldNormal; vec3 _2362 = normalize(_4323); vec3 _2368 = normalize(frameUniforms.j - shading_position); float _2424 = max(dot(_2362, _2368), 9.9999997473787516355514526367188e-05); vec3 _2517 = variable_colorFromSh.xyz * 1.0; vec4 _2588 = textureLod(light_iblDFG, vec2(_2424, 1.0), 0.0); vec3 _2573 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2588.y) - 1.0)); float _2624 = min(1.0, evaluateSSAO()); float _2717 = clamp((pow(_2424 + _2624, 7.62939453125e-06) - 1.0) + _2624, 0.0, 1.0); vec3 _2725 = mix(_2588.xxx, _2588.yyy, vec3(0.039999999105930328369140625)); float _2926 = 1.0 - gl_FragCoord.z; uvec2 _2965 = uvec2((vec3(shading_normalizedViewportCoord, _2926).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _2950 = ((_2965.x * frameUniforms.q) + (_2965.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2926) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _2997 = texelFetch(light_froxels, ivec2(int(_2950 & 63u), int(_2950 >> 6u)), 0); uint _3000 = _2997.x; uint _2865 = _3000 + (_2997.y & 255u); vec3 _4356; vec3 _4387; _4387 = _4325; _4356 = (((((_2517 * diffuseIrradiance(_2362)) * (vec3(1.0) - _2725)) * 1.0) * max(vec3(_2624), ((((((_2517 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2624) + ((_2517 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2624) + ((_2517 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2624)) + (((_2725 * textureLod(light_iblSpecular, _2362, frameUniforms.cz).xyz) * (_2573 * 1.0)) * max(vec3(_2717), ((((vec3(-0.250783979892730712890625) * _2717) + vec3(0.449896037578582763671875)) * _2717) + vec3(0.800507962703704833984375)) * _2717))) * frameUniforms.x; uint _4361; uint _4366; bool _4370; bool _4375; vec3 _4412; vec3 _4450; uint _4362; uint _4367; bool _4371; bool _4376; for (uint _4355 = _3000; _4355 < _2865; _4387 = _4450, _4376 = _4375, _4371 = _4370, _4367 = _4366, _4362 = _4361, _4356 = _4412, _4355++) uvec4 _3035 = texelFetch(light_records, ivec2(int(_4355 & 31u), int(_4355 >> 5u)), 0); uint _3036 = _3035.x; vec3 _3053 = lightsUniforms.a[_3036][0].xyz - vertex_worldPosition; float _3133 = lightsUniforms.a[_3036][1].w * frameUniforms.y; vec4 _4230 = vec4(lightsUniforms.a[_3036][1].x, lightsUniforms.a[_3036][1].y, lightsUniforms.a[_3036][1].z, _4481.w); _4230.w = _3133; vec3 _3066 = normalize(_3053); float _3140 = dot(_3053, _3053); float _3155 = _3140 * lightsUniforms.a[_3036][0].w; float _3160 = clamp(1.0 - (_3155 * _3155), 0.0, 1.0); float _3148 = (_3160 * _3160) / max(_3140, 9.9999997473787516355514526367188e-05); float _3077 = clamp(dot(_2362, _3066), 0.0, 1.0); float _4379; if (floatBitsToUint(lightsUniforms.a[_3036][3].w) == 1u) float _3174 = clamp((dot(-lightsUniforms.a[_3036][2].xyz, _3066) * lightsUniforms.a[_3036][3].x) + lightsUniforms.a[_3036][3].y, 0.0, 1.0); uint _3102 = floatBitsToUint(lightsUniforms.a[_3036][3].z); _4379 = _3148 * (_3174 * _3174); _4375 = (_3102 & 1u) != 0u; _4370 = ((_3102 >> 1u) & 1u) != 0u; _4366 = (_3102 >> 2u) & 15u; _4361 = (_3102 >> 6u) & 15u; _4379 = _3148; _4375 = _4376; _4370 = _4371; _4366 = _4367; _4361 = _4362; float _4394; if (_3077 > 0.0) float _4380; if (_4375) vec3 _3189 = vertex_spotLightSpacePosition[_4366].xyz * (1.0 / vertex_spotLightSpacePosition[_4366].w); vec2 _3200 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _3235 = vec2(1.0) / _3200; vec2 _3245 = (clamp(_3189.xy, vec2(-1.0), vec2(2.0)).xy * _3200) + vec2(0.5); vec2 _3251 = (floor(_3245) - vec2(0.5)) * _3235; vec2 _3253 = fract(_3245); float _3255 = _3253.x; float _3256 = 2.0 * _3255; float _3257 = 3.0 - _3256; float _3261 = 1.0 + _3256; float _3264 = _3253.y; float _3265 = 2.0 * _3264; float _3266 = 3.0 - _3265; float _3270 = 1.0 + _3265; vec2 _3303 = vec2(((2.0 - _3255) / _3257) - 1.0, (_3255 / _3261) + 1.0) * _3235.x; vec2 _3307 = vec2(((2.0 - _3264) / _3266) - 1.0, (_3264 / _3270) + 1.0) * _3235.y; float _3321 = _3303.x; float _3323 = _3307.x; float _3398 = float(_4361); float _3400 = clamp(_3189.z, 0.0, 1.0); float _3338 = _3303.y; float _3357 = _3307.y; _4380 = (((((_3257 * _3266) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3321, _3323), _3398, _3400).xyz, _3400))) + ((_3261 * _3266) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3338, _3323), _3398, _3400).xyz, _3400)))) + ((_3257 * _3270) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3321, _3357), _3398, _3400).xyz, _3400)))) + ((_3261 * _3270) * texture(light_shadowMap, vec4(vec4(_3251 + vec2(_3338, _3357), _3398, _3400).xyz, _3400)))) * 0.0625; _4380 = 1.0; float _4395; vec3 _4451; if (_4370 && (_4380 > 0.0)) float _4396; vec3 _4452; uint _3471 = (frameUniforms.fz >> 8u) & 255u; vec4 _3581 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3588 = frameUniforms.e * vec4(shading_position + (_3066 * frameUniforms.hz), 1.0); vec4 _3594 = _3581 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3600 = _3581.xyz * (1.0 / _3581.w); vec3 _3625 = (_3600 * 0.5) + vec3(0.5); vec3 _3630 = (((_3588.xyz * (1.0 / _3588.w)) * 0.5) + vec3(0.5)) - _3625; float _3481 = 1.0 / float(_3471); float _3490 = (abs((_3594.xyz * (1.0 / _3594.w)).z - _3600.z) * _3481) * 0.5; float _3502 = (_3481 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3481; vec3 _4384; _4384 = _4387; vec3 _3515; vec3 _4383; float _4390; uint _4381 = 0u; float _4382 = _3502; if (_4381 < _3471) _3515 = _3625 + (_3630 * _4382); if (abs(_3490 - (_3515.z - (1.0 - textureLod(light_structure, _3515.xy, 0.0).x))) < _3490) _4390 = 1.0; _4383 = _3515; _4382 += _3481; _4381++; _4384 = _3515; _4390 = 0.0; _4383 = _4384; vec2 _3551 = max((abs(_4383.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _4452 = _4383; _4396 = _4380 * (1.0 - (_4390 * clamp(1.0 - dot(_3551, _3551), 0.0, 1.0))); _4452 = _4387; _4396 = _4380; _4451 = _4452; _4395 = _4396; _4451 = _4387; _4395 = _4380; _4450 = _4451; _4394 = _4395; _4450 = _4387; _4394 = 1.0; if (_3077 <= 0.0) _4412 = _4356; vec3 _3663 = normalize(_2368 + _3066); float _3666 = clamp(_3077, 0.0, 1.0); float _3670 = clamp(dot(_2362, _3663), 0.0, 1.0); float _3815 = (_3666 * sqrt(((_2424 - _2424) * _2424) + 1.0)) + (_2424 * sqrt(((_3666 - _3666) * _3666) + 1.0)); float _3835 = 1.0 - clamp(dot(_3066, _3663), 0.0, 1.0); float _3844 = _3835 * _3835; _4412 = _4356 + ((((_2517 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3844 * _3844) * _3835))) * (0.15915493667125701904296875 / _3815)) * _2573)) * _4230.xyz) * (((_3133 * _4379) * _3666) * _4394)); fragColor = vec4(_4356, 1.0); vec4 _751 = (objectUniforms.a[0] * mesh_position.x) + ((objectUniforms.a[1] * mesh_position.y) + ((objectUniforms.a[2] * mesh_position.z) + objectUniforms.a[3])); vec3 _789 = _751.xyz; vec3 _796 = _789 * inversesqrt(dot(_789, _789)); vec3 _909 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1280; vec4 _768 = mesh_custom1; vec4 _769 = mesh_custom2; float _771[9]; for (int _1272 = 0; _1272 < 4; ) _771[_1272] = _768[_1272]; _771[4 + _1272] = _769[_1272]; _1272++; _771[8] = mesh_custom3.x; float _774[9] = _771; vec3 _920; for (int _1273 = 0; _1273 < 3; ) _920[_1273] = 0.48860251903533935546875 * ((((-_796.y) * _774[_1273]) + (_796.z * _774[3 + _1273])) - (_796.x * _774[6 + _1273])); _1273++; _1280 = _909 + _920; _1280 = _909; vec3 _1281; float _776[15]; _776[0] = mesh_custom3.y; _776[1] = mesh_custom3.z; _776[2] = mesh_custom3.w; vec4 _777 = mesh_custom4; vec4 _778 = mesh_custom5; vec4 _779 = mesh_custom6; for (int _1276 = 0; _1276 < 4; ) _776[3 + _1276] = _777[_1276]; _776[7 + _1276] = _778[_1276]; _776[11 + _1276] = _779[_1276]; _1276++; float _782[15] = _776; float _1006 = _796.z; float _1012 = (-1.09254848957061767578125) * _1006; float _1014 = _796.x; float _1019 = _796.y; float _1032 = (0.946174681186676025390625 * (_1006 * _1006)) - 0.3153915703296661376953125; float _1036 = _1012 * _1014; float _1040 = _1012 * _1019; float _1042 = 0.546274244785308837890625 * ((_1014 * _1014) - (_1019 * _1019)); float _1044 = 0.546274244785308837890625 * ((2.0 * _1014) * _1019); vec3 _986; for (int _1277 = 0; _1277 < 3; ) _986[_1277] = ((((_1044 * _782[_1277]) + (_1040 * _782[3 + _1277])) + (_1032 * _782[6 + _1277])) + (_1036 * _782[9 + _1277])) + (_1042 * _782[12 + _1277]); _1277++; _1281 = _1280 + _986; _1281 = _1280; vec4 _1262 = vec4(0.0); _1262.x = _1281.x; vec4 _1265 = _1262; _1265.y = _1281.y; vec4 _1268 = _1265; _1268.z = _1281.z; vec4 _1270 = _1268; _1270.w = 0.0; variable_colorFromSh = _1270; vertex_worldPosition = _789; float _1111 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0); vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1111 * _1111)) * frameUniforms.r.y)), 1.0); for (uint _1288 = 0u; _1288 < 2u; ) float _1140 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1288].xyz), 0.0, 1.0); vertex_spotLightSpacePosition[_1288] = shadowUniforms.a[_1288] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1140 * _1140)) * shadowUniforms.b[_1288].w)), 1.0); _1288++; gl_Position = frameUniforms.e * _751; vec3 _5601; float _5604; uint _5640; bool _5649; vec4 _5729; vec3 _5733; vec4 _5778; float _5779; vec3 _576; vec2 _1494 = vec3(shading_normalizedViewportCoord, _5779).xy; vec4 _1515 = textureGather(light_ssao, _1494, 1); vec4 _1519 = textureGather(light_ssao, _1494, 2); vec2 _1526 = fract((_1494 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1529 = _1526.x; float _1530 = 1.0 - _1529; float _1532 = _1526.y; vec4 _5513 = _5729; _5513.x = _1530 * _1532; vec4 _5517 = _5513; _5517.y = _1529 * _1532; float _1545 = 1.0 - _1532; vec4 _5521 = _5517; _5521.z = _1529 * _1545; vec4 _5525 = _5521; _5525.w = _1530 * _1545; vec4 _5531 = _5729; _5531.x = (_1515.x * 0.996108949184417724609375) + (_1519.x * 0.00389105058275163173675537109375); vec4 _5537 = _5531; _5537.y = (_1515.y * 0.996108949184417724609375) + (_1519.y * 0.00389105058275163173675537109375); vec4 _5543 = _5537; _5543.z = (_1515.z * 0.996108949184417724609375) + (_1519.z * 0.00389105058275163173675537109375); vec4 _5549 = _5543; _5549.w = (_1515.w * 0.996108949184417724609375) + (_1519.w * 0.00389105058275163173675537109375); vec4 _1617 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5549 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1627 = max(vec4(6.103515625e-05), vec4(1.0) - (_1617 * _1617)) * _5525; return dot(textureGather(light_ssao, _1494), _1627) * (1.0 / (((_1627.x + _1627.y) + _1627.z) + _1627.w)); return textureLod(light_ssao, _1494, 0.0).x; ivec2 _1830 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1844 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1851 = _1844 * (1.0 / float(_1830.x)); vec3 _1855 = cross(_1844, n) * (1.0 / float(_1830.y)); vec3 _1858 = n - _1851; vec3 _1863 = n + _1851; return (((textureLod(light_iblSpecular, _1858 - _1855, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1863 - _1855, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1863 + _1855, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1858 + _1855, frameUniforms.cz).xyz) * 0.25; float _2052 = dot(lightDirection, shading_reflected); vec3 _5730; if (_2052 < frameUniforms.m.x) _5730 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2052)) * frameUniforms.m.y)); _5730 = shading_reflected; return _5730; float _5177 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _5192 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_5177 * _5177)) * frameUniforms.r.y)), 1.0); return _5192.xyz * (1.0 / _5192.w); float _2166; vec3 _4421 = sampleSunAreaLight(frameUniforms.p); float _4428 = clamp(dot(shading_normal, _4421), 0.0, 1.0); if (_4428 > 0.0) bvec4 _4445 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _4455 = clamp(uint(dot(vec4(_4445.x ? vec4(1.0).x : vec4(0.0).x, _4445.y ? vec4(1.0).y : vec4(0.0).y, _4445.z ? vec4(1.0).z : vec4(0.0).z, _4445.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _5734; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4455) << 8u)) != 0u)) uint param = _4455; vec3 _2138 = getCascadeLightSpacePosition(param); vec2 _4488 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _4523 = vec2(1.0) / _4488; vec2 _4533 = (clamp(_2138.xy, vec2(-1.0), vec2(2.0)).xy * _4488) + vec2(0.5); vec2 _4539 = (floor(_4533) - vec2(0.5)) * _4523; vec2 _4541 = fract(_4533); float _4543 = _4541.x; float _4544 = 2.0 * _4543; float _4545 = 3.0 - _4544; float _4549 = 1.0 + _4544; float _4552 = _4541.y; float _4553 = 2.0 * _4552; float _4554 = 3.0 - _4553; float _4558 = 1.0 + _4553; vec2 _4591 = vec2(((2.0 - _4543) / _4545) - 1.0, (_4543 / _4549) + 1.0) * _4523.x; vec2 _4595 = vec2(((2.0 - _4552) / _4554) - 1.0, (_4552 / _4558) + 1.0) * _4523.y; float _4609 = _4591.x; float _4611 = _4595.x; float _4686 = float(_4455); float _4688 = clamp(_2138.z, 0.0, 1.0); float _4626 = _4591.y; float _4645 = _4595.y; _5734 = (((((_4545 * _4554) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4609, _4611), _4686, _4688).xyz, _4688))) + ((_4549 * _4554) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4626, _4611), _4686, _4688).xyz, _4688)))) + ((_4545 * _4558) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4609, _4645), _4686, _4688).xyz, _4688)))) + ((_4549 * _4558) * texture(light_shadowMap, vec4(vec4(_4539 + vec2(_4626, _4645), _4686, _4688).xyz, _4688)))) * 0.0625; _5734 = 1.0; float _5742; if (((frameUniforms.fz & 2u) != 0u) && (_5734 > 0.0)) float _5744; uint _4759 = (frameUniforms.fz >> 8u) & 255u; vec4 _4869 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _4876 = frameUniforms.e * vec4(shading_position + (_4421 * frameUniforms.hz), 1.0); vec4 _4882 = _4869 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _4888 = _4869.xyz * (1.0 / _4869.w); vec3 _4913 = (_4888 * 0.5) + vec3(0.5); vec3 _4918 = (((_4876.xyz * (1.0 / _4876.w)) * 0.5) + vec3(0.5)) - _4913; float _4769 = 1.0 / float(_4759); float _4778 = (abs((_4882.xyz * (1.0 / _4882.w)).z - _4888.z) * _4769) * 0.5; float _4790 = (_4769 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4769; vec3 _5738; _5738 = _5733; vec3 _4803; vec3 _5737; float _5740; uint _5735 = 0u; float _5736 = _4790; if (_5735 < _4759) _4803 = _4913 + (_4918 * _5736); if (abs(_4778 - (_4803.z - (1.0 - textureLod(light_structure, _4803.xy, 0.0).x))) < _4778) _5740 = 1.0; _5737 = _4803; _5736 += _4769; _5735++; _5738 = _4803; _5740 = 0.0; _5737 = _5738; vec2 _4839 = max((abs(_5737.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _5744 = _5740 * clamp(1.0 - dot(_4839, _4839), 0.0, 1.0); _5744 = 0.0; _5742 = _5744; _5742 = 0.0; _2166 = _5734 * (1.0 - _5742); vec3 _4951 = normalize(shading_view + _4421); float _4954 = clamp(_4428, 0.0, 1.0); float _4958 = clamp(dot(shading_normal, _4951), 0.0, 1.0); float _5046 = _4958 * pixel.roughness; float _5053 = pixel.roughness / ((1.0 - (_4958 * _4958)) + (_5046 * _5046)); float _5076 = pixel.roughness * pixel.roughness; float _5123 = 1.0 - clamp(dot(_4421, _4951), 0.0, 1.0); float _5132 = _5123 * _5123; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_5132 * _5132) * _5123))) * (((_5053 * _5053) * 0.3183098733425140380859375) * (0.5 / ((_4954 * sqrt(((shading_NoV - (_5076 * shading_NoV)) * shading_NoV) + _5076)) + (shading_NoV * sqrt(((_4954 - (_5076 * _4954)) * _4954) + _5076)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4954) * _2166)); vec3 _5599; vec3 _5598; _5598 = vertex_worldNormal; _5598 = -vertex_worldNormal; _5599 = _5598; _5599 = vertex_worldNormal; shading_normal = normalize(_5599); vec3 _2858 = variable_colorFromSh.xyz * 1.0; vec4 _2929 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2914 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2929.y) - 1.0)); float _2965 = min(1.0, evaluateSSAO()); float _3058 = clamp((pow(shading_NoV + _2965, 7.62939453125e-06) - 1.0) + _2965, 0.0, 1.0); vec3 _3066 = mix(_2929.xxx, _2929.yyy, vec3(0.039999999105930328369140625)); vec3 _2774 = (((((_2858 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3066)) * 1.0) * max(vec3(_2965), ((((((_2858 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2965) + ((_2858 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2965) + ((_2858 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2965)) + (((_3066 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2914 * 1.0)) * max(vec3(_3058), ((((vec3(-0.250783979892730712890625) * _3058) + vec3(0.449896037578582763671875)) * _3058) + vec3(0.800507962703704833984375)) * _3058))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5601, _5604, _5604, _5604, _5604, _5601), PixelParams(_2858, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2929.xyz, _2914), _2774); float _3267 = 1.0 - gl_FragCoord.z; uvec2 _3306 = uvec2((vec3(shading_normalizedViewportCoord, _3267).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _3291 = ((_3306.x * frameUniforms.q) + (_3306.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3267) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _3338 = texelFetch(light_froxels, ivec2(int(_3291 & 63u), int(_3291 >> 6u)), 0); uint _3341 = _3338.x; uint _3206 = _3341 + (_3338.y & 255u); vec3 _5632; vec3 _5663; _5663 = _5601; _5632 = _2774; uint _5637; uint _5642; bool _5646; bool _5651; vec3 _5688; vec3 _5726; uint _5638; uint _5643; bool _5647; bool _5652; for (uint _5631 = _3341; _5631 < _3206; _5663 = _5726, _5652 = _5651, _5647 = _5646, _5643 = _5642, _5638 = _5637, _5632 = _5688, _5631++) uvec4 _3376 = texelFetch(light_records, ivec2(int(_5631 & 31u), int(_5631 >> 5u)), 0); uint _3377 = _3376.x; vec3 _3394 = lightsUniforms.a[_3377][0].xyz - vertex_worldPosition; float _3474 = lightsUniforms.a[_3377][1].w * frameUniforms.y; vec4 _5466 = vec4(lightsUniforms.a[_3377][1].x, lightsUniforms.a[_3377][1].y, lightsUniforms.a[_3377][1].z, _5778.w); _5466.w = _3474; vec3 _3407 = normalize(_3394); float _3481 = dot(_3394, _3394); float _3496 = _3481 * lightsUniforms.a[_3377][0].w; float _3501 = clamp(1.0 - (_3496 * _3496), 0.0, 1.0); float _3489 = (_3501 * _3501) / max(_3481, 9.9999997473787516355514526367188e-05); float _3418 = clamp(dot(shading_normal, _3407), 0.0, 1.0); float _5655; if (floatBitsToUint(lightsUniforms.a[_3377][3].w) == 1u) float _3515 = clamp((dot(-lightsUniforms.a[_3377][2].xyz, _3407) * lightsUniforms.a[_3377][3].x) + lightsUniforms.a[_3377][3].y, 0.0, 1.0); uint _3443 = floatBitsToUint(lightsUniforms.a[_3377][3].z); _5655 = _3489 * (_3515 * _3515); _5651 = (_3443 & 1u) != 0u; _5646 = ((_3443 >> 1u) & 1u) != 0u; _5642 = (_3443 >> 2u) & 15u; _5637 = (_3443 >> 6u) & 15u; _5655 = _3489; _5651 = _5652; _5646 = _5647; _5642 = _5643; _5637 = _5638; float _5670; if (_3418 > 0.0) float _5656; if (_5651) vec3 _3530 = vertex_spotLightSpacePosition[_5642].xyz * (1.0 / vertex_spotLightSpacePosition[_5642].w); vec2 _3541 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _3576 = vec2(1.0) / _3541; vec2 _3586 = (clamp(_3530.xy, vec2(-1.0), vec2(2.0)).xy * _3541) + vec2(0.5); vec2 _3592 = (floor(_3586) - vec2(0.5)) * _3576; vec2 _3594 = fract(_3586); float _3596 = _3594.x; float _3597 = 2.0 * _3596; float _3598 = 3.0 - _3597; float _3602 = 1.0 + _3597; float _3605 = _3594.y; float _3606 = 2.0 * _3605; float _3607 = 3.0 - _3606; float _3611 = 1.0 + _3606; vec2 _3644 = vec2(((2.0 - _3596) / _3598) - 1.0, (_3596 / _3602) + 1.0) * _3576.x; vec2 _3648 = vec2(((2.0 - _3605) / _3607) - 1.0, (_3605 / _3611) + 1.0) * _3576.y; float _3662 = _3644.x; float _3664 = _3648.x; float _3739 = float(_5637); float _3741 = clamp(_3530.z, 0.0, 1.0); float _3679 = _3644.y; float _3698 = _3648.y; _5656 = (((((_3598 * _3607) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3662, _3664), _3739, _3741).xyz, _3741))) + ((_3602 * _3607) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3679, _3664), _3739, _3741).xyz, _3741)))) + ((_3598 * _3611) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3662, _3698), _3739, _3741).xyz, _3741)))) + ((_3602 * _3611) * texture(light_shadowMap, vec4(vec4(_3592 + vec2(_3679, _3698), _3739, _3741).xyz, _3741)))) * 0.0625; _5656 = 1.0; float _5671; vec3 _5727; if (_5646 && (_5656 > 0.0)) float _5672; vec3 _5728; uint _3812 = (frameUniforms.fz >> 8u) & 255u; vec4 _3922 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3929 = frameUniforms.e * vec4(shading_position + (_3407 * frameUniforms.hz), 1.0); vec4 _3935 = _3922 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3941 = _3922.xyz * (1.0 / _3922.w); vec3 _3966 = (_3941 * 0.5) + vec3(0.5); vec3 _3971 = (((_3929.xyz * (1.0 / _3929.w)) * 0.5) + vec3(0.5)) - _3966; float _3822 = 1.0 / float(_3812); float _3831 = (abs((_3935.xyz * (1.0 / _3935.w)).z - _3941.z) * _3822) * 0.5; float _3843 = (_3822 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3822; vec3 _5660; _5660 = _5663; vec3 _3856; vec3 _5659; float _5666; uint _5657 = 0u; float _5658 = _3843; if (_5657 < _3812) _3856 = _3966 + (_3971 * _5658); if (abs(_3831 - (_3856.z - (1.0 - textureLod(light_structure, _3856.xy, 0.0).x))) < _3831) _5666 = 1.0; _5659 = _3856; _5658 += _3822; _5657++; _5660 = _3856; _5666 = 0.0; _5659 = _5660; vec2 _3892 = max((abs(_5659.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _5728 = _5659; _5672 = _5656 * (1.0 - (_5666 * clamp(1.0 - dot(_3892, _3892), 0.0, 1.0))); _5728 = _5663; _5672 = _5656; _5727 = _5728; _5671 = _5672; _5727 = _5663; _5671 = _5656; _5726 = _5727; _5670 = _5671; _5726 = _5663; _5670 = 1.0; if (_3418 <= 0.0) _5688 = _5632; vec3 _4004 = normalize(shading_view + _3407); float _4007 = clamp(_3418, 0.0, 1.0); float _4011 = clamp(dot(shading_normal, _4004), 0.0, 1.0); float _4156 = (_4007 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_4007 - _4007) * _4007) + 1.0)); float _4176 = 1.0 - clamp(dot(_3407, _4004), 0.0, 1.0); float _4185 = _4176 * _4176; _5688 = _5632 + ((((_2858 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_4185 * _4185) * _4176))) * (0.15915493667125701904296875 / _4156)) * _2914)) * _5466.xyz) * (((_3474 * _5655) * _4007) * _5670)); fragColor = vec4(_5632, 1.0); bvec4 _4226 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_4226.x ? vec4(1.0).x : vec4(0.0).x, _4226.y ? vec4(1.0).y : vec4(0.0).y, _4226.z ? vec4(1.0).z : vec4(0.0).z, _4226.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2667 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2667.x, _2667.y, _2667.z, fragColor.w); layout(std140) uniform BonesUniforms vec4 a[1024]; } bonesUniforms; layout(location = 5) in uvec4 mesh_bone_indices; layout(location = 6) in vec4 mesh_bone_weights; vec4 _1754; if (objectUniforms.e == 1) _1754 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w); _1754 = mesh_position; bool _901 = objectUniforms.d == 1; vec4 _1755; if (_901) uint _923 = mesh_bone_indices.x * 4u; vec3 _970 = _1754.xyz * bonesUniforms.a[_923 + 2u].xyz; uint _929 = mesh_bone_indices.y * 4u; vec3 _1011 = _1754.xyz * bonesUniforms.a[_929 + 2u].xyz; uint _936 = mesh_bone_indices.z * 4u; vec3 _1052 = _1754.xyz * bonesUniforms.a[_936 + 2u].xyz; uint _943 = mesh_bone_indices.w * 4u; vec3 _1093 = _1754.xyz * bonesUniforms.a[_943 + 2u].xyz; vec3 _948 = (((((_970 + (cross(bonesUniforms.a[_923].xyz, cross(bonesUniforms.a[_923].xyz, _970) + (_970 * bonesUniforms.a[_923].w)) * 2.0)) + bonesUniforms.a[_923 + 1u].xyz) * mesh_bone_weights.x) + (((_1011 + (cross(bonesUniforms.a[_929].xyz, cross(bonesUniforms.a[_929].xyz, _1011) + (_1011 * bonesUniforms.a[_929].w)) * 2.0)) + bonesUniforms.a[_929 + 1u].xyz) * mesh_bone_weights.y)) + (((_1052 + (cross(bonesUniforms.a[_936].xyz, cross(bonesUniforms.a[_936].xyz, _1052) + (_1052 * bonesUniforms.a[_936].w)) * 2.0)) + bonesUniforms.a[_936 + 1u].xyz) * mesh_bone_weights.z)) + (((_1093 + (cross(bonesUniforms.a[_943].xyz, cross(bonesUniforms.a[_943].xyz, _1093) + (_1093 * bonesUniforms.a[_943].w)) * 2.0)) + bonesUniforms.a[_943 + 1u].xyz) * mesh_bone_weights.w); _1755 = vec4(_948.x, _948.y, _948.z, _1754.w); _1755 = _1754; vec4 _1127 = (objectUniforms.a[0] * _1755.x) + ((objectUniforms.a[1] * _1755.y) + ((objectUniforms.a[2] * _1755.z) + objectUniforms.a[3])); vec3 _1138 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy); vec3 _1759; uint _1149 = mesh_bone_indices.x * 4u; vec3 _1190 = _1138 * bonesUniforms.a[_1149 + 3u].xyz; uint _1155 = mesh_bone_indices.y * 4u; vec3 _1222 = _1138 * bonesUniforms.a[_1155 + 3u].xyz; uint _1162 = mesh_bone_indices.z * 4u; vec3 _1254 = _1138 * bonesUniforms.a[_1162 + 3u].xyz; uint _1169 = mesh_bone_indices.w * 4u; vec3 _1286 = _1138 * bonesUniforms.a[_1169 + 3u].xyz; _1759 = ((((_1190 + (cross(bonesUniforms.a[_1149].xyz, cross(bonesUniforms.a[_1149].xyz, _1190) + (_1190 * bonesUniforms.a[_1149].w)) * 2.0)) * mesh_bone_weights.x) + ((_1222 + (cross(bonesUniforms.a[_1155].xyz, cross(bonesUniforms.a[_1155].xyz, _1222) + (_1222 * bonesUniforms.a[_1155].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1254 + (cross(bonesUniforms.a[_1162].xyz, cross(bonesUniforms.a[_1162].xyz, _1254) + (_1254 * bonesUniforms.a[_1162].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1286 + (cross(bonesUniforms.a[_1169].xyz, cross(bonesUniforms.a[_1169].xyz, _1286) + (_1286 * bonesUniforms.a[_1169].w)) * 2.0)) * mesh_bone_weights.w); _1759 = _1138; vec3 _1329 = _1127.xyz; vec3 _1336 = _1329 * inversesqrt(dot(_1329, _1329)); vec3 _1449 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1774; vec4 _1308 = mesh_custom1; vec4 _1309 = mesh_custom2; float _1311[9]; for (int _1766 = 0; _1766 < 4; ) _1311[_1766] = _1308[_1766]; _1311[4 + _1766] = _1309[_1766]; _1766++; _1311[8] = mesh_custom3.x; float _1314[9] = _1311; vec3 _1460; for (int _1767 = 0; _1767 < 3; ) _1460[_1767] = 0.48860251903533935546875 * ((((-_1336.y) * _1314[_1767]) + (_1336.z * _1314[3 + _1767])) - (_1336.x * _1314[6 + _1767])); _1767++; _1774 = _1449 + _1460; _1774 = _1449; vec3 _1775; float _1316[15]; _1316[0] = mesh_custom3.y; _1316[1] = mesh_custom3.z; _1316[2] = mesh_custom3.w; vec4 _1317 = mesh_custom4; vec4 _1318 = mesh_custom5; vec4 _1319 = mesh_custom6; for (int _1770 = 0; _1770 < 4; ) _1316[3 + _1770] = _1317[_1770]; _1316[7 + _1770] = _1318[_1770]; _1316[11 + _1770] = _1319[_1770]; _1770++; float _1322[15] = _1316; float _1546 = _1336.z; float _1552 = (-1.09254848957061767578125) * _1546; float _1554 = _1336.x; float _1559 = _1336.y; float _1572 = (0.946174681186676025390625 * (_1546 * _1546)) - 0.3153915703296661376953125; float _1576 = _1552 * _1554; float _1580 = _1552 * _1559; float _1582 = 0.546274244785308837890625 * ((_1554 * _1554) - (_1559 * _1559)); float _1584 = 0.546274244785308837890625 * ((2.0 * _1554) * _1559); vec3 _1526; for (int _1771 = 0; _1771 < 3; ) _1526[_1771] = ((((_1584 * _1322[_1771]) + (_1580 * _1322[3 + _1771])) + (_1572 * _1322[6 + _1771])) + (_1576 * _1322[9 + _1771])) + (_1582 * _1322[12 + _1771]); _1771++; _1775 = _1774 + _1526; _1775 = _1774; vec4 _1745 = vec4(0.0); _1745.x = _1775.x; vec4 _1748 = _1745; _1748.y = _1775.y; vec4 _1751 = _1748; _1751.z = _1775.z; vec4 _1753 = _1751; _1753.w = 0.0; variable_colorFromSh = _1753; vertex_worldPosition = _1329; vertex_worldNormal = objectUniforms.b * _1759; gl_Position = frameUniforms.e * _1127; vec4 _1837; _1837 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w); _1837 = mesh_position; bool _956 = objectUniforms.d == 1; vec4 _1838; if (_956) uint _978 = mesh_bone_indices.x * 4u; vec3 _1025 = _1837.xyz * bonesUniforms.a[_978 + 2u].xyz; uint _984 = mesh_bone_indices.y * 4u; vec3 _1066 = _1837.xyz * bonesUniforms.a[_984 + 2u].xyz; uint _991 = mesh_bone_indices.z * 4u; vec3 _1107 = _1837.xyz * bonesUniforms.a[_991 + 2u].xyz; uint _998 = mesh_bone_indices.w * 4u; vec3 _1148 = _1837.xyz * bonesUniforms.a[_998 + 2u].xyz; vec3 _1003 = (((((_1025 + (cross(bonesUniforms.a[_978].xyz, cross(bonesUniforms.a[_978].xyz, _1025) + (_1025 * bonesUniforms.a[_978].w)) * 2.0)) + bonesUniforms.a[_978 + 1u].xyz) * mesh_bone_weights.x) + (((_1066 + (cross(bonesUniforms.a[_984].xyz, cross(bonesUniforms.a[_984].xyz, _1066) + (_1066 * bonesUniforms.a[_984].w)) * 2.0)) + bonesUniforms.a[_984 + 1u].xyz) * mesh_bone_weights.y)) + (((_1107 + (cross(bonesUniforms.a[_991].xyz, cross(bonesUniforms.a[_991].xyz, _1107) + (_1107 * bonesUniforms.a[_991].w)) * 2.0)) + bonesUniforms.a[_991 + 1u].xyz) * mesh_bone_weights.z)) + (((_1148 + (cross(bonesUniforms.a[_998].xyz, cross(bonesUniforms.a[_998].xyz, _1148) + (_1148 * bonesUniforms.a[_998].w)) * 2.0)) + bonesUniforms.a[_998 + 1u].xyz) * mesh_bone_weights.w); _1838 = vec4(_1003.x, _1003.y, _1003.z, _1837.w); _1838 = _1837; vec4 _1182 = (objectUniforms.a[0] * _1838.x) + ((objectUniforms.a[1] * _1838.y) + ((objectUniforms.a[2] * _1838.z) + objectUniforms.a[3])); vec3 _1193 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy); vec3 _1842; uint _1204 = mesh_bone_indices.x * 4u; vec3 _1245 = _1193 * bonesUniforms.a[_1204 + 3u].xyz; uint _1210 = mesh_bone_indices.y * 4u; vec3 _1277 = _1193 * bonesUniforms.a[_1210 + 3u].xyz; uint _1217 = mesh_bone_indices.z * 4u; vec3 _1309 = _1193 * bonesUniforms.a[_1217 + 3u].xyz; uint _1224 = mesh_bone_indices.w * 4u; vec3 _1341 = _1193 * bonesUniforms.a[_1224 + 3u].xyz; _1842 = ((((_1245 + (cross(bonesUniforms.a[_1204].xyz, cross(bonesUniforms.a[_1204].xyz, _1245) + (_1245 * bonesUniforms.a[_1204].w)) * 2.0)) * mesh_bone_weights.x) + ((_1277 + (cross(bonesUniforms.a[_1210].xyz, cross(bonesUniforms.a[_1210].xyz, _1277) + (_1277 * bonesUniforms.a[_1210].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1309 + (cross(bonesUniforms.a[_1217].xyz, cross(bonesUniforms.a[_1217].xyz, _1309) + (_1309 * bonesUniforms.a[_1217].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1341 + (cross(bonesUniforms.a[_1224].xyz, cross(bonesUniforms.a[_1224].xyz, _1341) + (_1341 * bonesUniforms.a[_1224].w)) * 2.0)) * mesh_bone_weights.w); _1842 = _1193; vec3 _1384 = _1182.xyz; vec3 _1391 = _1384 * inversesqrt(dot(_1384, _1384)); vec3 _1504 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1857; vec4 _1363 = mesh_custom1; vec4 _1364 = mesh_custom2; float _1366[9]; for (int _1849 = 0; _1849 < 4; ) _1366[_1849] = _1363[_1849]; _1366[4 + _1849] = _1364[_1849]; _1849++; _1366[8] = mesh_custom3.x; float _1369[9] = _1366; vec3 _1515; for (int _1850 = 0; _1850 < 3; ) _1515[_1850] = 0.48860251903533935546875 * ((((-_1391.y) * _1369[_1850]) + (_1391.z * _1369[3 + _1850])) - (_1391.x * _1369[6 + _1850])); _1850++; _1857 = _1504 + _1515; _1857 = _1504; vec3 _1858; float _1371[15]; _1371[0] = mesh_custom3.y; _1371[1] = mesh_custom3.z; _1371[2] = mesh_custom3.w; vec4 _1372 = mesh_custom4; vec4 _1373 = mesh_custom5; vec4 _1374 = mesh_custom6; for (int _1853 = 0; _1853 < 4; ) _1371[3 + _1853] = _1372[_1853]; _1371[7 + _1853] = _1373[_1853]; _1371[11 + _1853] = _1374[_1853]; _1853++; float _1377[15] = _1371; float _1601 = _1391.z; float _1607 = (-1.09254848957061767578125) * _1601; float _1609 = _1391.x; float _1614 = _1391.y; float _1627 = (0.946174681186676025390625 * (_1601 * _1601)) - 0.3153915703296661376953125; float _1631 = _1607 * _1609; float _1635 = _1607 * _1614; float _1637 = 0.546274244785308837890625 * ((_1609 * _1609) - (_1614 * _1614)); float _1639 = 0.546274244785308837890625 * ((2.0 * _1609) * _1614); vec3 _1581; for (int _1854 = 0; _1854 < 3; ) _1581[_1854] = ((((_1639 * _1377[_1854]) + (_1635 * _1377[3 + _1854])) + (_1627 * _1377[6 + _1854])) + (_1631 * _1377[9 + _1854])) + (_1637 * _1377[12 + _1854]); _1854++; _1858 = _1857 + _1581; _1858 = _1857; vec4 _1828 = vec4(0.0); _1828.x = _1858.x; vec4 _1831 = _1828; _1831.y = _1858.y; vec4 _1834 = _1831; _1834.z = _1858.z; vec4 _1836 = _1834; _1836.w = 0.0; variable_colorFromSh = _1836; vertex_worldPosition = _1384; vertex_worldNormal = objectUniforms.b * _1842; float _1706 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0); vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1706 * _1706)) * frameUniforms.r.y)), 1.0); gl_Position = frameUniforms.e * _1182; vec4 _1868; _1868 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w); _1868 = mesh_position; bool _978 = objectUniforms.d == 1; vec4 _1869; if (_978) uint _1000 = mesh_bone_indices.x * 4u; vec3 _1047 = _1868.xyz * bonesUniforms.a[_1000 + 2u].xyz; uint _1006 = mesh_bone_indices.y * 4u; vec3 _1088 = _1868.xyz * bonesUniforms.a[_1006 + 2u].xyz; uint _1013 = mesh_bone_indices.z * 4u; vec3 _1129 = _1868.xyz * bonesUniforms.a[_1013 + 2u].xyz; uint _1020 = mesh_bone_indices.w * 4u; vec3 _1170 = _1868.xyz * bonesUniforms.a[_1020 + 2u].xyz; vec3 _1025 = (((((_1047 + (cross(bonesUniforms.a[_1000].xyz, cross(bonesUniforms.a[_1000].xyz, _1047) + (_1047 * bonesUniforms.a[_1000].w)) * 2.0)) + bonesUniforms.a[_1000 + 1u].xyz) * mesh_bone_weights.x) + (((_1088 + (cross(bonesUniforms.a[_1006].xyz, cross(bonesUniforms.a[_1006].xyz, _1088) + (_1088 * bonesUniforms.a[_1006].w)) * 2.0)) + bonesUniforms.a[_1006 + 1u].xyz) * mesh_bone_weights.y)) + (((_1129 + (cross(bonesUniforms.a[_1013].xyz, cross(bonesUniforms.a[_1013].xyz, _1129) + (_1129 * bonesUniforms.a[_1013].w)) * 2.0)) + bonesUniforms.a[_1013 + 1u].xyz) * mesh_bone_weights.z)) + (((_1170 + (cross(bonesUniforms.a[_1020].xyz, cross(bonesUniforms.a[_1020].xyz, _1170) + (_1170 * bonesUniforms.a[_1020].w)) * 2.0)) + bonesUniforms.a[_1020 + 1u].xyz) * mesh_bone_weights.w); _1869 = vec4(_1025.x, _1025.y, _1025.z, _1868.w); _1869 = _1868; vec4 _1204 = (objectUniforms.a[0] * _1869.x) + ((objectUniforms.a[1] * _1869.y) + ((objectUniforms.a[2] * _1869.z) + objectUniforms.a[3])); vec3 _1215 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy); vec3 _1873; uint _1226 = mesh_bone_indices.x * 4u; vec3 _1267 = _1215 * bonesUniforms.a[_1226 + 3u].xyz; uint _1232 = mesh_bone_indices.y * 4u; vec3 _1299 = _1215 * bonesUniforms.a[_1232 + 3u].xyz; uint _1239 = mesh_bone_indices.z * 4u; vec3 _1331 = _1215 * bonesUniforms.a[_1239 + 3u].xyz; uint _1246 = mesh_bone_indices.w * 4u; vec3 _1363 = _1215 * bonesUniforms.a[_1246 + 3u].xyz; _1873 = ((((_1267 + (cross(bonesUniforms.a[_1226].xyz, cross(bonesUniforms.a[_1226].xyz, _1267) + (_1267 * bonesUniforms.a[_1226].w)) * 2.0)) * mesh_bone_weights.x) + ((_1299 + (cross(bonesUniforms.a[_1232].xyz, cross(bonesUniforms.a[_1232].xyz, _1299) + (_1299 * bonesUniforms.a[_1232].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1331 + (cross(bonesUniforms.a[_1239].xyz, cross(bonesUniforms.a[_1239].xyz, _1331) + (_1331 * bonesUniforms.a[_1239].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1363 + (cross(bonesUniforms.a[_1246].xyz, cross(bonesUniforms.a[_1246].xyz, _1363) + (_1363 * bonesUniforms.a[_1246].w)) * 2.0)) * mesh_bone_weights.w); _1873 = _1215; vec3 _1406 = _1204.xyz; vec3 _1413 = _1406 * inversesqrt(dot(_1406, _1406)); vec3 _1526 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1888; vec4 _1385 = mesh_custom1; vec4 _1386 = mesh_custom2; float _1388[9]; for (int _1880 = 0; _1880 < 4; ) _1388[_1880] = _1385[_1880]; _1388[4 + _1880] = _1386[_1880]; _1880++; _1388[8] = mesh_custom3.x; float _1391[9] = _1388; vec3 _1537; for (int _1881 = 0; _1881 < 3; ) _1537[_1881] = 0.48860251903533935546875 * ((((-_1413.y) * _1391[_1881]) + (_1413.z * _1391[3 + _1881])) - (_1413.x * _1391[6 + _1881])); _1881++; _1888 = _1526 + _1537; _1888 = _1526; vec3 _1889; float _1393[15]; _1393[0] = mesh_custom3.y; _1393[1] = mesh_custom3.z; _1393[2] = mesh_custom3.w; vec4 _1394 = mesh_custom4; vec4 _1395 = mesh_custom5; vec4 _1396 = mesh_custom6; for (int _1884 = 0; _1884 < 4; ) _1393[3 + _1884] = _1394[_1884]; _1393[7 + _1884] = _1395[_1884]; _1393[11 + _1884] = _1396[_1884]; _1884++; float _1399[15] = _1393; float _1623 = _1413.z; float _1629 = (-1.09254848957061767578125) * _1623; float _1631 = _1413.x; float _1636 = _1413.y; float _1649 = (0.946174681186676025390625 * (_1623 * _1623)) - 0.3153915703296661376953125; float _1653 = _1629 * _1631; float _1657 = _1629 * _1636; float _1659 = 0.546274244785308837890625 * ((_1631 * _1631) - (_1636 * _1636)); float _1661 = 0.546274244785308837890625 * ((2.0 * _1631) * _1636); vec3 _1603; for (int _1885 = 0; _1885 < 3; ) _1603[_1885] = ((((_1661 * _1399[_1885]) + (_1657 * _1399[3 + _1885])) + (_1649 * _1399[6 + _1885])) + (_1653 * _1399[9 + _1885])) + (_1659 * _1399[12 + _1885]); _1885++; _1889 = _1888 + _1603; _1889 = _1888; vec4 _1859 = vec4(0.0); _1859.x = _1889.x; vec4 _1862 = _1859; _1862.y = _1889.y; vec4 _1865 = _1862; _1865.z = _1889.z; vec4 _1867 = _1865; _1867.w = 0.0; variable_colorFromSh = _1867; vertex_worldPosition = _1406; vertex_worldNormal = objectUniforms.b * _1873; for (uint _1896 = 0u; _1896 < 2u; ) float _1729 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1896].xyz), 0.0, 1.0); vertex_spotLightSpacePosition[_1896] = shadowUniforms.a[_1896] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1729 * _1729)) * shadowUniforms.b[_1896].w)), 1.0); _1896++; gl_Position = frameUniforms.e * _1204; vec4 _1914; _1914 = (((mesh_position + (mesh_custom0 * objectUniforms.c.x)) + (mesh_custom1 * objectUniforms.c.y)) + (mesh_custom2 * objectUniforms.c.z)) + (mesh_custom3 * objectUniforms.c.w); _1914 = mesh_position; bool _996 = objectUniforms.d == 1; vec4 _1915; if (_996) uint _1018 = mesh_bone_indices.x * 4u; vec3 _1065 = _1914.xyz * bonesUniforms.a[_1018 + 2u].xyz; uint _1024 = mesh_bone_indices.y * 4u; vec3 _1106 = _1914.xyz * bonesUniforms.a[_1024 + 2u].xyz; uint _1031 = mesh_bone_indices.z * 4u; vec3 _1147 = _1914.xyz * bonesUniforms.a[_1031 + 2u].xyz; uint _1038 = mesh_bone_indices.w * 4u; vec3 _1188 = _1914.xyz * bonesUniforms.a[_1038 + 2u].xyz; vec3 _1043 = (((((_1065 + (cross(bonesUniforms.a[_1018].xyz, cross(bonesUniforms.a[_1018].xyz, _1065) + (_1065 * bonesUniforms.a[_1018].w)) * 2.0)) + bonesUniforms.a[_1018 + 1u].xyz) * mesh_bone_weights.x) + (((_1106 + (cross(bonesUniforms.a[_1024].xyz, cross(bonesUniforms.a[_1024].xyz, _1106) + (_1106 * bonesUniforms.a[_1024].w)) * 2.0)) + bonesUniforms.a[_1024 + 1u].xyz) * mesh_bone_weights.y)) + (((_1147 + (cross(bonesUniforms.a[_1031].xyz, cross(bonesUniforms.a[_1031].xyz, _1147) + (_1147 * bonesUniforms.a[_1031].w)) * 2.0)) + bonesUniforms.a[_1031 + 1u].xyz) * mesh_bone_weights.z)) + (((_1188 + (cross(bonesUniforms.a[_1038].xyz, cross(bonesUniforms.a[_1038].xyz, _1188) + (_1188 * bonesUniforms.a[_1038].w)) * 2.0)) + bonesUniforms.a[_1038 + 1u].xyz) * mesh_bone_weights.w); _1915 = vec4(_1043.x, _1043.y, _1043.z, _1914.w); _1915 = _1914; vec4 _1222 = (objectUniforms.a[0] * _1915.x) + ((objectUniforms.a[1] * _1915.y) + ((objectUniforms.a[2] * _1915.z) + objectUniforms.a[3])); vec3 _1233 = (vec3(0.0, 0.0, 1.0) + ((vec3(2.0, -2.0, -2.0) * mesh_tangents.x) * mesh_tangents.zwx)) + ((vec3(2.0, 2.0, -2.0) * mesh_tangents.y) * mesh_tangents.wzy); vec3 _1919; uint _1244 = mesh_bone_indices.x * 4u; vec3 _1285 = _1233 * bonesUniforms.a[_1244 + 3u].xyz; uint _1250 = mesh_bone_indices.y * 4u; vec3 _1317 = _1233 * bonesUniforms.a[_1250 + 3u].xyz; uint _1257 = mesh_bone_indices.z * 4u; vec3 _1349 = _1233 * bonesUniforms.a[_1257 + 3u].xyz; uint _1264 = mesh_bone_indices.w * 4u; vec3 _1381 = _1233 * bonesUniforms.a[_1264 + 3u].xyz; _1919 = ((((_1285 + (cross(bonesUniforms.a[_1244].xyz, cross(bonesUniforms.a[_1244].xyz, _1285) + (_1285 * bonesUniforms.a[_1244].w)) * 2.0)) * mesh_bone_weights.x) + ((_1317 + (cross(bonesUniforms.a[_1250].xyz, cross(bonesUniforms.a[_1250].xyz, _1317) + (_1317 * bonesUniforms.a[_1250].w)) * 2.0)) * mesh_bone_weights.y)) + ((_1349 + (cross(bonesUniforms.a[_1257].xyz, cross(bonesUniforms.a[_1257].xyz, _1349) + (_1349 * bonesUniforms.a[_1257].w)) * 2.0)) * mesh_bone_weights.z)) + ((_1381 + (cross(bonesUniforms.a[_1264].xyz, cross(bonesUniforms.a[_1264].xyz, _1381) + (_1381 * bonesUniforms.a[_1264].w)) * 2.0)) * mesh_bone_weights.w); _1919 = _1233; vec3 _1424 = _1222.xyz; vec3 _1431 = _1424 * inversesqrt(dot(_1424, _1424)); vec3 _1544 = mesh_custom0.xyz * 0.2820948064327239990234375; vec3 _1934; vec4 _1403 = mesh_custom1; vec4 _1404 = mesh_custom2; float _1406[9]; for (int _1926 = 0; _1926 < 4; ) _1406[_1926] = _1403[_1926]; _1406[4 + _1926] = _1404[_1926]; _1926++; _1406[8] = mesh_custom3.x; float _1409[9] = _1406; vec3 _1555; for (int _1927 = 0; _1927 < 3; ) _1555[_1927] = 0.48860251903533935546875 * ((((-_1431.y) * _1409[_1927]) + (_1431.z * _1409[3 + _1927])) - (_1431.x * _1409[6 + _1927])); _1927++; _1934 = _1544 + _1555; _1934 = _1544; vec3 _1935; float _1411[15]; _1411[0] = mesh_custom3.y; _1411[1] = mesh_custom3.z; _1411[2] = mesh_custom3.w; vec4 _1412 = mesh_custom4; vec4 _1413 = mesh_custom5; vec4 _1414 = mesh_custom6; for (int _1930 = 0; _1930 < 4; ) _1411[3 + _1930] = _1412[_1930]; _1411[7 + _1930] = _1413[_1930]; _1411[11 + _1930] = _1414[_1930]; _1930++; float _1417[15] = _1411; float _1641 = _1431.z; float _1647 = (-1.09254848957061767578125) * _1641; float _1649 = _1431.x; float _1654 = _1431.y; float _1667 = (0.946174681186676025390625 * (_1641 * _1641)) - 0.3153915703296661376953125; float _1671 = _1647 * _1649; float _1675 = _1647 * _1654; float _1677 = 0.546274244785308837890625 * ((_1649 * _1649) - (_1654 * _1654)); float _1679 = 0.546274244785308837890625 * ((2.0 * _1649) * _1654); vec3 _1621; for (int _1931 = 0; _1931 < 3; ) _1621[_1931] = ((((_1679 * _1417[_1931]) + (_1675 * _1417[3 + _1931])) + (_1667 * _1417[6 + _1931])) + (_1671 * _1417[9 + _1931])) + (_1677 * _1417[12 + _1931]); _1931++; _1935 = _1934 + _1621; _1935 = _1934; vec4 _1905 = vec4(0.0); _1905.x = _1935.x; vec4 _1908 = _1905; _1908.y = _1935.y; vec4 _1911 = _1908; _1911.z = _1935.z; vec4 _1913 = _1911; _1913.w = 0.0; variable_colorFromSh = _1913; vertex_worldPosition = _1424; vertex_worldNormal = objectUniforms.b * _1919; float _1746 = clamp(dot(vertex_worldNormal, frameUniforms.p), 0.0, 1.0); vertex_lightSpacePosition = frameUniforms.g[0] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1746 * _1746)) * frameUniforms.r.y)), 1.0); for (uint _1942 = 0u; _1942 < 2u; ) float _1775 = clamp(dot(vertex_worldNormal, shadowUniforms.b[_1942].xyz), 0.0, 1.0); vertex_spotLightSpacePosition[_1942] = shadowUniforms.a[_1942] * vec4(vertex_worldPosition + (vertex_worldNormal * (sqrt(1.0 - (_1775 * _1775)) * shadowUniforms.b[_1942].w)), 1.0); _1942++; gl_Position = frameUniforms.e * _1222; vec4 _2325; float _2348; vec2 _597 = vec3(shading_normalizedViewportCoord, _2348).xy; vec4 _622 = textureGather(light_ssao, _597, 1); vec4 _626 = textureGather(light_ssao, _597, 2); vec2 _633 = fract((_597 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _636 = _633.x; float _637 = 1.0 - _636; float _639 = _633.y; vec4 _2243 = _2325; _2243.x = _637 * _639; vec4 _2247 = _2243; _2247.y = _636 * _639; float _652 = 1.0 - _639; vec4 _2251 = _2247; _2251.z = _636 * _652; vec4 _2255 = _2251; _2255.w = _637 * _652; vec4 _2261 = _2325; _2261.x = (_622.x * 0.996108949184417724609375) + (_626.x * 0.00389105058275163173675537109375); vec4 _2267 = _2261; _2267.y = (_622.y * 0.996108949184417724609375) + (_626.y * 0.00389105058275163173675537109375); vec4 _2273 = _2267; _2273.z = (_622.z * 0.996108949184417724609375) + (_626.z * 0.00389105058275163173675537109375); vec4 _2279 = _2273; _2279.w = (_622.w * 0.996108949184417724609375) + (_626.w * 0.00389105058275163173675537109375); vec4 _725 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2279 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _735 = max(vec4(6.103515625e-05), vec4(1.0) - (_725 * _725)) * _2255; return dot(textureGather(light_ssao, _597), _735) * (1.0 / (((_735.x + _735.y) + _735.z) + _735.w)); return textureLod(light_ssao, _597, 0.0).x; ivec2 _936 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _951 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _958 = _951 * (1.0 / float(_936.x)); vec3 _962 = cross(_951, n) * (1.0 / float(_936.y)); vec3 _965 = n - _958; vec3 _970 = n + _958; return (((textureLod(light_iblSpecular, _965 - _962, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _970 - _962, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _970 + _962, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _965 + _962, frameUniforms.cz).xyz) * 0.25; vec3 _2291; vec3 _2290; _2290 = vertex_worldNormal; _2290 = -vertex_worldNormal; _2291 = _2290; _2291 = vertex_worldNormal; vec3 _1332 = normalize(_2291); float _1395 = max(dot(_1332, normalize(frameUniforms.j - shading_position)), 9.9999997473787516355514526367188e-05); vec3 _1483 = variable_colorFromSh.xyz * 1.0; vec4 _1554 = textureLod(light_iblDFG, vec2(_1395, 1.0), 0.0); float _1590 = min(1.0, evaluateSSAO()); float _1683 = clamp((pow(_1395 + _1590, 7.62939453125e-06) - 1.0) + _1590, 0.0, 1.0); vec3 _1691 = mix(_1554.xxx, _1554.yyy, vec3(0.039999999105930328369140625)); fragColor = vec4((((((_1483 * diffuseIrradiance(_1332)) * (vec3(1.0) - _1691)) * 1.0) * max(vec3(_1590), ((((((_1483 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1590) + ((_1483 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1590) + ((_1483 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1590)) + (((_1691 * textureLod(light_iblSpecular, _1332, frameUniforms.cz).xyz) * ((vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1554.y) - 1.0))) * 1.0)) * max(vec3(_1683), ((((vec3(-0.250783979892730712890625) * _1683) + vec3(0.449896037578582763671875)) * _1683) + vec3(0.800507962703704833984375)) * _1683))) * frameUniforms.x, 1.0); vec3 _1279 = shading_position - frameUniforms.j; vec4 _2324; if (frameUniforms.nz > 0.0) float _1847 = length(_1279); float _1850 = max(0.001000000047497451305389404296875, _1279.y); float _1860 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _1850)) / _1850); float _1876 = min(max(1.0 - exp2(-(_1860 * max(_1847 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _2320; if (frameUniforms.qz > 0.0) _2320 = frameUniforms.mz * (textureLod(light_iblSpecular, _1279, frameUniforms.cz).xyz * frameUniforms.x); _2320 = frameUniforms.mz; vec3 _1898 = _2320 * _1876; vec3 _2323; if (frameUniforms.pz > 0.0) _2323 = _1898 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1279, frameUniforms.p) / _1847, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_1860 * max(_1847 - frameUniforms.oz, 0.0))), 0.0))); _2323 = _1898; vec3 _1946 = (fragColor.xyz * (1.0 - _1876)) + _2323; _2324 = vec4(_1946.x, _1946.y, _1946.z, fragColor.w); _2324 = fragColor; fragColor = _2324; vec3 _2979; float _2982; vec4 _3011; float _3040; vec2 _913 = vec3(shading_normalizedViewportCoord, _3040).xy; vec4 _938 = textureGather(light_ssao, _913, 1); vec4 _942 = textureGather(light_ssao, _913, 2); vec2 _949 = fract((_913 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _952 = _949.x; float _953 = 1.0 - _952; float _955 = _949.y; vec4 _2929 = _3011; _2929.x = _953 * _955; vec4 _2933 = _2929; _2933.y = _952 * _955; float _968 = 1.0 - _955; vec4 _2937 = _2933; _2937.z = _952 * _968; vec4 _2941 = _2937; _2941.w = _953 * _968; vec4 _2947 = _3011; _2947.x = (_938.x * 0.996108949184417724609375) + (_942.x * 0.00389105058275163173675537109375); vec4 _2953 = _2947; _2953.y = (_938.y * 0.996108949184417724609375) + (_942.y * 0.00389105058275163173675537109375); vec4 _2959 = _2953; _2959.z = (_938.z * 0.996108949184417724609375) + (_942.z * 0.00389105058275163173675537109375); vec4 _2965 = _2959; _2965.w = (_938.w * 0.996108949184417724609375) + (_942.w * 0.00389105058275163173675537109375); vec4 _1041 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_2965 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1051 = max(vec4(6.103515625e-05), vec4(1.0) - (_1041 * _1041)) * _2941; return dot(textureGather(light_ssao, _913), _1051) * (1.0 / (((_1051.x + _1051.y) + _1051.z) + _1051.w)); return textureLod(light_ssao, _913, 0.0).x; ivec2 _1251 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1266 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1273 = _1266 * (1.0 / float(_1251.x)); vec3 _1277 = cross(_1266, n) * (1.0 / float(_1251.y)); vec3 _1280 = n - _1273; vec3 _1285 = n + _1273; return (((textureLod(light_iblSpecular, _1280 - _1277, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1285 - _1277, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1285 + _1277, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1280 + _1277, frameUniforms.cz).xyz) * 0.25; float _1474 = dot(lightDirection, shading_reflected); vec3 _3012; if (_1474 < frameUniforms.m.x) _3012 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1474)) * frameUniforms.m.y)); _3012 = shading_reflected; return _3012; vec3 _2510 = sampleSunAreaLight(frameUniforms.p); float _2517 = clamp(dot(shading_normal, _2510), 0.0, 1.0); if (_2517 <= 0.0) vec3 _2540 = normalize(shading_view + _2510); float _2543 = clamp(_2517, 0.0, 1.0); float _2547 = clamp(dot(shading_normal, _2540), 0.0, 1.0); float _2635 = _2547 * pixel.roughness; float _2642 = pixel.roughness / ((1.0 - (_2547 * _2547)) + (_2635 * _2635)); float _2665 = pixel.roughness * pixel.roughness; float _2712 = 1.0 - clamp(dot(_2510, _2540), 0.0, 1.0); float _2721 = _2712 * _2712; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_2721 * _2721) * _2712))) * (((_2642 * _2642) * 0.3183098733425140380859375) * (0.5 / ((_2543 * sqrt(((shading_NoV - (_2665 * shading_NoV)) * shading_NoV) + _2665)) + (shading_NoV * sqrt(((_2543 - (_2665 * _2543)) * _2543) + _2665)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _2543)); vec3 _2977; vec3 _2976; _2976 = vertex_worldNormal; _2976 = -vertex_worldNormal; _2977 = _2976; _2977 = vertex_worldNormal; shading_normal = normalize(_2977); vec3 _1880 = variable_colorFromSh.xyz * 1.0; vec4 _1951 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _1936 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _1951.y) - 1.0)); float _1987 = min(1.0, evaluateSSAO()); float _2080 = clamp((pow(shading_NoV + _1987, 7.62939453125e-06) - 1.0) + _1987, 0.0, 1.0); vec3 _2088 = mix(_1951.xxx, _1951.yyy, vec3(0.039999999105930328369140625)); vec3 _1801 = (((((_1880 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2088)) * 1.0) * max(vec3(_1987), ((((((_1880 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _1987) + ((_1880 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _1987) + ((_1880 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _1987)) + (((_2088 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_1936 * 1.0)) * max(vec3(_2080), ((((vec3(-0.250783979892730712890625) * _2080) + vec3(0.449896037578582763671875)) * _2080) + vec3(0.800507962703704833984375)) * _2080))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _2979, _2982, _2982, _2982, _2982, _2979), PixelParams(_1880, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _1951.xyz, _1936), _1801); fragColor = vec4(_1801, 1.0); vec3 _1671 = shading_position - frameUniforms.j; vec4 _3010; float _2244 = length(_1671); float _2247 = max(0.001000000047497451305389404296875, _1671.y); float _2257 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _2247)) / _2247); float _2273 = min(max(1.0 - exp2(-(_2257 * max(_2244 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _3006; _3006 = frameUniforms.mz * (textureLod(light_iblSpecular, _1671, frameUniforms.cz).xyz * frameUniforms.x); _3006 = frameUniforms.mz; vec3 _2295 = _3006 * _2273; vec3 _3009; _3009 = _2295 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1671, frameUniforms.p) / _2244, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_2257 * max(_2244 - frameUniforms.oz, 0.0))), 0.0))); _3009 = _2295; vec3 _2343 = (fragColor.xyz * (1.0 - _2273)) + _3009; _3010 = vec4(_2343.x, _2343.y, _2343.z, fragColor.w); _3010 = fragColor; fragColor = _3010; vec4 _3600; vec4 _3626; float _3627; vec2 _958 = vec3(shading_normalizedViewportCoord, _3627).xy; vec4 _982 = textureGather(light_ssao, _958, 1); vec4 _986 = textureGather(light_ssao, _958, 2); vec2 _993 = fract((_958 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _996 = _993.x; float _997 = 1.0 - _996; float _999 = _993.y; vec4 _3480 = _3600; _3480.x = _997 * _999; vec4 _3484 = _3480; _3484.y = _996 * _999; float _1012 = 1.0 - _999; vec4 _3488 = _3484; _3488.z = _996 * _1012; vec4 _3492 = _3488; _3492.w = _997 * _1012; vec4 _3498 = _3600; _3498.x = (_982.x * 0.996108949184417724609375) + (_986.x * 0.00389105058275163173675537109375); vec4 _3504 = _3498; _3504.y = (_982.y * 0.996108949184417724609375) + (_986.y * 0.00389105058275163173675537109375); vec4 _3510 = _3504; _3510.z = (_982.z * 0.996108949184417724609375) + (_986.z * 0.00389105058275163173675537109375); vec4 _3516 = _3510; _3516.w = (_982.w * 0.996108949184417724609375) + (_986.w * 0.00389105058275163173675537109375); vec4 _1085 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3516 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1095 = max(vec4(6.103515625e-05), vec4(1.0) - (_1085 * _1085)) * _3492; return dot(textureGather(light_ssao, _958), _1095) * (1.0 / (((_1095.x + _1095.y) + _1095.z) + _1095.w)); return textureLod(light_ssao, _958, 0.0).x; ivec2 _1295 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1310 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1317 = _1310 * (1.0 / float(_1295.x)); vec3 _1321 = cross(_1310, n) * (1.0 / float(_1295.y)); vec3 _1324 = n - _1317; vec3 _1329 = n + _1317; return (((textureLod(light_iblSpecular, _1324 - _1321, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1329 - _1321, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1329 + _1321, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1324 + _1321, frameUniforms.cz).xyz) * 0.25; vec3 _3528; vec3 _3527; _3527 = vertex_worldNormal; _3527 = -vertex_worldNormal; _3528 = _3527; _3528 = vertex_worldNormal; vec3 _1998 = normalize(_3528); vec3 _2004 = normalize(frameUniforms.j - shading_position); float _2060 = max(dot(_1998, _2004), 9.9999997473787516355514526367188e-05); vec3 _2153 = variable_colorFromSh.xyz * 1.0; vec4 _2224 = textureLod(light_iblDFG, vec2(_2060, 1.0), 0.0); vec3 _2209 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2224.y) - 1.0)); float _2260 = min(1.0, evaluateSSAO()); float _2353 = clamp((pow(_2060 + _2260, 7.62939453125e-06) - 1.0) + _2260, 0.0, 1.0); vec3 _2361 = mix(_2224.xxx, _2224.yyy, vec3(0.039999999105930328369140625)); float _2526 = 1.0 - gl_FragCoord.z; uvec2 _2565 = uvec2((vec3(shading_normalizedViewportCoord, _2526).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _2550 = ((_2565.x * frameUniforms.q) + (_2565.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2526) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _2597 = texelFetch(light_froxels, ivec2(int(_2550 & 63u), int(_2550 >> 6u)), 0); uint _2600 = _2597.x; uint _2498 = _2600 + (_2597.y & 255u); vec3 _3561; _3561 = (((((_2153 * diffuseIrradiance(_1998)) * (vec3(1.0) - _2361)) * 1.0) * max(vec3(_2260), ((((((_2153 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2260) + ((_2153 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2260) + ((_2153 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2260)) + (((_2361 * textureLod(light_iblSpecular, _1998, frameUniforms.cz).xyz) * (_2209 * 1.0)) * max(vec3(_2353), ((((vec3(-0.250783979892730712890625) * _2353) + vec3(0.449896037578582763671875)) * _2353) + vec3(0.800507962703704833984375)) * _2353))) * frameUniforms.x; vec3 _3593; for (uint _3560 = _2600; _3560 < _2498; _3561 = _3593, _3560++) uvec4 _2635 = texelFetch(light_records, ivec2(int(_3560 & 31u), int(_3560 >> 5u)), 0); uint _2636 = _2635.x; vec3 _2653 = lightsUniforms.a[_2636][0].xyz - vertex_worldPosition; float _2733 = lightsUniforms.a[_2636][1].w * frameUniforms.y; vec4 _3472 = vec4(lightsUniforms.a[_2636][1].x, lightsUniforms.a[_2636][1].y, lightsUniforms.a[_2636][1].z, _3626.w); _3472.w = _2733; vec3 _2666 = normalize(_2653); float _2740 = dot(_2653, _2653); float _2755 = _2740 * lightsUniforms.a[_2636][0].w; float _2760 = clamp(1.0 - (_2755 * _2755), 0.0, 1.0); float _2748 = (_2760 * _2760) / max(_2740, 9.9999997473787516355514526367188e-05); float _2677 = clamp(dot(_1998, _2666), 0.0, 1.0); float _3589; if (floatBitsToUint(lightsUniforms.a[_2636][3].w) == 1u) float _2774 = clamp((dot(-lightsUniforms.a[_2636][2].xyz, _2666) * lightsUniforms.a[_2636][3].x) + lightsUniforms.a[_2636][3].y, 0.0, 1.0); _3589 = _2748 * (_2774 * _2774); _3589 = _2748; if (_2677 <= 0.0) _3593 = _3561; vec3 _2798 = normalize(_2004 + _2666); float _2801 = clamp(_2677, 0.0, 1.0); float _2805 = clamp(dot(_1998, _2798), 0.0, 1.0); float _2950 = (_2801 * sqrt(((_2060 - _2060) * _2060) + 1.0)) + (_2060 * sqrt(((_2801 - _2801) * _2801) + 1.0)); float _2970 = 1.0 - clamp(dot(_2666, _2798), 0.0, 1.0); float _2979 = _2970 * _2970; _3593 = _3561 + ((((_2153 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_2979 * _2979) * _2970))) * (0.15915493667125701904296875 / _2950)) * _2209)) * _3472.xyz) * ((_2733 * _3589) * _2801)); fragColor = vec4(_3561, 1.0); vec3 _1955 = shading_position - frameUniforms.j; vec4 _3566; float _3038 = length(_1955); float _3041 = max(0.001000000047497451305389404296875, _1955.y); float _3051 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3041)) / _3041); float _3067 = min(max(1.0 - exp2(-(_3051 * max(_3038 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _3562; _3562 = frameUniforms.mz * (textureLod(light_iblSpecular, _1955, frameUniforms.cz).xyz * frameUniforms.x); _3562 = frameUniforms.mz; vec3 _3089 = _3562 * _3067; vec3 _3565; _3565 = _3089 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_1955, frameUniforms.p) / _3038, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3051 * max(_3038 - frameUniforms.oz, 0.0))), 0.0))); _3565 = _3089; vec3 _3137 = (fragColor.xyz * (1.0 - _3067)) + _3565; _3566 = vec4(_3137.x, _3137.y, _3137.z, fragColor.w); _3566 = fragColor; fragColor = _3566; vec3 _3907; float _3910; vec4 _3977; vec4 _4009; float _4010; vec2 _969 = vec3(shading_normalizedViewportCoord, _4010).xy; vec4 _993 = textureGather(light_ssao, _969, 1); vec4 _997 = textureGather(light_ssao, _969, 2); vec2 _1004 = fract((_969 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1007 = _1004.x; float _1008 = 1.0 - _1007; float _1010 = _1004.y; vec4 _3857 = _3977; _3857.x = _1008 * _1010; vec4 _3861 = _3857; _3861.y = _1007 * _1010; float _1023 = 1.0 - _1010; vec4 _3865 = _3861; _3865.z = _1007 * _1023; vec4 _3869 = _3865; _3869.w = _1008 * _1023; vec4 _3875 = _3977; _3875.x = (_993.x * 0.996108949184417724609375) + (_997.x * 0.00389105058275163173675537109375); vec4 _3881 = _3875; _3881.y = (_993.y * 0.996108949184417724609375) + (_997.y * 0.00389105058275163173675537109375); vec4 _3887 = _3881; _3887.z = (_993.z * 0.996108949184417724609375) + (_997.z * 0.00389105058275163173675537109375); vec4 _3893 = _3887; _3893.w = (_993.w * 0.996108949184417724609375) + (_997.w * 0.00389105058275163173675537109375); vec4 _1096 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3893 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1106 = max(vec4(6.103515625e-05), vec4(1.0) - (_1096 * _1096)) * _3869; return dot(textureGather(light_ssao, _969), _1106) * (1.0 / (((_1106.x + _1106.y) + _1106.z) + _1106.w)); return textureLod(light_ssao, _969, 0.0).x; ivec2 _1306 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1321 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1328 = _1321 * (1.0 / float(_1306.x)); vec3 _1332 = cross(_1321, n) * (1.0 / float(_1306.y)); vec3 _1335 = n - _1328; vec3 _1340 = n + _1328; return (((textureLod(light_iblSpecular, _1335 - _1332, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1340 - _1332, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1340 + _1332, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1335 + _1332, frameUniforms.cz).xyz) * 0.25; float _1529 = dot(lightDirection, shading_reflected); vec3 _3978; if (_1529 < frameUniforms.m.x) _3978 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1529)) * frameUniforms.m.y)); _3978 = shading_reflected; return _3978; vec3 _3396 = sampleSunAreaLight(frameUniforms.p); float _3403 = clamp(dot(shading_normal, _3396), 0.0, 1.0); if (_3403 <= 0.0) vec3 _3426 = normalize(shading_view + _3396); float _3429 = clamp(_3403, 0.0, 1.0); float _3433 = clamp(dot(shading_normal, _3426), 0.0, 1.0); float _3521 = _3433 * pixel.roughness; float _3528 = pixel.roughness / ((1.0 - (_3433 * _3433)) + (_3521 * _3521)); float _3551 = pixel.roughness * pixel.roughness; float _3598 = 1.0 - clamp(dot(_3396, _3426), 0.0, 1.0); float _3607 = _3598 * _3598; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3607 * _3607) * _3598))) * (((_3528 * _3528) * 0.3183098733425140380859375) * (0.5 / ((_3429 * sqrt(((shading_NoV - (_3551 * shading_NoV)) * shading_NoV) + _3551)) + (shading_NoV * sqrt(((_3429 - (_3551 * _3429)) * _3429) + _3551)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * (frameUniforms.l.w * _3429)); vec3 _3905; vec3 _3904; _3904 = vertex_worldNormal; _3904 = -vertex_worldNormal; _3905 = _3904; _3905 = vertex_worldNormal; shading_normal = normalize(_3905); vec3 _2245 = variable_colorFromSh.xyz * 1.0; vec4 _2316 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2301 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2316.y) - 1.0)); float _2352 = min(1.0, evaluateSSAO()); float _2445 = clamp((pow(shading_NoV + _2352, 7.62939453125e-06) - 1.0) + _2352, 0.0, 1.0); vec3 _2453 = mix(_2316.xxx, _2316.yyy, vec3(0.039999999105930328369140625)); vec3 _2161 = (((((_2245 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2453)) * 1.0) * max(vec3(_2352), ((((((_2245 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2352) + ((_2245 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2352) + ((_2245 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2352)) + (((_2453 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2301 * 1.0)) * max(vec3(_2445), ((((vec3(-0.250783979892730712890625) * _2445) + vec3(0.449896037578582763671875)) * _2445) + vec3(0.800507962703704833984375)) * _2445))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3907, _3910, _3910, _3910, _3910, _3907), PixelParams(_2245, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2316.xyz, _2301), _2161); float _2618 = 1.0 - gl_FragCoord.z; uvec2 _2657 = uvec2((vec3(shading_normalizedViewportCoord, _2618).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _2642 = ((_2657.x * frameUniforms.q) + (_2657.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2618) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _2689 = texelFetch(light_froxels, ivec2(int(_2642 & 63u), int(_2642 >> 6u)), 0); uint _2692 = _2689.x; uint _2590 = _2692 + (_2689.y & 255u); vec3 _3938; _3938 = _2161; vec3 _3970; for (uint _3937 = _2692; _3937 < _2590; _3938 = _3970, _3937++) uvec4 _2727 = texelFetch(light_records, ivec2(int(_3937 & 31u), int(_3937 >> 5u)), 0); uint _2728 = _2727.x; vec3 _2745 = lightsUniforms.a[_2728][0].xyz - vertex_worldPosition; float _2825 = lightsUniforms.a[_2728][1].w * frameUniforms.y; vec4 _3849 = vec4(lightsUniforms.a[_2728][1].x, lightsUniforms.a[_2728][1].y, lightsUniforms.a[_2728][1].z, _4009.w); _3849.w = _2825; vec3 _2758 = normalize(_2745); float _2832 = dot(_2745, _2745); float _2847 = _2832 * lightsUniforms.a[_2728][0].w; float _2852 = clamp(1.0 - (_2847 * _2847), 0.0, 1.0); float _2840 = (_2852 * _2852) / max(_2832, 9.9999997473787516355514526367188e-05); float _2769 = clamp(dot(shading_normal, _2758), 0.0, 1.0); float _3966; if (floatBitsToUint(lightsUniforms.a[_2728][3].w) == 1u) float _2866 = clamp((dot(-lightsUniforms.a[_2728][2].xyz, _2758) * lightsUniforms.a[_2728][3].x) + lightsUniforms.a[_2728][3].y, 0.0, 1.0); _3966 = _2840 * (_2866 * _2866); _3966 = _2840; if (_2769 <= 0.0) _3970 = _3938; vec3 _2890 = normalize(shading_view + _2758); float _2893 = clamp(_2769, 0.0, 1.0); float _2897 = clamp(dot(shading_normal, _2890), 0.0, 1.0); float _3042 = (_2893 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_2893 - _2893) * _2893) + 1.0)); float _3062 = 1.0 - clamp(dot(_2758, _2890), 0.0, 1.0); float _3071 = _3062 * _3062; _3970 = _3938 + ((((_2245 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3071 * _3071) * _3062))) * (0.15915493667125701904296875 / _3042)) * _2301)) * _3849.xyz) * ((_2825 * _3966) * _2893)); fragColor = vec4(_3938, 1.0); vec3 _2042 = shading_position - frameUniforms.j; vec4 _3943; float _3130 = length(_2042); float _3133 = max(0.001000000047497451305389404296875, _2042.y); float _3143 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3133)) / _3133); float _3159 = min(max(1.0 - exp2(-(_3143 * max(_3130 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _3939; _3939 = frameUniforms.mz * (textureLod(light_iblSpecular, _2042, frameUniforms.cz).xyz * frameUniforms.x); _3939 = frameUniforms.mz; vec3 _3181 = _3939 * _3159; vec3 _3942; _3942 = _3181 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2042, frameUniforms.p) / _3130, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3143 * max(_3130 - frameUniforms.oz, 0.0))), 0.0))); _3942 = _3181; vec3 _3229 = (fragColor.xyz * (1.0 - _3159)) + _3942; _3943 = vec4(_3229.x, _3229.y, _3229.z, fragColor.w); _3943 = fragColor; fragColor = _3943; vec3 _4347; float _4350; vec4 _4379; float _4425; vec3 _525; vec2 _1577 = vec3(shading_normalizedViewportCoord, _4425).xy; vec4 _1599 = textureGather(light_ssao, _1577, 1); vec4 _1603 = textureGather(light_ssao, _1577, 2); vec2 _1610 = fract((_1577 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1613 = _1610.x; float _1614 = 1.0 - _1613; float _1616 = _1610.y; vec4 _4259 = _4379; _4259.x = _1614 * _1616; vec4 _4263 = _4259; _4263.y = _1613 * _1616; float _1629 = 1.0 - _1616; vec4 _4267 = _4263; _4267.z = _1613 * _1629; vec4 _4271 = _4267; _4271.w = _1614 * _1629; vec4 _4277 = _4379; _4277.x = (_1599.x * 0.996108949184417724609375) + (_1603.x * 0.00389105058275163173675537109375); vec4 _4283 = _4277; _4283.y = (_1599.y * 0.996108949184417724609375) + (_1603.y * 0.00389105058275163173675537109375); vec4 _4289 = _4283; _4289.z = (_1599.z * 0.996108949184417724609375) + (_1603.z * 0.00389105058275163173675537109375); vec4 _4295 = _4289; _4295.w = (_1599.w * 0.996108949184417724609375) + (_1603.w * 0.00389105058275163173675537109375); vec4 _1701 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4295 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1711 = max(vec4(6.103515625e-05), vec4(1.0) - (_1701 * _1701)) * _4271; return dot(textureGather(light_ssao, _1577), _1711) * (1.0 / (((_1711.x + _1711.y) + _1711.z) + _1711.w)); return textureLod(light_ssao, _1577, 0.0).x; ivec2 _1909 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1923 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1930 = _1923 * (1.0 / float(_1909.x)); vec3 _1934 = cross(_1923, n) * (1.0 / float(_1909.y)); vec3 _1937 = n - _1930; vec3 _1942 = n + _1930; return (((textureLod(light_iblSpecular, _1937 - _1934, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1942 - _1934, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1942 + _1934, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1937 + _1934, frameUniforms.cz).xyz) * 0.25; float _2130 = dot(lightDirection, shading_reflected); vec3 _4380; if (_2130 < frameUniforms.m.x) _4380 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2130)) * frameUniforms.m.y)); _4380 = shading_reflected; return _4380; float _4034 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _4049 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_4034 * _4034)) * frameUniforms.r.y)), 1.0); return _4049.xyz * (1.0 / _4049.w); float _2243; vec3 _3278 = sampleSunAreaLight(frameUniforms.p); float _3285 = clamp(dot(shading_normal, _3278), 0.0, 1.0); if (_3285 > 0.0) bvec4 _3302 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _3312 = clamp(uint(dot(vec4(_3302.x ? vec4(1.0).x : vec4(0.0).x, _3302.y ? vec4(1.0).y : vec4(0.0).y, _3302.z ? vec4(1.0).z : vec4(0.0).z, _3302.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _4384; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _3312) << 8u)) != 0u)) uint param = _3312; vec3 _2215 = getCascadeLightSpacePosition(param); vec2 _3345 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _3380 = vec2(1.0) / _3345; vec2 _3390 = (clamp(_2215.xy, vec2(-1.0), vec2(2.0)).xy * _3345) + vec2(0.5); vec2 _3396 = (floor(_3390) - vec2(0.5)) * _3380; vec2 _3398 = fract(_3390); float _3400 = _3398.x; float _3401 = 2.0 * _3400; float _3402 = 3.0 - _3401; float _3406 = 1.0 + _3401; float _3409 = _3398.y; float _3410 = 2.0 * _3409; float _3411 = 3.0 - _3410; float _3415 = 1.0 + _3410; vec2 _3448 = vec2(((2.0 - _3400) / _3402) - 1.0, (_3400 / _3406) + 1.0) * _3380.x; vec2 _3452 = vec2(((2.0 - _3409) / _3411) - 1.0, (_3409 / _3415) + 1.0) * _3380.y; float _3466 = _3448.x; float _3468 = _3452.x; float _3543 = float(_3312); float _3545 = clamp(_2215.z, 0.0, 1.0); float _3483 = _3448.y; float _3502 = _3452.y; _4384 = (((((_3402 * _3411) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3466, _3468), _3543, _3545).xyz, _3545))) + ((_3406 * _3411) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3483, _3468), _3543, _3545).xyz, _3545)))) + ((_3402 * _3415) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3466, _3502), _3543, _3545).xyz, _3545)))) + ((_3406 * _3415) * texture(light_shadowMap, vec4(vec4(_3396 + vec2(_3483, _3502), _3543, _3545).xyz, _3545)))) * 0.0625; _4384 = 1.0; float _4392; if (((frameUniforms.fz & 2u) != 0u) && (_4384 > 0.0)) uint _3616 = (frameUniforms.fz >> 8u) & 255u; vec4 _3726 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3733 = frameUniforms.e * vec4(shading_position + (_3278 * frameUniforms.hz), 1.0); vec4 _3739 = _3726 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3745 = _3726.xyz * (1.0 / _3726.w); vec3 _3770 = (_3745 * 0.5) + vec3(0.5); vec3 _3775 = (((_3733.xyz * (1.0 / _3733.w)) * 0.5) + vec3(0.5)) - _3770; float _3626 = 1.0 / float(_3616); float _3635 = (abs((_3739.xyz * (1.0 / _3739.w)).z - _3745.z) * _3626) * 0.5; float _3647 = (_3626 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3626; vec3 _4388; _4388 = _4383; vec3 _3660; uint _4385 = 0u; float _4386 = _3647; if (_4385 < _3616) _3660 = _3770 + (_3775 * _4386); if (abs(_3635 - (_3660.z - (1.0 - textureLod(light_structure, _3660.xy, 0.0).x))) < _3635) _4387 = _3660; _4386 += _3626; _4385++; _4388 = _3660; _4387 = _4388; vec2 _3696 = max((abs(_4387.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _4394 = _4390 * clamp(1.0 - dot(_3696, _3696), 0.0, 1.0); _4394 = 0.0; _4392 = _4394; _4392 = 0.0; _2243 = _4384 * (1.0 - _4392); vec3 _3808 = normalize(shading_view + _3278); float _3811 = clamp(_3285, 0.0, 1.0); float _3815 = clamp(dot(shading_normal, _3808), 0.0, 1.0); float _3903 = _3815 * pixel.roughness; float _3910 = pixel.roughness / ((1.0 - (_3815 * _3815)) + (_3903 * _3903)); float _3933 = pixel.roughness * pixel.roughness; float _3980 = 1.0 - clamp(dot(_3278, _3808), 0.0, 1.0); float _3989 = _3980 * _3980; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3989 * _3989) * _3980))) * (((_3910 * _3910) * 0.3183098733425140380859375) * (0.5 / ((_3811 * sqrt(((shading_NoV - (_3933 * shading_NoV)) * shading_NoV) + _3933)) + (shading_NoV * sqrt(((_3811 - (_3933 * _3811)) * _3811) + _3933)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3811) * _2243)); vec3 _4345; vec3 _4344; _4344 = vertex_worldNormal; _4344 = -vertex_worldNormal; _4345 = _4344; _4345 = vertex_worldNormal; shading_normal = normalize(_4345); vec3 _2601 = variable_colorFromSh.xyz * 1.0; vec4 _2672 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2657 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2672.y) - 1.0)); float _2708 = min(1.0, evaluateSSAO()); float _2801 = clamp((pow(shading_NoV + _2708, 7.62939453125e-06) - 1.0) + _2708, 0.0, 1.0); vec3 _2809 = mix(_2672.xxx, _2672.yyy, vec3(0.039999999105930328369140625)); vec3 _2522 = (((((_2601 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2809)) * 1.0) * max(vec3(_2708), ((((((_2601 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2708) + ((_2601 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2708) + ((_2601 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2708)) + (((_2809 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2657 * 1.0)) * max(vec3(_2801), ((((vec3(-0.250783979892730712890625) * _2801) + vec3(0.449896037578582763671875)) * _2801) + vec3(0.800507962703704833984375)) * _2801))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4347, _4350, _4350, _4350, _4350, _4347), PixelParams(_2601, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2672.xyz, _2657), _2522); fragColor = vec4(_2522, 1.0); bvec4 _2947 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_2947.x ? vec4(1.0).x : vec4(0.0).x, _2947.y ? vec4(1.0).y : vec4(0.0).y, _2947.z ? vec4(1.0).z : vec4(0.0).z, _2947.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2396 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2396.x, _2396.y, _2396.z, fragColor.w); vec3 _2402 = shading_position - frameUniforms.j; vec4 _4378; float _3012 = length(_2402); float _3015 = max(0.001000000047497451305389404296875, _2402.y); float _3025 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3015)) / _3015); float _3041 = min(max(1.0 - exp2(-(_3025 * max(_3012 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _4374; _4374 = frameUniforms.mz * (textureLod(light_iblSpecular, _2402, frameUniforms.cz).xyz * frameUniforms.x); _4374 = frameUniforms.mz; vec3 _3063 = _4374 * _3041; vec3 _4377; _4377 = _3063 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2402, frameUniforms.p) / _3012, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3025 * max(_3012 - frameUniforms.oz, 0.0))), 0.0))); _4377 = _3063; vec3 _3111 = (fragColor.xyz * (1.0 - _3041)) + _4377; _4378 = vec4(_3111.x, _3111.y, _3111.z, fragColor.w); _4378 = fragColor; fragColor = _4378; vec3 _4627; uint _4671; bool _4680; vec4 _4760; vec4 _4788; float _4789; vec2 _1462 = vec3(shading_normalizedViewportCoord, _4789).xy; vec4 _1483 = textureGather(light_ssao, _1462, 1); vec4 _1487 = textureGather(light_ssao, _1462, 2); vec2 _1494 = fract((_1462 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1497 = _1494.x; float _1498 = 1.0 - _1497; float _1500 = _1494.y; vec4 _4577 = _4760; _4577.x = _1498 * _1500; vec4 _4581 = _4577; _4581.y = _1497 * _1500; float _1513 = 1.0 - _1500; vec4 _4585 = _4581; _4585.z = _1497 * _1513; vec4 _4589 = _4585; _4589.w = _1498 * _1513; vec4 _4595 = _4760; _4595.x = (_1483.x * 0.996108949184417724609375) + (_1487.x * 0.00389105058275163173675537109375); vec4 _4601 = _4595; _4601.y = (_1483.y * 0.996108949184417724609375) + (_1487.y * 0.00389105058275163173675537109375); vec4 _4607 = _4601; _4607.z = (_1483.z * 0.996108949184417724609375) + (_1487.z * 0.00389105058275163173675537109375); vec4 _4613 = _4607; _4613.w = (_1483.w * 0.996108949184417724609375) + (_1487.w * 0.00389105058275163173675537109375); vec4 _1585 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4613 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1595 = max(vec4(6.103515625e-05), vec4(1.0) - (_1585 * _1585)) * _4589; return dot(textureGather(light_ssao, _1462), _1595) * (1.0 / (((_1595.x + _1595.y) + _1595.z) + _1595.w)); return textureLod(light_ssao, _1462, 0.0).x; ivec2 _1794 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1809 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1816 = _1809 * (1.0 / float(_1794.x)); vec3 _1820 = cross(_1809, n) * (1.0 / float(_1794.y)); vec3 _1823 = n - _1816; vec3 _1828 = n + _1816; return (((textureLod(light_iblSpecular, _1823 - _1820, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1828 - _1820, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1828 + _1820, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1823 + _1820, frameUniforms.cz).xyz) * 0.25; vec3 _4625; vec3 _4624; _4624 = vertex_worldNormal; _4624 = -vertex_worldNormal; _4625 = _4624; _4625 = vertex_worldNormal; vec3 _2527 = normalize(_4625); vec3 _2533 = normalize(frameUniforms.j - shading_position); float _2589 = max(dot(_2527, _2533), 9.9999997473787516355514526367188e-05); vec3 _2682 = variable_colorFromSh.xyz * 1.0; vec4 _2753 = textureLod(light_iblDFG, vec2(_2589, 1.0), 0.0); vec3 _2738 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2753.y) - 1.0)); float _2789 = min(1.0, evaluateSSAO()); float _2882 = clamp((pow(_2589 + _2789, 7.62939453125e-06) - 1.0) + _2789, 0.0, 1.0); vec3 _2890 = mix(_2753.xxx, _2753.yyy, vec3(0.039999999105930328369140625)); float _3091 = 1.0 - gl_FragCoord.z; uvec2 _3130 = uvec2((vec3(shading_normalizedViewportCoord, _3091).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _3115 = ((_3130.x * frameUniforms.q) + (_3130.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3091) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _3162 = texelFetch(light_froxels, ivec2(int(_3115 & 63u), int(_3115 >> 6u)), 0); uint _3165 = _3162.x; uint _3030 = _3165 + (_3162.y & 255u); vec3 _4658; vec3 _4694; _4694 = _4627; _4658 = (((((_2682 * diffuseIrradiance(_2527)) * (vec3(1.0) - _2890)) * 1.0) * max(vec3(_2789), ((((((_2682 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2789) + ((_2682 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2789) + ((_2682 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2789)) + (((_2890 * textureLod(light_iblSpecular, _2527, frameUniforms.cz).xyz) * (_2738 * 1.0)) * max(vec3(_2882), ((((vec3(-0.250783979892730712890625) * _2882) + vec3(0.449896037578582763671875)) * _2882) + vec3(0.800507962703704833984375)) * _2882))) * frameUniforms.x; uint _4668; uint _4673; bool _4677; bool _4682; vec3 _4719; vec3 _4757; uint _4669; uint _4674; bool _4678; bool _4683; for (uint _4657 = _3165; _4657 < _3030; _4694 = _4757, _4683 = _4682, _4678 = _4677, _4674 = _4673, _4669 = _4668, _4658 = _4719, _4657++) uvec4 _3200 = texelFetch(light_records, ivec2(int(_4657 & 31u), int(_4657 >> 5u)), 0); uint _3201 = _3200.x; vec3 _3218 = lightsUniforms.a[_3201][0].xyz - vertex_worldPosition; float _3298 = lightsUniforms.a[_3201][1].w * frameUniforms.y; vec4 _4531 = vec4(lightsUniforms.a[_3201][1].x, lightsUniforms.a[_3201][1].y, lightsUniforms.a[_3201][1].z, _4788.w); _4531.w = _3298; vec3 _3231 = normalize(_3218); float _3305 = dot(_3218, _3218); float _3320 = _3305 * lightsUniforms.a[_3201][0].w; float _3325 = clamp(1.0 - (_3320 * _3320), 0.0, 1.0); float _3313 = (_3325 * _3325) / max(_3305, 9.9999997473787516355514526367188e-05); float _3242 = clamp(dot(_2527, _3231), 0.0, 1.0); float _4686; if (floatBitsToUint(lightsUniforms.a[_3201][3].w) == 1u) float _3339 = clamp((dot(-lightsUniforms.a[_3201][2].xyz, _3231) * lightsUniforms.a[_3201][3].x) + lightsUniforms.a[_3201][3].y, 0.0, 1.0); uint _3267 = floatBitsToUint(lightsUniforms.a[_3201][3].z); _4686 = _3313 * (_3339 * _3339); _4682 = (_3267 & 1u) != 0u; _4677 = ((_3267 >> 1u) & 1u) != 0u; _4673 = (_3267 >> 2u) & 15u; _4668 = (_3267 >> 6u) & 15u; _4686 = _3313; _4682 = _4683; _4677 = _4678; _4673 = _4674; _4668 = _4669; float _4701; if (_3242 > 0.0) float _4687; if (_4682) vec3 _3354 = vertex_spotLightSpacePosition[_4673].xyz * (1.0 / vertex_spotLightSpacePosition[_4673].w); vec2 _3365 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _3400 = vec2(1.0) / _3365; vec2 _3410 = (clamp(_3354.xy, vec2(-1.0), vec2(2.0)).xy * _3365) + vec2(0.5); vec2 _3416 = (floor(_3410) - vec2(0.5)) * _3400; vec2 _3418 = fract(_3410); float _3420 = _3418.x; float _3421 = 2.0 * _3420; float _3422 = 3.0 - _3421; float _3426 = 1.0 + _3421; float _3429 = _3418.y; float _3430 = 2.0 * _3429; float _3431 = 3.0 - _3430; float _3435 = 1.0 + _3430; vec2 _3468 = vec2(((2.0 - _3420) / _3422) - 1.0, (_3420 / _3426) + 1.0) * _3400.x; vec2 _3472 = vec2(((2.0 - _3429) / _3431) - 1.0, (_3429 / _3435) + 1.0) * _3400.y; float _3486 = _3468.x; float _3488 = _3472.x; float _3563 = float(_4668); float _3565 = clamp(_3354.z, 0.0, 1.0); float _3503 = _3468.y; float _3522 = _3472.y; _4687 = (((((_3422 * _3431) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3486, _3488), _3563, _3565).xyz, _3565))) + ((_3426 * _3431) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3503, _3488), _3563, _3565).xyz, _3565)))) + ((_3422 * _3435) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3486, _3522), _3563, _3565).xyz, _3565)))) + ((_3426 * _3435) * texture(light_shadowMap, vec4(vec4(_3416 + vec2(_3503, _3522), _3563, _3565).xyz, _3565)))) * 0.0625; _4687 = 1.0; float _4702; vec3 _4758; if (_4677 && (_4687 > 0.0)) float _4703; vec3 _4759; uint _3636 = (frameUniforms.fz >> 8u) & 255u; vec4 _3746 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3753 = frameUniforms.e * vec4(shading_position + (_3231 * frameUniforms.hz), 1.0); vec4 _3759 = _3746 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3765 = _3746.xyz * (1.0 / _3746.w); vec3 _3790 = (_3765 * 0.5) + vec3(0.5); vec3 _3795 = (((_3753.xyz * (1.0 / _3753.w)) * 0.5) + vec3(0.5)) - _3790; float _3646 = 1.0 / float(_3636); float _3655 = (abs((_3759.xyz * (1.0 / _3759.w)).z - _3765.z) * _3646) * 0.5; float _3667 = (_3646 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3646; vec3 _4691; _4691 = _4694; vec3 _3680; vec3 _4690; float _4697; uint _4688 = 0u; float _4689 = _3667; if (_4688 < _3636) _3680 = _3790 + (_3795 * _4689); if (abs(_3655 - (_3680.z - (1.0 - textureLod(light_structure, _3680.xy, 0.0).x))) < _3655) _4697 = 1.0; _4690 = _3680; _4689 += _3646; _4688++; _4691 = _3680; _4697 = 0.0; _4690 = _4691; vec2 _3716 = max((abs(_4690.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _4759 = _4690; _4703 = _4687 * (1.0 - (_4697 * clamp(1.0 - dot(_3716, _3716), 0.0, 1.0))); _4759 = _4694; _4703 = _4687; _4758 = _4759; _4702 = _4703; _4758 = _4694; _4702 = _4687; _4757 = _4758; _4701 = _4702; _4757 = _4694; _4701 = 1.0; if (_3242 <= 0.0) _4719 = _4658; vec3 _3828 = normalize(_2533 + _3231); float _3831 = clamp(_3242, 0.0, 1.0); float _3835 = clamp(dot(_2527, _3828), 0.0, 1.0); float _3980 = (_3831 * sqrt(((_2589 - _2589) * _2589) + 1.0)) + (_2589 * sqrt(((_3831 - _3831) * _3831) + 1.0)); float _4000 = 1.0 - clamp(dot(_3231, _3828), 0.0, 1.0); float _4009 = _4000 * _4000; _4719 = _4658 + ((((_2682 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_4009 * _4009) * _4000))) * (0.15915493667125701904296875 / _3980)) * _2738)) * _4531.xyz) * (((_3298 * _4686) * _3831) * _4701)); fragColor = vec4(_4658, 1.0); vec3 _2493 = shading_position - frameUniforms.j; vec4 _4663; float _4068 = length(_2493); float _4071 = max(0.001000000047497451305389404296875, _2493.y); float _4081 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _4071)) / _4071); float _4097 = min(max(1.0 - exp2(-(_4081 * max(_4068 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _4659; _4659 = frameUniforms.mz * (textureLod(light_iblSpecular, _2493, frameUniforms.cz).xyz * frameUniforms.x); _4659 = frameUniforms.mz; vec3 _4119 = _4659 * _4097; vec3 _4662; _4662 = _4119 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2493, frameUniforms.p) / _4068, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_4081 * max(_4068 - frameUniforms.oz, 0.0))), 0.0))); _4662 = _4119; vec3 _4167 = (fragColor.xyz * (1.0 - _4097)) + _4662; _4663 = vec4(_4167.x, _4167.y, _4167.z, fragColor.w); _4663 = fragColor; fragColor = _4663; vec3 _5896; float _5899; uint _5940; bool _5949; vec4 _6029; vec3 _6033; vec4 _6078; float _6079; vec3 _583; vec2 _1650 = vec3(shading_normalizedViewportCoord, _6079).xy; vec4 _1671 = textureGather(light_ssao, _1650, 1); vec4 _1675 = textureGather(light_ssao, _1650, 2); vec2 _1682 = fract((_1650 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1685 = _1682.x; float _1686 = 1.0 - _1685; float _1688 = _1682.y; vec4 _5808 = _6029; _5808.x = _1686 * _1688; vec4 _5812 = _5808; _5812.y = _1685 * _1688; float _1701 = 1.0 - _1688; vec4 _5816 = _5812; _5816.z = _1685 * _1701; vec4 _5820 = _5816; _5820.w = _1686 * _1701; vec4 _5826 = _6029; _5826.x = (_1671.x * 0.996108949184417724609375) + (_1675.x * 0.00389105058275163173675537109375); vec4 _5832 = _5826; _5832.y = (_1671.y * 0.996108949184417724609375) + (_1675.y * 0.00389105058275163173675537109375); vec4 _5838 = _5832; _5838.z = (_1671.z * 0.996108949184417724609375) + (_1675.z * 0.00389105058275163173675537109375); vec4 _5844 = _5838; _5844.w = (_1671.w * 0.996108949184417724609375) + (_1675.w * 0.00389105058275163173675537109375); vec4 _1773 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5844 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1783 = max(vec4(6.103515625e-05), vec4(1.0) - (_1773 * _1773)) * _5820; return dot(textureGather(light_ssao, _1650), _1783) * (1.0 / (((_1783.x + _1783.y) + _1783.z) + _1783.w)); return textureLod(light_ssao, _1650, 0.0).x; ivec2 _1981 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1995 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _2002 = _1995 * (1.0 / float(_1981.x)); vec3 _2006 = cross(_1995, n) * (1.0 / float(_1981.y)); vec3 _2009 = n - _2002; vec3 _2014 = n + _2002; return (((textureLod(light_iblSpecular, _2009 - _2006, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _2014 - _2006, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _2014 + _2006, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _2009 + _2006, frameUniforms.cz).xyz) * 0.25; float _2202 = dot(lightDirection, shading_reflected); vec3 _6030; if (_2202 < frameUniforms.m.x) _6030 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2202)) * frameUniforms.m.y)); _6030 = shading_reflected; return _6030; float _5471 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _5486 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_5471 * _5471)) * frameUniforms.r.y)), 1.0); return _5486.xyz * (1.0 / _5486.w); float _2315; vec3 _4715 = sampleSunAreaLight(frameUniforms.p); float _4722 = clamp(dot(shading_normal, _4715), 0.0, 1.0); if (_4722 > 0.0) bvec4 _4739 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _4749 = clamp(uint(dot(vec4(_4739.x ? vec4(1.0).x : vec4(0.0).x, _4739.y ? vec4(1.0).y : vec4(0.0).y, _4739.z ? vec4(1.0).z : vec4(0.0).z, _4739.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _6034; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4749) << 8u)) != 0u)) uint param = _4749; vec3 _2287 = getCascadeLightSpacePosition(param); vec2 _4782 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _4817 = vec2(1.0) / _4782; vec2 _4827 = (clamp(_2287.xy, vec2(-1.0), vec2(2.0)).xy * _4782) + vec2(0.5); vec2 _4833 = (floor(_4827) - vec2(0.5)) * _4817; vec2 _4835 = fract(_4827); float _4837 = _4835.x; float _4838 = 2.0 * _4837; float _4839 = 3.0 - _4838; float _4843 = 1.0 + _4838; float _4846 = _4835.y; float _4847 = 2.0 * _4846; float _4848 = 3.0 - _4847; float _4852 = 1.0 + _4847; vec2 _4885 = vec2(((2.0 - _4837) / _4839) - 1.0, (_4837 / _4843) + 1.0) * _4817.x; vec2 _4889 = vec2(((2.0 - _4846) / _4848) - 1.0, (_4846 / _4852) + 1.0) * _4817.y; float _4903 = _4885.x; float _4905 = _4889.x; float _4980 = float(_4749); float _4982 = clamp(_2287.z, 0.0, 1.0); float _4920 = _4885.y; float _4939 = _4889.y; _6034 = (((((_4839 * _4848) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4903, _4905), _4980, _4982).xyz, _4982))) + ((_4843 * _4848) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4920, _4905), _4980, _4982).xyz, _4982)))) + ((_4839 * _4852) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4903, _4939), _4980, _4982).xyz, _4982)))) + ((_4843 * _4852) * texture(light_shadowMap, vec4(vec4(_4833 + vec2(_4920, _4939), _4980, _4982).xyz, _4982)))) * 0.0625; _6034 = 1.0; float _6042; if (((frameUniforms.fz & 2u) != 0u) && (_6034 > 0.0)) float _6044; uint _5053 = (frameUniforms.fz >> 8u) & 255u; vec4 _5163 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _5170 = frameUniforms.e * vec4(shading_position + (_4715 * frameUniforms.hz), 1.0); vec4 _5176 = _5163 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _5182 = _5163.xyz * (1.0 / _5163.w); vec3 _5207 = (_5182 * 0.5) + vec3(0.5); vec3 _5212 = (((_5170.xyz * (1.0 / _5170.w)) * 0.5) + vec3(0.5)) - _5207; float _5063 = 1.0 / float(_5053); float _5072 = (abs((_5176.xyz * (1.0 / _5176.w)).z - _5182.z) * _5063) * 0.5; float _5084 = (_5063 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _5063; vec3 _6038; _6038 = _6033; vec3 _5097; vec3 _6037; float _6040; uint _6035 = 0u; float _6036 = _5084; if (_6035 < _5053) _5097 = _5207 + (_5212 * _6036); if (abs(_5072 - (_5097.z - (1.0 - textureLod(light_structure, _5097.xy, 0.0).x))) < _5072) _6040 = 1.0; _6037 = _5097; _6036 += _5063; _6035++; _6038 = _5097; _6040 = 0.0; _6037 = _6038; vec2 _5133 = max((abs(_6037.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _6044 = _6040 * clamp(1.0 - dot(_5133, _5133), 0.0, 1.0); _6044 = 0.0; _6042 = _6044; _6042 = 0.0; _2315 = _6034 * (1.0 - _6042); vec3 _5245 = normalize(shading_view + _4715); float _5248 = clamp(_4722, 0.0, 1.0); float _5252 = clamp(dot(shading_normal, _5245), 0.0, 1.0); float _5340 = _5252 * pixel.roughness; float _5347 = pixel.roughness / ((1.0 - (_5252 * _5252)) + (_5340 * _5340)); float _5370 = pixel.roughness * pixel.roughness; float _5417 = 1.0 - clamp(dot(_4715, _5245), 0.0, 1.0); float _5426 = _5417 * _5417; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_5426 * _5426) * _5417))) * (((_5347 * _5347) * 0.3183098733425140380859375) * (0.5 / ((_5248 * sqrt(((shading_NoV - (_5370 * shading_NoV)) * shading_NoV) + _5370)) + (shading_NoV * sqrt(((_5248 - (_5370 * _5248)) * _5248) + _5370)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _5248) * _2315)); vec3 _5894; vec3 _5893; _5893 = vertex_worldNormal; _5893 = -vertex_worldNormal; _5894 = _5893; _5894 = vertex_worldNormal; shading_normal = normalize(_5894); vec3 _3016 = variable_colorFromSh.xyz * 1.0; vec4 _3087 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _3072 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _3087.y) - 1.0)); float _3123 = min(1.0, evaluateSSAO()); float _3216 = clamp((pow(shading_NoV + _3123, 7.62939453125e-06) - 1.0) + _3123, 0.0, 1.0); vec3 _3224 = mix(_3087.xxx, _3087.yyy, vec3(0.039999999105930328369140625)); vec3 _2932 = (((((_3016 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3224)) * 1.0) * max(vec3(_3123), ((((((_3016 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _3123) + ((_3016 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _3123) + ((_3016 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _3123)) + (((_3224 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_3072 * 1.0)) * max(vec3(_3216), ((((vec3(-0.250783979892730712890625) * _3216) + vec3(0.449896037578582763671875)) * _3216) + vec3(0.800507962703704833984375)) * _3216))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5896, _5899, _5899, _5899, _5899, _5896), PixelParams(_3016, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _3087.xyz, _3072), _2932); float _3425 = 1.0 - gl_FragCoord.z; uvec2 _3464 = uvec2((vec3(shading_normalizedViewportCoord, _3425).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _3449 = ((_3464.x * frameUniforms.q) + (_3464.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3425) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _3496 = texelFetch(light_froxels, ivec2(int(_3449 & 63u), int(_3449 >> 6u)), 0); uint _3499 = _3496.x; uint _3364 = _3499 + (_3496.y & 255u); vec3 _5927; vec3 _5963; _5963 = _5896; _5927 = _2932; uint _5937; uint _5942; bool _5946; bool _5951; vec3 _5988; vec3 _6026; uint _5938; uint _5943; bool _5947; bool _5952; for (uint _5926 = _3499; _5926 < _3364; _5963 = _6026, _5952 = _5951, _5947 = _5946, _5943 = _5942, _5938 = _5937, _5927 = _5988, _5926++) uvec4 _3534 = texelFetch(light_records, ivec2(int(_5926 & 31u), int(_5926 >> 5u)), 0); uint _3535 = _3534.x; vec3 _3552 = lightsUniforms.a[_3535][0].xyz - vertex_worldPosition; float _3632 = lightsUniforms.a[_3535][1].w * frameUniforms.y; vec4 _5760 = vec4(lightsUniforms.a[_3535][1].x, lightsUniforms.a[_3535][1].y, lightsUniforms.a[_3535][1].z, _6078.w); _5760.w = _3632; vec3 _3565 = normalize(_3552); float _3639 = dot(_3552, _3552); float _3654 = _3639 * lightsUniforms.a[_3535][0].w; float _3659 = clamp(1.0 - (_3654 * _3654), 0.0, 1.0); float _3647 = (_3659 * _3659) / max(_3639, 9.9999997473787516355514526367188e-05); float _3576 = clamp(dot(shading_normal, _3565), 0.0, 1.0); float _5955; if (floatBitsToUint(lightsUniforms.a[_3535][3].w) == 1u) float _3673 = clamp((dot(-lightsUniforms.a[_3535][2].xyz, _3565) * lightsUniforms.a[_3535][3].x) + lightsUniforms.a[_3535][3].y, 0.0, 1.0); uint _3601 = floatBitsToUint(lightsUniforms.a[_3535][3].z); _5955 = _3647 * (_3673 * _3673); _5951 = (_3601 & 1u) != 0u; _5946 = ((_3601 >> 1u) & 1u) != 0u; _5942 = (_3601 >> 2u) & 15u; _5937 = (_3601 >> 6u) & 15u; _5955 = _3647; _5951 = _5952; _5946 = _5947; _5942 = _5943; _5937 = _5938; float _5970; if (_3576 > 0.0) float _5956; if (_5951) vec3 _3688 = vertex_spotLightSpacePosition[_5942].xyz * (1.0 / vertex_spotLightSpacePosition[_5942].w); vec2 _3699 = vec2(vec3(textureSize(light_shadowMap, 0)).xy); vec2 _3734 = vec2(1.0) / _3699; vec2 _3744 = (clamp(_3688.xy, vec2(-1.0), vec2(2.0)).xy * _3699) + vec2(0.5); vec2 _3750 = (floor(_3744) - vec2(0.5)) * _3734; vec2 _3752 = fract(_3744); float _3754 = _3752.x; float _3755 = 2.0 * _3754; float _3756 = 3.0 - _3755; float _3760 = 1.0 + _3755; float _3763 = _3752.y; float _3764 = 2.0 * _3763; float _3765 = 3.0 - _3764; float _3769 = 1.0 + _3764; vec2 _3802 = vec2(((2.0 - _3754) / _3756) - 1.0, (_3754 / _3760) + 1.0) * _3734.x; vec2 _3806 = vec2(((2.0 - _3763) / _3765) - 1.0, (_3763 / _3769) + 1.0) * _3734.y; float _3820 = _3802.x; float _3822 = _3806.x; float _3897 = float(_5937); float _3899 = clamp(_3688.z, 0.0, 1.0); float _3837 = _3802.y; float _3856 = _3806.y; _5956 = (((((_3756 * _3765) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3820, _3822), _3897, _3899).xyz, _3899))) + ((_3760 * _3765) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3837, _3822), _3897, _3899).xyz, _3899)))) + ((_3756 * _3769) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3820, _3856), _3897, _3899).xyz, _3899)))) + ((_3760 * _3769) * texture(light_shadowMap, vec4(vec4(_3750 + vec2(_3837, _3856), _3897, _3899).xyz, _3899)))) * 0.0625; _5956 = 1.0; float _5971; vec3 _6027; if (_5946 && (_5956 > 0.0)) float _5972; vec3 _6028; uint _3970 = (frameUniforms.fz >> 8u) & 255u; vec4 _4080 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _4087 = frameUniforms.e * vec4(shading_position + (_3565 * frameUniforms.hz), 1.0); vec4 _4093 = _4080 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _4099 = _4080.xyz * (1.0 / _4080.w); vec3 _4124 = (_4099 * 0.5) + vec3(0.5); vec3 _4129 = (((_4087.xyz * (1.0 / _4087.w)) * 0.5) + vec3(0.5)) - _4124; float _3980 = 1.0 / float(_3970); float _3989 = (abs((_4093.xyz * (1.0 / _4093.w)).z - _4099.z) * _3980) * 0.5; float _4001 = (_3980 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3980; vec3 _5960; _5960 = _5963; vec3 _4014; vec3 _5959; float _5966; uint _5957 = 0u; float _5958 = _4001; if (_5957 < _3970) _4014 = _4124 + (_4129 * _5958); if (abs(_3989 - (_4014.z - (1.0 - textureLod(light_structure, _4014.xy, 0.0).x))) < _3989) _5966 = 1.0; _5959 = _4014; _5958 += _3980; _5957++; _5960 = _4014; _5966 = 0.0; _5959 = _5960; vec2 _4050 = max((abs(_5959.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _6028 = _5959; _5972 = _5956 * (1.0 - (_5966 * clamp(1.0 - dot(_4050, _4050), 0.0, 1.0))); _6028 = _5963; _5972 = _5956; _6027 = _6028; _5971 = _5972; _6027 = _5963; _5971 = _5956; _6026 = _6027; _5970 = _5971; _6026 = _5963; _5970 = 1.0; if (_3576 <= 0.0) _5988 = _5927; vec3 _4162 = normalize(shading_view + _3565); float _4165 = clamp(_3576, 0.0, 1.0); float _4169 = clamp(dot(shading_normal, _4162), 0.0, 1.0); float _4314 = (_4165 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_4165 - _4165) * _4165) + 1.0)); float _4334 = 1.0 - clamp(dot(_3565, _4162), 0.0, 1.0); float _4343 = _4334 * _4334; _5988 = _5927 + ((((_3016 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_4343 * _4343) * _4334))) * (0.15915493667125701904296875 / _4314)) * _3072)) * _5760.xyz) * (((_3632 * _5955) * _4165) * _5970)); fragColor = vec4(_5927, 1.0); bvec4 _4384 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_4384.x ? vec4(1.0).x : vec4(0.0).x, _4384.y ? vec4(1.0).y : vec4(0.0).y, _4384.z ? vec4(1.0).z : vec4(0.0).z, _4384.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2816 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2816.x, _2816.y, _2816.z, fragColor.w); vec3 _2822 = shading_position - frameUniforms.j; vec4 _5932; float _4449 = length(_2822); float _4452 = max(0.001000000047497451305389404296875, _2822.y); float _4462 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _4452)) / _4452); float _4478 = min(max(1.0 - exp2(-(_4462 * max(_4449 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _5928; _5928 = frameUniforms.mz * (textureLod(light_iblSpecular, _2822, frameUniforms.cz).xyz * frameUniforms.x); _5928 = frameUniforms.mz; vec3 _4500 = _5928 * _4478; vec3 _5931; _5931 = _4500 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2822, frameUniforms.p) / _4449, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_4462 * max(_4449 - frameUniforms.oz, 0.0))), 0.0))); _5931 = _4500; vec3 _4548 = (fragColor.xyz * (1.0 - _4478)) + _5931; _5932 = vec4(_4548.x, _4548.y, _4548.z, fragColor.w); _5932 = fragColor; fragColor = _5932; uniform sampler2DArray light_shadowMap; vec3 _3656; float _3659; vec4 _3683; vec3 _3687; float _3732; vec3 _510; vec2 _1253 = vec3(shading_normalizedViewportCoord, _3732).xy; vec4 _1275 = textureGather(light_ssao, _1253, 1); vec4 _1279 = textureGather(light_ssao, _1253, 2); vec2 _1286 = fract((_1253 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1289 = _1286.x; float _1290 = 1.0 - _1289; float _1292 = _1286.y; vec4 _3599 = _3683; _3599.x = _1290 * _1292; vec4 _3603 = _3599; _3603.y = _1289 * _1292; float _1305 = 1.0 - _1292; vec4 _3607 = _3603; _3607.z = _1289 * _1305; vec4 _3611 = _3607; _3611.w = _1290 * _1305; vec4 _3617 = _3683; _3617.x = (_1275.x * 0.996108949184417724609375) + (_1279.x * 0.00389105058275163173675537109375); vec4 _3623 = _3617; _3623.y = (_1275.y * 0.996108949184417724609375) + (_1279.y * 0.00389105058275163173675537109375); vec4 _3629 = _3623; _3629.z = (_1275.z * 0.996108949184417724609375) + (_1279.z * 0.00389105058275163173675537109375); vec4 _3635 = _3629; _3635.w = (_1275.w * 0.996108949184417724609375) + (_1279.w * 0.00389105058275163173675537109375); vec4 _1377 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3635 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1387 = max(vec4(6.103515625e-05), vec4(1.0) - (_1377 * _1377)) * _3611; return dot(textureGather(light_ssao, _1253), _1387) * (1.0 / (((_1387.x + _1387.y) + _1387.z) + _1387.w)); return textureLod(light_ssao, _1253, 0.0).x; ivec2 _1591 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1605 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1612 = _1605 * (1.0 / float(_1591.x)); vec3 _1616 = cross(_1605, n) * (1.0 / float(_1591.y)); vec3 _1619 = n - _1612; vec3 _1624 = n + _1612; return (((textureLod(light_iblSpecular, _1619 - _1616, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1624 - _1616, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1624 + _1616, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1619 + _1616, frameUniforms.cz).xyz) * 0.25; float _1814 = dot(lightDirection, shading_reflected); vec3 _3684; if (_1814 < frameUniforms.m.x) _3684 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1814)) * frameUniforms.m.y)); _3684 = shading_reflected; return _3684; return vec3(vertex_lightSpacePosition.xy * (1.0 / vertex_lightSpacePosition.w), vertex_lightSpacePosition.z); float _3374 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _3389 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_3374 * _3374)) * frameUniforms.r.y)), 1.0); return vec3(_3389.xy * (1.0 / _3389.w), _3389.z); float _1927; vec3 _2817 = sampleSunAreaLight(frameUniforms.p); float _2824 = clamp(dot(shading_normal, _2817), 0.0, 1.0); if (_2824 > 0.0) bvec4 _2841 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _2851 = clamp(uint(dot(vec4(_2841.x ? vec4(1.0).x : vec4(0.0).x, _2841.y ? vec4(1.0).y : vec4(0.0).y, _2841.z ? vec4(1.0).z : vec4(0.0).z, _2841.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _3688; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _2851) << 8u)) != 0u)) uint param = _2851; vec3 _1900 = getCascadeLightSpacePosition(param); vec4 _2884 = texture(light_shadowMap, vec3(_1900.xy, float(_2851))); float _2888 = min(_1900.z, 1.0); float _2898 = _2884.x; float _2903 = max(_2884.y - (_2898 * _2898), 9.9999997473787516355514526367188e-06); float _2905 = _2888 - _2898; _3688 = (_2888 <= _2898) ? 1.0 : clamp(((_2903 / (_2903 + (_2905 * _2905))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _3688 = 1.0; float _3696; if (((frameUniforms.fz & 2u) != 0u) && (_3688 > 0.0)) float _3698; uint _2951 = (frameUniforms.fz >> 8u) & 255u; vec4 _3061 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3068 = frameUniforms.e * vec4(shading_position + (_2817 * frameUniforms.hz), 1.0); vec4 _3074 = _3061 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3080 = _3061.xyz * (1.0 / _3061.w); vec3 _3105 = (_3080 * 0.5) + vec3(0.5); vec3 _3110 = (((_3068.xyz * (1.0 / _3068.w)) * 0.5) + vec3(0.5)) - _3105; float _2961 = 1.0 / float(_2951); float _2970 = (abs((_3074.xyz * (1.0 / _3074.w)).z - _3080.z) * _2961) * 0.5; float _2982 = (_2961 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _2961; vec3 _3692; _3692 = _3687; vec3 _2995; vec3 _3691; float _3694; uint _3689 = 0u; float _3690 = _2982; if (_3689 < _2951) _2995 = _3105 + (_3110 * _3690); if (abs(_2970 - (_2995.z - (1.0 - textureLod(light_structure, _2995.xy, 0.0).x))) < _2970) _3694 = 1.0; _3691 = _2995; _3690 += _2961; _3689++; _3692 = _2995; _3694 = 0.0; _3691 = _3692; vec2 _3031 = max((abs(_3691.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _3698 = _3694 * clamp(1.0 - dot(_3031, _3031), 0.0, 1.0); _3698 = 0.0; _3696 = _3698; _3696 = 0.0; _1927 = _3688 * (1.0 - _3696); vec3 _3143 = normalize(shading_view + _2817); float _3146 = clamp(_2824, 0.0, 1.0); float _3150 = clamp(dot(shading_normal, _3143), 0.0, 1.0); float _3238 = _3150 * pixel.roughness; float _3245 = pixel.roughness / ((1.0 - (_3150 * _3150)) + (_3238 * _3238)); float _3268 = pixel.roughness * pixel.roughness; float _3315 = 1.0 - clamp(dot(_2817, _3143), 0.0, 1.0); float _3324 = _3315 * _3315; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3324 * _3324) * _3315))) * (((_3245 * _3245) * 0.3183098733425140380859375) * (0.5 / ((_3146 * sqrt(((shading_NoV - (_3268 * shading_NoV)) * shading_NoV) + _3268)) + (shading_NoV * sqrt(((_3146 - (_3268 * _3146)) * _3146) + _3268)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3146) * _1927)); vec3 _3654; vec3 _3653; _3653 = vertex_worldNormal; _3653 = -vertex_worldNormal; _3654 = _3653; _3654 = vertex_worldNormal; shading_normal = normalize(_3654); vec3 _2276 = variable_colorFromSh.xyz * 1.0; vec4 _2347 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2332 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2347.y) - 1.0)); float _2383 = min(1.0, evaluateSSAO()); float _2476 = clamp((pow(shading_NoV + _2383, 7.62939453125e-06) - 1.0) + _2383, 0.0, 1.0); vec3 _2484 = mix(_2347.xxx, _2347.yyy, vec3(0.039999999105930328369140625)); vec3 _2197 = (((((_2276 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2484)) * 1.0) * max(vec3(_2383), ((((((_2276 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2383) + ((_2276 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2383) + ((_2276 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2383)) + (((_2484 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2332 * 1.0)) * max(vec3(_2476), ((((vec3(-0.250783979892730712890625) * _2476) + vec3(0.449896037578582763671875)) * _2476) + vec3(0.800507962703704833984375)) * _2476))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3656, _3659, _3659, _3659, _3659, _3656), PixelParams(_2276, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2347.xyz, _2332), _2197); fragColor = vec4(_2197, 1.0); bvec4 _2622 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_2622.x ? vec4(1.0).x : vec4(0.0).x, _2622.y ? vec4(1.0).y : vec4(0.0).y, _2622.z ? vec4(1.0).z : vec4(0.0).z, _2622.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2080 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2080.x, _2080.y, _2080.z, fragColor.w); vec3 _3922; uint _3961; bool _3970; vec4 _4050; vec4 _4081; float _4082; vec2 _1125 = vec3(shading_normalizedViewportCoord, _4082).xy; vec4 _1146 = textureGather(light_ssao, _1125, 1); vec4 _1150 = textureGather(light_ssao, _1125, 2); vec2 _1157 = fract((_1125 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1160 = _1157.x; float _1161 = 1.0 - _1160; float _1163 = _1157.y; vec4 _3872 = _4050; _3872.x = _1161 * _1163; vec4 _3876 = _3872; _3876.y = _1160 * _1163; float _1176 = 1.0 - _1163; vec4 _3880 = _3876; _3880.z = _1160 * _1176; vec4 _3884 = _3880; _3884.w = _1161 * _1176; vec4 _3890 = _4050; _3890.x = (_1146.x * 0.996108949184417724609375) + (_1150.x * 0.00389105058275163173675537109375); vec4 _3896 = _3890; _3896.y = (_1146.y * 0.996108949184417724609375) + (_1150.y * 0.00389105058275163173675537109375); vec4 _3902 = _3896; _3902.z = (_1146.z * 0.996108949184417724609375) + (_1150.z * 0.00389105058275163173675537109375); vec4 _3908 = _3902; _3908.w = (_1146.w * 0.996108949184417724609375) + (_1150.w * 0.00389105058275163173675537109375); vec4 _1248 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3908 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1258 = max(vec4(6.103515625e-05), vec4(1.0) - (_1248 * _1248)) * _3884; return dot(textureGather(light_ssao, _1125), _1258) * (1.0 / (((_1258.x + _1258.y) + _1258.z) + _1258.w)); return textureLod(light_ssao, _1125, 0.0).x; ivec2 _1463 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1478 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1485 = _1478 * (1.0 / float(_1463.x)); vec3 _1489 = cross(_1478, n) * (1.0 / float(_1463.y)); vec3 _1492 = n - _1485; vec3 _1497 = n + _1485; return (((textureLod(light_iblSpecular, _1492 - _1489, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1497 - _1489, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1497 + _1489, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1492 + _1489, frameUniforms.cz).xyz) * 0.25; vec3 _3920; vec3 _3919; _3919 = vertex_worldNormal; _3919 = -vertex_worldNormal; _3920 = _3919; _3920 = vertex_worldNormal; vec3 _2189 = normalize(_3920); vec3 _2195 = normalize(frameUniforms.j - shading_position); float _2251 = max(dot(_2189, _2195), 9.9999997473787516355514526367188e-05); vec3 _2344 = variable_colorFromSh.xyz * 1.0; vec4 _2415 = textureLod(light_iblDFG, vec2(_2251, 1.0), 0.0); vec3 _2400 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2415.y) - 1.0)); float _2451 = min(1.0, evaluateSSAO()); float _2544 = clamp((pow(_2251 + _2451, 7.62939453125e-06) - 1.0) + _2451, 0.0, 1.0); vec3 _2552 = mix(_2415.xxx, _2415.yyy, vec3(0.039999999105930328369140625)); float _2752 = 1.0 - gl_FragCoord.z; uvec2 _2791 = uvec2((vec3(shading_normalizedViewportCoord, _2752).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _2776 = ((_2791.x * frameUniforms.q) + (_2791.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2752) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _2823 = texelFetch(light_froxels, ivec2(int(_2776 & 63u), int(_2776 >> 6u)), 0); uint _2826 = _2823.x; uint _2691 = _2826 + (_2823.y & 255u); vec3 _3953; vec3 _3984; _3984 = _3922; _3953 = (((((_2344 * diffuseIrradiance(_2189)) * (vec3(1.0) - _2552)) * 1.0) * max(vec3(_2451), ((((((_2344 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2451) + ((_2344 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2451) + ((_2344 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2451)) + (((_2552 * textureLod(light_iblSpecular, _2189, frameUniforms.cz).xyz) * (_2400 * 1.0)) * max(vec3(_2544), ((((vec3(-0.250783979892730712890625) * _2544) + vec3(0.449896037578582763671875)) * _2544) + vec3(0.800507962703704833984375)) * _2544))) * frameUniforms.x; uint _3958; uint _3963; bool _3967; bool _3972; vec3 _4009; vec3 _4047; uint _3959; uint _3964; bool _3968; bool _3973; for (uint _3952 = _2826; _3952 < _2691; _3984 = _4047, _3973 = _3972, _3968 = _3967, _3964 = _3963, _3959 = _3958, _3953 = _4009, _3952++) uvec4 _2861 = texelFetch(light_records, ivec2(int(_3952 & 31u), int(_3952 >> 5u)), 0); uint _2862 = _2861.x; vec3 _2879 = lightsUniforms.a[_2862][0].xyz - vertex_worldPosition; float _2959 = lightsUniforms.a[_2862][1].w * frameUniforms.y; vec4 _3857 = vec4(lightsUniforms.a[_2862][1].x, lightsUniforms.a[_2862][1].y, lightsUniforms.a[_2862][1].z, _4081.w); _3857.w = _2959; vec3 _2892 = normalize(_2879); float _2966 = dot(_2879, _2879); float _2981 = _2966 * lightsUniforms.a[_2862][0].w; float _2986 = clamp(1.0 - (_2981 * _2981), 0.0, 1.0); float _2974 = (_2986 * _2986) / max(_2966, 9.9999997473787516355514526367188e-05); float _2903 = clamp(dot(_2189, _2892), 0.0, 1.0); float _3976; if (floatBitsToUint(lightsUniforms.a[_2862][3].w) == 1u) float _3000 = clamp((dot(-lightsUniforms.a[_2862][2].xyz, _2892) * lightsUniforms.a[_2862][3].x) + lightsUniforms.a[_2862][3].y, 0.0, 1.0); uint _2928 = floatBitsToUint(lightsUniforms.a[_2862][3].z); _3976 = _2974 * (_3000 * _3000); _3972 = (_2928 & 1u) != 0u; _3967 = ((_2928 >> 1u) & 1u) != 0u; _3963 = (_2928 >> 2u) & 15u; _3958 = (_2928 >> 6u) & 15u; _3976 = _2974; _3972 = _3973; _3967 = _3968; _3963 = _3964; _3958 = _3959; float _3991; if (_2903 > 0.0) float _3977; if (_3972) vec4 _3031 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_3963].xy * (1.0 / vertex_spotLightSpacePosition[_3963].w), float(_3958))); float _3035 = min(vertex_spotLightSpacePosition[_3963].z, 1.0); float _3045 = _3031.x; float _3050 = max(_3031.y - (_3045 * _3045), 9.9999997473787516355514526367188e-06); float _3052 = _3035 - _3045; _3977 = (_3035 <= _3045) ? 1.0 : clamp(((_3050 / (_3050 + (_3052 * _3052))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _3977 = 1.0; float _3992; vec3 _4048; if (_3967 && (_3977 > 0.0)) float _3993; uint _3098 = (frameUniforms.fz >> 8u) & 255u; vec4 _3208 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3215 = frameUniforms.e * vec4(shading_position + (_2892 * frameUniforms.hz), 1.0); vec4 _3221 = _3208 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3227 = _3208.xyz * (1.0 / _3208.w); vec3 _3252 = (_3227 * 0.5) + vec3(0.5); vec3 _3257 = (((_3215.xyz * (1.0 / _3215.w)) * 0.5) + vec3(0.5)) - _3252; float _3108 = 1.0 / float(_3098); float _3117 = (abs((_3221.xyz * (1.0 / _3221.w)).z - _3227.z) * _3108) * 0.5; float _3129 = (_3108 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3108; vec3 _3981; _3981 = _3984; vec3 _3142; vec3 _3980; float _3987; uint _3978 = 0u; float _3979 = _3129; if (_3978 < _3098) _3142 = _3252 + (_3257 * _3979); if (abs(_3117 - (_3142.z - (1.0 - textureLod(light_structure, _3142.xy, 0.0).x))) < _3117) _3987 = 1.0; _3980 = _3142; _3979 += _3108; _3978++; _3981 = _3142; _3987 = 0.0; _3980 = _3981; vec2 _3178 = max((abs(_3980.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _4049 = _3980; _3993 = _3977 * (1.0 - (_3987 * clamp(1.0 - dot(_3178, _3178), 0.0, 1.0))); _4049 = _3984; _3993 = _3977; _4048 = _4049; _3992 = _3993; _4048 = _3984; _3992 = _3977; _4047 = _4048; _3991 = _3992; _4047 = _3984; _3991 = 1.0; if (_2903 <= 0.0) _4009 = _3953; vec3 _3290 = normalize(_2195 + _2892); float _3293 = clamp(_2903, 0.0, 1.0); float _3297 = clamp(dot(_2189, _3290), 0.0, 1.0); float _3442 = (_3293 * sqrt(((_2251 - _2251) * _2251) + 1.0)) + (_2251 * sqrt(((_3293 - _3293) * _3293) + 1.0)); float _3462 = 1.0 - clamp(dot(_2892, _3290), 0.0, 1.0); float _3471 = _3462 * _3462; _4009 = _3953 + ((((_2344 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3471 * _3471) * _3462))) * (0.15915493667125701904296875 / _3442)) * _2400)) * _3857.xyz) * (((_2959 * _3976) * _3293) * _3991)); fragColor = vec4(_3953, 1.0); vec3 _4978; float _4981; uint _5017; bool _5026; vec4 _5106; vec3 _5110; vec4 _5158; float _5159; vec3 _567; vec2 _1330 = vec3(shading_normalizedViewportCoord, _5159).xy; vec4 _1351 = textureGather(light_ssao, _1330, 1); vec4 _1355 = textureGather(light_ssao, _1330, 2); vec2 _1362 = fract((_1330 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1365 = _1362.x; float _1366 = 1.0 - _1365; float _1368 = _1362.y; vec4 _4921 = _5106; _4921.x = _1366 * _1368; vec4 _4925 = _4921; _4925.y = _1365 * _1368; float _1381 = 1.0 - _1368; vec4 _4929 = _4925; _4929.z = _1365 * _1381; vec4 _4933 = _4929; _4933.w = _1366 * _1381; vec4 _4939 = _5106; _4939.x = (_1351.x * 0.996108949184417724609375) + (_1355.x * 0.00389105058275163173675537109375); vec4 _4945 = _4939; _4945.y = (_1351.y * 0.996108949184417724609375) + (_1355.y * 0.00389105058275163173675537109375); vec4 _4951 = _4945; _4951.z = (_1351.z * 0.996108949184417724609375) + (_1355.z * 0.00389105058275163173675537109375); vec4 _4957 = _4951; _4957.w = (_1351.w * 0.996108949184417724609375) + (_1355.w * 0.00389105058275163173675537109375); vec4 _1453 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4957 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1463 = max(vec4(6.103515625e-05), vec4(1.0) - (_1453 * _1453)) * _4933; return dot(textureGather(light_ssao, _1330), _1463) * (1.0 / (((_1463.x + _1463.y) + _1463.z) + _1463.w)); return textureLod(light_ssao, _1330, 0.0).x; ivec2 _1667 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1681 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1688 = _1681 * (1.0 / float(_1667.x)); vec3 _1692 = cross(_1681, n) * (1.0 / float(_1667.y)); vec3 _1695 = n - _1688; vec3 _1700 = n + _1688; return (((textureLod(light_iblSpecular, _1695 - _1692, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1700 - _1692, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1700 + _1692, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1695 + _1692, frameUniforms.cz).xyz) * 0.25; float _1890 = dot(lightDirection, shading_reflected); vec3 _5107; if (_1890 < frameUniforms.m.x) _5107 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1890)) * frameUniforms.m.y)); _5107 = shading_reflected; return _5107; float _4614 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _4629 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_4614 * _4614)) * frameUniforms.r.y)), 1.0); return vec3(_4629.xy * (1.0 / _4629.w), _4629.z); float _2003; vec3 _4057 = sampleSunAreaLight(frameUniforms.p); float _4064 = clamp(dot(shading_normal, _4057), 0.0, 1.0); if (_4064 > 0.0) bvec4 _4081 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _4091 = clamp(uint(dot(vec4(_4081.x ? vec4(1.0).x : vec4(0.0).x, _4081.y ? vec4(1.0).y : vec4(0.0).y, _4081.z ? vec4(1.0).z : vec4(0.0).z, _4081.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _5111; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4091) << 8u)) != 0u)) uint param = _4091; vec3 _1976 = getCascadeLightSpacePosition(param); vec4 _4124 = texture(light_shadowMap, vec3(_1976.xy, float(_4091))); float _4128 = min(_1976.z, 1.0); float _4138 = _4124.x; float _4143 = max(_4124.y - (_4138 * _4138), 9.9999997473787516355514526367188e-06); float _4145 = _4128 - _4138; _5111 = (_4128 <= _4138) ? 1.0 : clamp(((_4143 / (_4143 + (_4145 * _4145))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _5111 = 1.0; float _5119; if (((frameUniforms.fz & 2u) != 0u) && (_5111 > 0.0)) float _5121; uint _4191 = (frameUniforms.fz >> 8u) & 255u; vec4 _4301 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _4308 = frameUniforms.e * vec4(shading_position + (_4057 * frameUniforms.hz), 1.0); vec4 _4314 = _4301 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _4320 = _4301.xyz * (1.0 / _4301.w); vec3 _4345 = (_4320 * 0.5) + vec3(0.5); vec3 _4350 = (((_4308.xyz * (1.0 / _4308.w)) * 0.5) + vec3(0.5)) - _4345; float _4201 = 1.0 / float(_4191); float _4210 = (abs((_4314.xyz * (1.0 / _4314.w)).z - _4320.z) * _4201) * 0.5; float _4222 = (_4201 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4201; vec3 _5115; _5115 = _5110; vec3 _4235; vec3 _5114; float _5117; uint _5112 = 0u; float _5113 = _4222; if (_5112 < _4191) _4235 = _4345 + (_4350 * _5113); if (abs(_4210 - (_4235.z - (1.0 - textureLod(light_structure, _4235.xy, 0.0).x))) < _4210) _5117 = 1.0; _5114 = _4235; _5113 += _4201; _5112++; _5115 = _4235; _5117 = 0.0; _5114 = _5115; vec2 _4271 = max((abs(_5114.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _5121 = _5117 * clamp(1.0 - dot(_4271, _4271), 0.0, 1.0); _5121 = 0.0; _5119 = _5121; _5119 = 0.0; _2003 = _5111 * (1.0 - _5119); vec3 _4383 = normalize(shading_view + _4057); float _4386 = clamp(_4064, 0.0, 1.0); float _4390 = clamp(dot(shading_normal, _4383), 0.0, 1.0); float _4478 = _4390 * pixel.roughness; float _4485 = pixel.roughness / ((1.0 - (_4390 * _4390)) + (_4478 * _4478)); float _4508 = pixel.roughness * pixel.roughness; float _4555 = 1.0 - clamp(dot(_4057, _4383), 0.0, 1.0); float _4564 = _4555 * _4555; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4564 * _4564) * _4555))) * (((_4485 * _4485) * 0.3183098733425140380859375) * (0.5 / ((_4386 * sqrt(((shading_NoV - (_4508 * shading_NoV)) * shading_NoV) + _4508)) + (shading_NoV * sqrt(((_4386 - (_4508 * _4386)) * _4386) + _4508)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4386) * _2003)); vec3 _4976; vec3 _4975; _4975 = vertex_worldNormal; _4975 = -vertex_worldNormal; _4976 = _4975; _4976 = vertex_worldNormal; shading_normal = normalize(_4976); vec3 _2694 = variable_colorFromSh.xyz * 1.0; vec4 _2765 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2750 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2765.y) - 1.0)); float _2801 = min(1.0, evaluateSSAO()); float _2894 = clamp((pow(shading_NoV + _2801, 7.62939453125e-06) - 1.0) + _2801, 0.0, 1.0); vec3 _2902 = mix(_2765.xxx, _2765.yyy, vec3(0.039999999105930328369140625)); vec3 _2610 = (((((_2694 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2902)) * 1.0) * max(vec3(_2801), ((((((_2694 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2801) + ((_2694 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2801) + ((_2694 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2801)) + (((_2902 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2750 * 1.0)) * max(vec3(_2894), ((((vec3(-0.250783979892730712890625) * _2894) + vec3(0.449896037578582763671875)) * _2894) + vec3(0.800507962703704833984375)) * _2894))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _4978, _4981, _4981, _4981, _4981, _4978), PixelParams(_2694, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2765.xyz, _2750), _2610); float _3102 = 1.0 - gl_FragCoord.z; uvec2 _3141 = uvec2((vec3(shading_normalizedViewportCoord, _3102).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _3126 = ((_3141.x * frameUniforms.q) + (_3141.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3102) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _3173 = texelFetch(light_froxels, ivec2(int(_3126 & 63u), int(_3126 >> 6u)), 0); uint _3176 = _3173.x; uint _3041 = _3176 + (_3173.y & 255u); vec3 _5009; vec3 _5040; _5040 = _4978; _5009 = _2610; uint _5014; uint _5019; bool _5023; bool _5028; vec3 _5065; vec3 _5103; uint _5015; uint _5020; bool _5024; bool _5029; for (uint _5008 = _3176; _5008 < _3041; _5040 = _5103, _5029 = _5028, _5024 = _5023, _5020 = _5019, _5015 = _5014, _5009 = _5065, _5008++) uvec4 _3211 = texelFetch(light_records, ivec2(int(_5008 & 31u), int(_5008 >> 5u)), 0); uint _3212 = _3211.x; vec3 _3229 = lightsUniforms.a[_3212][0].xyz - vertex_worldPosition; float _3309 = lightsUniforms.a[_3212][1].w * frameUniforms.y; vec4 _4903 = vec4(lightsUniforms.a[_3212][1].x, lightsUniforms.a[_3212][1].y, lightsUniforms.a[_3212][1].z, _5158.w); _4903.w = _3309; vec3 _3242 = normalize(_3229); float _3316 = dot(_3229, _3229); float _3331 = _3316 * lightsUniforms.a[_3212][0].w; float _3336 = clamp(1.0 - (_3331 * _3331), 0.0, 1.0); float _3324 = (_3336 * _3336) / max(_3316, 9.9999997473787516355514526367188e-05); float _3253 = clamp(dot(shading_normal, _3242), 0.0, 1.0); float _5032; if (floatBitsToUint(lightsUniforms.a[_3212][3].w) == 1u) float _3350 = clamp((dot(-lightsUniforms.a[_3212][2].xyz, _3242) * lightsUniforms.a[_3212][3].x) + lightsUniforms.a[_3212][3].y, 0.0, 1.0); uint _3278 = floatBitsToUint(lightsUniforms.a[_3212][3].z); _5032 = _3324 * (_3350 * _3350); _5028 = (_3278 & 1u) != 0u; _5023 = ((_3278 >> 1u) & 1u) != 0u; _5019 = (_3278 >> 2u) & 15u; _5014 = (_3278 >> 6u) & 15u; _5032 = _3324; _5028 = _5029; _5023 = _5024; _5019 = _5020; _5014 = _5015; float _5047; if (_3253 > 0.0) float _5033; if (_5028) vec4 _3381 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_5019].xy * (1.0 / vertex_spotLightSpacePosition[_5019].w), float(_5014))); float _3385 = min(vertex_spotLightSpacePosition[_5019].z, 1.0); float _3395 = _3381.x; float _3400 = max(_3381.y - (_3395 * _3395), 9.9999997473787516355514526367188e-06); float _3402 = _3385 - _3395; _5033 = (_3385 <= _3395) ? 1.0 : clamp(((_3400 / (_3400 + (_3402 * _3402))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _5033 = 1.0; float _5048; vec3 _5104; if (_5023 && (_5033 > 0.0)) float _5049; vec3 _5105; uint _3448 = (frameUniforms.fz >> 8u) & 255u; vec4 _3558 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3565 = frameUniforms.e * vec4(shading_position + (_3242 * frameUniforms.hz), 1.0); vec4 _3571 = _3558 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3577 = _3558.xyz * (1.0 / _3558.w); vec3 _3602 = (_3577 * 0.5) + vec3(0.5); vec3 _3607 = (((_3565.xyz * (1.0 / _3565.w)) * 0.5) + vec3(0.5)) - _3602; float _3458 = 1.0 / float(_3448); float _3467 = (abs((_3571.xyz * (1.0 / _3571.w)).z - _3577.z) * _3458) * 0.5; float _3479 = (_3458 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3458; vec3 _5037; _5037 = _5040; vec3 _3492; vec3 _5036; float _5043; uint _5034 = 0u; float _5035 = _3479; if (_5034 < _3448) _3492 = _3602 + (_3607 * _5035); if (abs(_3467 - (_3492.z - (1.0 - textureLod(light_structure, _3492.xy, 0.0).x))) < _3467) _5043 = 1.0; _5036 = _3492; _5035 += _3458; _5034++; _5037 = _3492; _5043 = 0.0; _5036 = _5037; vec2 _3528 = max((abs(_5036.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _5105 = _5036; _5049 = _5033 * (1.0 - (_5043 * clamp(1.0 - dot(_3528, _3528), 0.0, 1.0))); _5105 = _5040; _5049 = _5033; _5104 = _5105; _5048 = _5049; _5104 = _5040; _5048 = _5033; _5103 = _5104; _5047 = _5048; _5103 = _5040; _5047 = 1.0; if (_3253 <= 0.0) _5065 = _5009; vec3 _3640 = normalize(shading_view + _3242); float _3643 = clamp(_3253, 0.0, 1.0); float _3647 = clamp(dot(shading_normal, _3640), 0.0, 1.0); float _3792 = (_3643 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_3643 - _3643) * _3643) + 1.0)); float _3812 = 1.0 - clamp(dot(_3242, _3640), 0.0, 1.0); float _3821 = _3812 * _3812; _5065 = _5009 + ((((_2694 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3821 * _3821) * _3812))) * (0.15915493667125701904296875 / _3792)) * _2750)) * _4903.xyz) * (((_3309 * _5032) * _3643) * _5047)); fragColor = vec4(_5009, 1.0); bvec4 _3862 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_3862.x ? vec4(1.0).x : vec4(0.0).x, _3862.y ? vec4(1.0).y : vec4(0.0).y, _3862.z ? vec4(1.0).z : vec4(0.0).z, _3862.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2503 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2503.x, _2503.y, _2503.z, fragColor.w); float _67 = (-((frameUniforms.a[0] * vertex_worldPosition.x) + ((frameUniforms.a[1] * vertex_worldPosition.y) + ((frameUniforms.a[2] * vertex_worldPosition.z) + frameUniforms.a[3]))).z) / abs(frameUniforms.dz); float _70 = dFdx(_67); float _73 = dFdy(_67); fragColor = vec4(_67, (_67 * _67) + (0.25 * ((_70 * _70) + (_73 * _73))), 0.0, 0.0); vec3 _3951; float _3954; vec4 _3983; vec3 _3987; float _4032; vec3 _517; vec2 _1409 = vec3(shading_normalizedViewportCoord, _4032).xy; vec4 _1431 = textureGather(light_ssao, _1409, 1); vec4 _1435 = textureGather(light_ssao, _1409, 2); vec2 _1442 = fract((_1409 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1445 = _1442.x; float _1446 = 1.0 - _1445; float _1448 = _1442.y; vec4 _3894 = _3983; _3894.x = _1446 * _1448; vec4 _3898 = _3894; _3898.y = _1445 * _1448; float _1461 = 1.0 - _1448; vec4 _3902 = _3898; _3902.z = _1445 * _1461; vec4 _3906 = _3902; _3906.w = _1446 * _1461; vec4 _3912 = _3983; _3912.x = (_1431.x * 0.996108949184417724609375) + (_1435.x * 0.00389105058275163173675537109375); vec4 _3918 = _3912; _3918.y = (_1431.y * 0.996108949184417724609375) + (_1435.y * 0.00389105058275163173675537109375); vec4 _3924 = _3918; _3924.z = (_1431.z * 0.996108949184417724609375) + (_1435.z * 0.00389105058275163173675537109375); vec4 _3930 = _3924; _3930.w = (_1431.w * 0.996108949184417724609375) + (_1435.w * 0.00389105058275163173675537109375); vec4 _1533 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_3930 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1543 = max(vec4(6.103515625e-05), vec4(1.0) - (_1533 * _1533)) * _3906; return dot(textureGather(light_ssao, _1409), _1543) * (1.0 / (((_1543.x + _1543.y) + _1543.z) + _1543.w)); return textureLod(light_ssao, _1409, 0.0).x; ivec2 _1742 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1756 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1763 = _1756 * (1.0 / float(_1742.x)); vec3 _1767 = cross(_1756, n) * (1.0 / float(_1742.y)); vec3 _1770 = n - _1763; vec3 _1775 = n + _1763; return (((textureLod(light_iblSpecular, _1770 - _1767, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1775 - _1767, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1775 + _1767, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1770 + _1767, frameUniforms.cz).xyz) * 0.25; float _1964 = dot(lightDirection, shading_reflected); if (_1964 < frameUniforms.m.x) _3984 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _1964)) * frameUniforms.m.y)); _3984 = shading_reflected; return _3984; float _3668 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _3683 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_3668 * _3668)) * frameUniforms.r.y)), 1.0); return vec3(_3683.xy * (1.0 / _3683.w), _3683.z); float _2076; vec3 _3111 = sampleSunAreaLight(frameUniforms.p); float _3118 = clamp(dot(shading_normal, _3111), 0.0, 1.0); if (_3118 > 0.0) bvec4 _3135 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _3145 = clamp(uint(dot(vec4(_3135.x ? vec4(1.0).x : vec4(0.0).x, _3135.y ? vec4(1.0).y : vec4(0.0).y, _3135.z ? vec4(1.0).z : vec4(0.0).z, _3135.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _3988; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _3145) << 8u)) != 0u)) uint param = _3145; vec3 _2049 = getCascadeLightSpacePosition(param); vec4 _3178 = texture(light_shadowMap, vec3(_2049.xy, float(_3145))); float _3182 = min(_2049.z, 1.0); float _3192 = _3178.x; float _3197 = max(_3178.y - (_3192 * _3192), 9.9999997473787516355514526367188e-06); float _3199 = _3182 - _3192; _3988 = (_3182 <= _3192) ? 1.0 : clamp(((_3197 / (_3197 + (_3199 * _3199))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _3988 = 1.0; float _3996; if (((frameUniforms.fz & 2u) != 0u) && (_3988 > 0.0)) float _3998; uint _3245 = (frameUniforms.fz >> 8u) & 255u; vec4 _3355 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3362 = frameUniforms.e * vec4(shading_position + (_3111 * frameUniforms.hz), 1.0); vec4 _3368 = _3355 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3374 = _3355.xyz * (1.0 / _3355.w); vec3 _3399 = (_3374 * 0.5) + vec3(0.5); vec3 _3404 = (((_3362.xyz * (1.0 / _3362.w)) * 0.5) + vec3(0.5)) - _3399; float _3255 = 1.0 / float(_3245); float _3264 = (abs((_3368.xyz * (1.0 / _3368.w)).z - _3374.z) * _3255) * 0.5; float _3276 = (_3255 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3255; vec3 _3992; _3992 = _3987; vec3 _3289; vec3 _3991; float _3994; uint _3989 = 0u; float _3990 = _3276; if (_3989 < _3245) _3289 = _3399 + (_3404 * _3990); if (abs(_3264 - (_3289.z - (1.0 - textureLod(light_structure, _3289.xy, 0.0).x))) < _3264) _3994 = 1.0; _3991 = _3289; _3990 += _3255; _3989++; _3992 = _3289; _3994 = 0.0; vec2 _3325 = max((abs(_3991.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _3998 = _3994 * clamp(1.0 - dot(_3325, _3325), 0.0, 1.0); _3998 = 0.0; _3996 = _3998; _3996 = 0.0; _2076 = _3988 * (1.0 - _3996); vec3 _3437 = normalize(shading_view + _3111); float _3440 = clamp(_3118, 0.0, 1.0); float _3444 = clamp(dot(shading_normal, _3437), 0.0, 1.0); float _3532 = _3444 * pixel.roughness; float _3539 = pixel.roughness / ((1.0 - (_3444 * _3444)) + (_3532 * _3532)); float _3562 = pixel.roughness * pixel.roughness; float _3609 = 1.0 - clamp(dot(_3111, _3437), 0.0, 1.0); float _3618 = _3609 * _3609; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_3618 * _3618) * _3609))) * (((_3539 * _3539) * 0.3183098733425140380859375) * (0.5 / ((_3440 * sqrt(((shading_NoV - (_3562 * shading_NoV)) * shading_NoV) + _3562)) + (shading_NoV * sqrt(((_3440 - (_3562 * _3440)) * _3440) + _3562)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _3440) * _2076)); vec3 _3949; vec3 _3948; _3948 = vertex_worldNormal; _3948 = -vertex_worldNormal; _3949 = _3948; _3949 = vertex_worldNormal; shading_normal = normalize(_3949); vec3 _2434 = variable_colorFromSh.xyz * 1.0; vec4 _2505 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2490 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2505.y) - 1.0)); float _2541 = min(1.0, evaluateSSAO()); float _2634 = clamp((pow(shading_NoV + _2541, 7.62939453125e-06) - 1.0) + _2541, 0.0, 1.0); vec3 _2642 = mix(_2505.xxx, _2505.yyy, vec3(0.039999999105930328369140625)); vec3 _2355 = (((((_2434 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _2642)) * 1.0) * max(vec3(_2541), ((((((_2434 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2541) + ((_2434 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2541) + ((_2434 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2541)) + (((_2642 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2490 * 1.0)) * max(vec3(_2634), ((((vec3(-0.250783979892730712890625) * _2634) + vec3(0.449896037578582763671875)) * _2634) + vec3(0.800507962703704833984375)) * _2634))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _3951, _3954, _3954, _3954, _3954, _3951), PixelParams(_2434, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2505.xyz, _2490), _2355); fragColor = vec4(_2355, 1.0); bvec4 _2780 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_2780.x ? vec4(1.0).x : vec4(0.0).x, _2780.y ? vec4(1.0).y : vec4(0.0).y, _2780.z ? vec4(1.0).z : vec4(0.0).z, _2780.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2229 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2229.x, _2229.y, _2229.z, fragColor.w); vec3 _2235 = shading_position - frameUniforms.j; vec4 _3982; float _2845 = length(_2235); float _2848 = max(0.001000000047497451305389404296875, _2235.y); float _2858 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _2848)) / _2848); float _2874 = min(max(1.0 - exp2(-(_2858 * max(_2845 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); _3978 = frameUniforms.mz * (textureLod(light_iblSpecular, _2235, frameUniforms.cz).xyz * frameUniforms.x); _3978 = frameUniforms.mz; vec3 _2896 = _3978 * _2874; _3981 = _2896 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2235, frameUniforms.p) / _2845, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_2858 * max(_2845 - frameUniforms.oz, 0.0))), 0.0))); _3981 = _2896; vec3 _2944 = (fragColor.xyz * (1.0 - _2874)) + _3981; _3982 = vec4(_2944.x, _2944.y, _2944.z, fragColor.w); _3982 = fragColor; fragColor = _3982; vec3 _4224; uint _4268; bool _4277; vec4 _4357; vec4 _4388; float _4389; vec2 _1288 = vec3(shading_normalizedViewportCoord, _4389).xy; vec4 _1309 = textureGather(light_ssao, _1288, 1); vec4 _1313 = textureGather(light_ssao, _1288, 2); vec2 _1320 = fract((_1288 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1323 = _1320.x; float _1324 = 1.0 - _1323; float _1326 = _1320.y; vec4 _4174 = _4357; _4174.x = _1324 * _1326; vec4 _4178 = _4174; _4178.y = _1323 * _1326; float _1339 = 1.0 - _1326; vec4 _4182 = _4178; _4182.z = _1323 * _1339; vec4 _4186 = _4182; _4186.w = _1324 * _1339; vec4 _4192 = _4357; _4192.x = (_1309.x * 0.996108949184417724609375) + (_1313.x * 0.00389105058275163173675537109375); vec4 _4198 = _4192; _4198.y = (_1309.y * 0.996108949184417724609375) + (_1313.y * 0.00389105058275163173675537109375); vec4 _4204 = _4198; _4204.z = (_1309.z * 0.996108949184417724609375) + (_1313.z * 0.00389105058275163173675537109375); vec4 _4210 = _4204; _4210.w = (_1309.w * 0.996108949184417724609375) + (_1313.w * 0.00389105058275163173675537109375); vec4 _1411 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_4210 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1421 = max(vec4(6.103515625e-05), vec4(1.0) - (_1411 * _1411)) * _4186; return dot(textureGather(light_ssao, _1288), _1421) * (1.0 / (((_1421.x + _1421.y) + _1421.z) + _1421.w)); return textureLod(light_ssao, _1288, 0.0).x; ivec2 _1621 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1636 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1643 = _1636 * (1.0 / float(_1621.x)); vec3 _1647 = cross(_1636, n) * (1.0 / float(_1621.y)); vec3 _1650 = n - _1643; vec3 _1655 = n + _1643; return (((textureLod(light_iblSpecular, _1650 - _1647, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1655 - _1647, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1655 + _1647, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1650 + _1647, frameUniforms.cz).xyz) * 0.25; vec3 _4222; vec3 _4221; _4221 = vertex_worldNormal; _4221 = -vertex_worldNormal; _4222 = _4221; _4222 = vertex_worldNormal; vec3 _2354 = normalize(_4222); vec3 _2360 = normalize(frameUniforms.j - shading_position); float _2416 = max(dot(_2354, _2360), 9.9999997473787516355514526367188e-05); vec3 _2509 = variable_colorFromSh.xyz * 1.0; vec4 _2580 = textureLod(light_iblDFG, vec2(_2416, 1.0), 0.0); vec3 _2565 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2580.y) - 1.0)); float _2616 = min(1.0, evaluateSSAO()); float _2709 = clamp((pow(_2416 + _2616, 7.62939453125e-06) - 1.0) + _2616, 0.0, 1.0); vec3 _2717 = mix(_2580.xxx, _2580.yyy, vec3(0.039999999105930328369140625)); float _2917 = 1.0 - gl_FragCoord.z; uvec2 _2956 = uvec2((vec3(shading_normalizedViewportCoord, _2917).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _2941 = ((_2956.x * frameUniforms.q) + (_2956.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _2917) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _2988 = texelFetch(light_froxels, ivec2(int(_2941 & 63u), int(_2941 >> 6u)), 0); uint _2991 = _2988.x; uint _2856 = _2991 + (_2988.y & 255u); vec3 _4255; vec3 _4291; _4291 = _4224; _4255 = (((((_2509 * diffuseIrradiance(_2354)) * (vec3(1.0) - _2717)) * 1.0) * max(vec3(_2616), ((((((_2509 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2616) + ((_2509 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2616) + ((_2509 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2616)) + (((_2717 * textureLod(light_iblSpecular, _2354, frameUniforms.cz).xyz) * (_2565 * 1.0)) * max(vec3(_2709), ((((vec3(-0.250783979892730712890625) * _2709) + vec3(0.449896037578582763671875)) * _2709) + vec3(0.800507962703704833984375)) * _2709))) * frameUniforms.x; uint _4265; uint _4270; bool _4274; bool _4279; vec3 _4316; vec3 _4354; uint _4266; uint _4271; bool _4275; bool _4280; for (uint _4254 = _2991; _4254 < _2856; _4291 = _4354, _4280 = _4279, _4275 = _4274, _4271 = _4270, _4266 = _4265, _4255 = _4316, _4254++) uvec4 _3026 = texelFetch(light_records, ivec2(int(_4254 & 31u), int(_4254 >> 5u)), 0); uint _3027 = _3026.x; vec3 _3044 = lightsUniforms.a[_3027][0].xyz - vertex_worldPosition; float _3124 = lightsUniforms.a[_3027][1].w * frameUniforms.y; vec4 _4158 = vec4(lightsUniforms.a[_3027][1].x, lightsUniforms.a[_3027][1].y, lightsUniforms.a[_3027][1].z, _4388.w); _4158.w = _3124; vec3 _3057 = normalize(_3044); float _3131 = dot(_3044, _3044); float _3146 = _3131 * lightsUniforms.a[_3027][0].w; float _3151 = clamp(1.0 - (_3146 * _3146), 0.0, 1.0); float _3139 = (_3151 * _3151) / max(_3131, 9.9999997473787516355514526367188e-05); float _3068 = clamp(dot(_2354, _3057), 0.0, 1.0); float _4283; if (floatBitsToUint(lightsUniforms.a[_3027][3].w) == 1u) float _3165 = clamp((dot(-lightsUniforms.a[_3027][2].xyz, _3057) * lightsUniforms.a[_3027][3].x) + lightsUniforms.a[_3027][3].y, 0.0, 1.0); uint _3093 = floatBitsToUint(lightsUniforms.a[_3027][3].z); _4283 = _3139 * (_3165 * _3165); _4279 = (_3093 & 1u) != 0u; _4274 = ((_3093 >> 1u) & 1u) != 0u; _4270 = (_3093 >> 2u) & 15u; _4265 = (_3093 >> 6u) & 15u; _4283 = _3139; _4279 = _4280; _4274 = _4275; _4270 = _4271; _4265 = _4266; float _4298; if (_3068 > 0.0) float _4284; if (_4279) vec4 _3196 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_4270].xy * (1.0 / vertex_spotLightSpacePosition[_4270].w), float(_4265))); float _3200 = min(vertex_spotLightSpacePosition[_4270].z, 1.0); float _3210 = _3196.x; float _3215 = max(_3196.y - (_3210 * _3210), 9.9999997473787516355514526367188e-06); float _3217 = _3200 - _3210; _4284 = (_3200 <= _3210) ? 1.0 : clamp(((_3215 / (_3215 + (_3217 * _3217))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _4284 = 1.0; float _4299; vec3 _4355; if (_4274 && (_4284 > 0.0)) float _4300; uint _3263 = (frameUniforms.fz >> 8u) & 255u; vec4 _3373 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3380 = frameUniforms.e * vec4(shading_position + (_3057 * frameUniforms.hz), 1.0); vec4 _3386 = _3373 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3392 = _3373.xyz * (1.0 / _3373.w); vec3 _3417 = (_3392 * 0.5) + vec3(0.5); vec3 _3422 = (((_3380.xyz * (1.0 / _3380.w)) * 0.5) + vec3(0.5)) - _3417; float _3273 = 1.0 / float(_3263); float _3282 = (abs((_3386.xyz * (1.0 / _3386.w)).z - _3392.z) * _3273) * 0.5; float _3294 = (_3273 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3273; vec3 _4288; _4288 = _4291; vec3 _3307; vec3 _4287; float _4294; uint _4285 = 0u; float _4286 = _3294; if (_4285 < _3263) _3307 = _3417 + (_3422 * _4286); if (abs(_3282 - (_3307.z - (1.0 - textureLod(light_structure, _3307.xy, 0.0).x))) < _3282) _4294 = 1.0; _4287 = _3307; _4286 += _3273; _4285++; _4288 = _3307; _4294 = 0.0; _4287 = _4288; vec2 _3343 = max((abs(_4287.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _4356 = _4287; _4300 = _4284 * (1.0 - (_4294 * clamp(1.0 - dot(_3343, _3343), 0.0, 1.0))); _4356 = _4291; _4300 = _4284; _4355 = _4356; _4299 = _4300; _4355 = _4291; _4299 = _4284; _4354 = _4355; _4298 = _4299; _4354 = _4291; _4298 = 1.0; if (_3068 <= 0.0) _4316 = _4255; vec3 _3455 = normalize(_2360 + _3057); float _3458 = clamp(_3068, 0.0, 1.0); float _3462 = clamp(dot(_2354, _3455), 0.0, 1.0); float _3607 = (_3458 * sqrt(((_2416 - _2416) * _2416) + 1.0)) + (_2416 * sqrt(((_3458 - _3458) * _3458) + 1.0)); float _3627 = 1.0 - clamp(dot(_3057, _3455), 0.0, 1.0); float _3636 = _3627 * _3627; _4316 = _4255 + ((((_2509 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3636 * _3636) * _3627))) * (0.15915493667125701904296875 / _3607)) * _2565)) * _4158.xyz) * (((_3124 * _4283) * _3458) * _4298)); fragColor = vec4(_4255, 1.0); vec3 _2320 = shading_position - frameUniforms.j; vec4 _4260; float _3695 = length(_2320); float _3698 = max(0.001000000047497451305389404296875, _2320.y); float _3708 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _3698)) / _3698); float _3724 = min(max(1.0 - exp2(-(_3708 * max(_3695 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _4256; _4256 = frameUniforms.mz * (textureLod(light_iblSpecular, _2320, frameUniforms.cz).xyz * frameUniforms.x); _4256 = frameUniforms.mz; vec3 _3746 = _4256 * _3724; vec3 _4259; _4259 = _3746 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2320, frameUniforms.p) / _3695, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_3708 * max(_3695 - frameUniforms.oz, 0.0))), 0.0))); _4259 = _3746; vec3 _3794 = (fragColor.xyz * (1.0 - _3724)) + _4259; _4260 = vec4(_3794.x, _3794.y, _3794.z, fragColor.w); _4260 = fragColor; fragColor = _4260; vec3 _5273; float _5276; uint _5317; bool _5326; vec4 _5406; vec3 _5410; vec4 _5458; float _5459; vec3 _574; vec2 _1486 = vec3(shading_normalizedViewportCoord, _5459).xy; vec4 _1507 = textureGather(light_ssao, _1486, 1); vec4 _1511 = textureGather(light_ssao, _1486, 2); vec2 _1518 = fract((_1486 * vec2(textureSize(light_ssao, 0))) - vec2(0.5)); float _1521 = _1518.x; float _1522 = 1.0 - _1521; float _1524 = _1518.y; vec4 _5216 = _5406; _5216.x = _1522 * _1524; vec4 _5220 = _5216; _5220.y = _1521 * _1524; float _1537 = 1.0 - _1524; vec4 _5224 = _5220; _5224.z = _1521 * _1537; vec4 _5228 = _5224; _5228.w = _1522 * _1537; vec4 _5234 = _5406; _5234.x = (_1507.x * 0.996108949184417724609375) + (_1511.x * 0.00389105058275163173675537109375); vec4 _5240 = _5234; _5240.y = (_1507.y * 0.996108949184417724609375) + (_1511.y * 0.00389105058275163173675537109375); vec4 _5246 = _5240; _5246.z = (_1507.z * 0.996108949184417724609375) + (_1511.z * 0.00389105058275163173675537109375); vec4 _5252 = _5246; _5252.w = (_1507.w * 0.996108949184417724609375) + (_1511.w * 0.00389105058275163173675537109375); vec4 _1609 = (vec4(dot(vec3(frameUniforms.a[0].z, frameUniforms.a[1].z, frameUniforms.a[2].z), shading_position) + frameUniforms.a[3].z) - (_5252 * (-frameUniforms.dz))) * frameUniforms.sz; vec4 _1619 = max(vec4(6.103515625e-05), vec4(1.0) - (_1609 * _1609)) * _5228; return dot(textureGather(light_ssao, _1486), _1619) * (1.0 / (((_1619.x + _1619.y) + _1619.z) + _1619.w)); return textureLod(light_ssao, _1486, 0.0).x; ivec2 _1818 = textureSize(light_iblSpecular, int(frameUniforms.cz)); vec3 _1832 = normalize(cross(n, vec3(0.0, 1.0, 0.0))); vec3 _1839 = _1832 * (1.0 / float(_1818.x)); vec3 _1843 = cross(_1832, n) * (1.0 / float(_1818.y)); vec3 _1846 = n - _1839; vec3 _1851 = n + _1839; return (((textureLod(light_iblSpecular, _1846 - _1843, frameUniforms.cz).xyz + textureLod(light_iblSpecular, _1851 - _1843, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1851 + _1843, frameUniforms.cz).xyz) + textureLod(light_iblSpecular, _1846 + _1843, frameUniforms.cz).xyz) * 0.25; float _2040 = dot(lightDirection, shading_reflected); vec3 _5407; if (_2040 < frameUniforms.m.x) _5407 = normalize((lightDirection * frameUniforms.m.x) + (normalize(shading_reflected - (lightDirection * _2040)) * frameUniforms.m.y)); _5407 = shading_reflected; return _5407; float _4908 = clamp(dot(shading_normal, frameUniforms.p), 0.0, 1.0); vec4 _4923 = frameUniforms.g[cascade] * vec4(shading_position + (shading_normal * (sqrt(1.0 - (_4908 * _4908)) * frameUniforms.r.y)), 1.0); return vec3(_4923.xy * (1.0 / _4923.w), _4923.z); float _2152; vec3 _4351 = sampleSunAreaLight(frameUniforms.p); float _4358 = clamp(dot(shading_normal, _4351), 0.0, 1.0); if (_4358 > 0.0) bvec4 _4375 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint _4385 = clamp(uint(dot(vec4(_4375.x ? vec4(1.0).x : vec4(0.0).x, _4375.y ? vec4(1.0).y : vec4(0.0).y, _4375.z ? vec4(1.0).z : vec4(0.0).z, _4375.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); float _5411; if (((frameUniforms.fz & 1u) != 0u) && ((frameUniforms.rz & ((1u << _4385) << 8u)) != 0u)) uint param = _4385; vec3 _2125 = getCascadeLightSpacePosition(param); vec4 _4418 = texture(light_shadowMap, vec3(_2125.xy, float(_4385))); float _4422 = min(_2125.z, 1.0); float _4432 = _4418.x; float _4437 = max(_4418.y - (_4432 * _4432), 9.9999997473787516355514526367188e-06); float _4439 = _4422 - _4432; _5411 = (_4422 <= _4432) ? 1.0 : clamp(((_4437 / (_4437 + (_4439 * _4439))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _5411 = 1.0; float _5419; if (((frameUniforms.fz & 2u) != 0u) && (_5411 > 0.0)) float _5421; uint _4485 = (frameUniforms.fz >> 8u) & 255u; vec4 _4595 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _4602 = frameUniforms.e * vec4(shading_position + (_4351 * frameUniforms.hz), 1.0); vec4 _4608 = _4595 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _4614 = _4595.xyz * (1.0 / _4595.w); vec3 _4639 = (_4614 * 0.5) + vec3(0.5); vec3 _4644 = (((_4602.xyz * (1.0 / _4602.w)) * 0.5) + vec3(0.5)) - _4639; float _4495 = 1.0 / float(_4485); float _4504 = (abs((_4608.xyz * (1.0 / _4608.w)).z - _4614.z) * _4495) * 0.5; float _4516 = (_4495 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _4495; vec3 _5415; _5415 = _5410; vec3 _4529; vec3 _5414; float _5417; uint _5412 = 0u; float _5413 = _4516; if (_5412 < _4485) _4529 = _4639 + (_4644 * _5413); if (abs(_4504 - (_4529.z - (1.0 - textureLod(light_structure, _4529.xy, 0.0).x))) < _4504) _5417 = 1.0; _5414 = _4529; _5413 += _4495; _5412++; _5415 = _4529; _5417 = 0.0; _5414 = _5415; vec2 _4565 = max((abs(_5414.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _5421 = _5417 * clamp(1.0 - dot(_4565, _4565), 0.0, 1.0); _5421 = 0.0; _5419 = _5421; _5419 = 0.0; _2152 = _5411 * (1.0 - _5419); vec3 _4677 = normalize(shading_view + _4351); float _4680 = clamp(_4358, 0.0, 1.0); float _4684 = clamp(dot(shading_normal, _4677), 0.0, 1.0); float _4772 = _4684 * pixel.roughness; float _4779 = pixel.roughness / ((1.0 - (_4684 * _4684)) + (_4772 * _4772)); float _4802 = pixel.roughness * pixel.roughness; float _4849 = 1.0 - clamp(dot(_4351, _4677), 0.0, 1.0); float _4858 = _4849 * _4849; color += ((((pixel.diffuseColor * 0.3183098733425140380859375) + (((pixel.f0 + ((vec3(clamp(dot(pixel.f0, vec3(16.5)), 0.0, 1.0)) - pixel.f0) * ((_4858 * _4858) * _4849))) * (((_4779 * _4779) * 0.3183098733425140380859375) * (0.5 / ((_4680 * sqrt(((shading_NoV - (_4802 * shading_NoV)) * shading_NoV) + _4802)) + (shading_NoV * sqrt(((_4680 - (_4802 * _4680)) * _4680) + _4802)))))) * pixel.energyCompensation)) * frameUniforms.l.xyz) * ((frameUniforms.l.w * _4680) * _2152)); vec3 _5271; vec3 _5270; _5270 = vertex_worldNormal; _5270 = -vertex_worldNormal; _5271 = _5270; _5271 = vertex_worldNormal; shading_normal = normalize(_5271); vec3 _2852 = variable_colorFromSh.xyz * 1.0; vec4 _2923 = textureLod(light_iblDFG, vec2(shading_NoV, 1.0), 0.0); vec3 _2908 = vec3(1.0) + (vec3(0.039999999105930328369140625) * ((1.0 / _2923.y) - 1.0)); float _2959 = min(1.0, evaluateSSAO()); float _3052 = clamp((pow(shading_NoV + _2959, 7.62939453125e-06) - 1.0) + _2959, 0.0, 1.0); vec3 _3060 = mix(_2923.xxx, _2923.yyy, vec3(0.039999999105930328369140625)); vec3 _2768 = (((((_2852 * diffuseIrradiance(shading_normal)) * (vec3(1.0) - _3060)) * 1.0) * max(vec3(_2959), ((((((_2852 * 2.040400028228759765625) - vec3(0.3323999941349029541015625)) * _2959) + ((_2852 * (-4.79510021209716796875)) + vec3(0.6417000293731689453125))) * _2959) + ((_2852 * 2.755199909210205078125) + vec3(0.69029998779296875))) * _2959)) + (((_3060 * textureLod(light_iblSpecular, shading_normal, frameUniforms.cz).xyz) * (_2908 * 1.0)) * max(vec3(_3052), ((((vec3(-0.250783979892730712890625) * _3052) + vec3(0.449896037578582763671875)) * _3052) + vec3(0.800507962703704833984375)) * _3052))) * frameUniforms.x; evaluateDirectionalLight(MaterialInputs(vec4(variable_colorFromSh.x, variable_colorFromSh.y, variable_colorFromSh.z, vec4(0.0, 0.0, 0.0, 1.0).w), 1.0, 0.0, 0.5, 1.0, vec4(0.0, 0.0, 0.0, 1.0), _5273, _5276, _5276, _5276, _5276, _5273), PixelParams(_2852, 1.0, 1.0, vec3(0.039999999105930328369140625), 1.0, _2923.xyz, _2908), _2768); float _3260 = 1.0 - gl_FragCoord.z; uvec2 _3299 = uvec2((vec3(shading_normalizedViewportCoord, _3260).xy * frameUniforms.i.xy) * vec2(frameUniforms.w, frameUniforms.s)); uint _3284 = ((_3299.x * frameUniforms.q) + (_3299.y * frameUniforms.u.x)) + (uint(max(0.0, (log2((frameUniforms.t.x * _3260) + frameUniforms.t.y) * frameUniforms.t.z) + frameUniforms.t.w)) * frameUniforms.u.y); uvec4 _3331 = texelFetch(light_froxels, ivec2(int(_3284 & 63u), int(_3284 >> 6u)), 0); uint _3334 = _3331.x; uint _3199 = _3334 + (_3331.y & 255u); vec3 _5304; vec3 _5340; _5340 = _5273; _5304 = _2768; uint _5314; uint _5319; bool _5323; bool _5328; vec3 _5365; vec3 _5403; uint _5315; uint _5320; bool _5324; bool _5329; for (uint _5303 = _3334; _5303 < _3199; _5340 = _5403, _5329 = _5328, _5324 = _5323, _5320 = _5319, _5315 = _5314, _5304 = _5365, _5303++) uvec4 _3369 = texelFetch(light_records, ivec2(int(_5303 & 31u), int(_5303 >> 5u)), 0); uint _3370 = _3369.x; vec3 _3387 = lightsUniforms.a[_3370][0].xyz - vertex_worldPosition; float _3467 = lightsUniforms.a[_3370][1].w * frameUniforms.y; vec4 _5197 = vec4(lightsUniforms.a[_3370][1].x, lightsUniforms.a[_3370][1].y, lightsUniforms.a[_3370][1].z, _5458.w); _5197.w = _3467; vec3 _3400 = normalize(_3387); float _3474 = dot(_3387, _3387); float _3489 = _3474 * lightsUniforms.a[_3370][0].w; float _3494 = clamp(1.0 - (_3489 * _3489), 0.0, 1.0); float _3482 = (_3494 * _3494) / max(_3474, 9.9999997473787516355514526367188e-05); float _3411 = clamp(dot(shading_normal, _3400), 0.0, 1.0); float _5332; if (floatBitsToUint(lightsUniforms.a[_3370][3].w) == 1u) float _3508 = clamp((dot(-lightsUniforms.a[_3370][2].xyz, _3400) * lightsUniforms.a[_3370][3].x) + lightsUniforms.a[_3370][3].y, 0.0, 1.0); uint _3436 = floatBitsToUint(lightsUniforms.a[_3370][3].z); _5332 = _3482 * (_3508 * _3508); _5328 = (_3436 & 1u) != 0u; _5323 = ((_3436 >> 1u) & 1u) != 0u; _5319 = (_3436 >> 2u) & 15u; _5314 = (_3436 >> 6u) & 15u; _5332 = _3482; _5328 = _5329; _5323 = _5324; _5319 = _5320; _5314 = _5315; float _5347; if (_3411 > 0.0) float _5333; if (_5328) vec4 _3539 = texture(light_shadowMap, vec3(vertex_spotLightSpacePosition[_5319].xy * (1.0 / vertex_spotLightSpacePosition[_5319].w), float(_5314))); float _3543 = min(vertex_spotLightSpacePosition[_5319].z, 1.0); float _3553 = _3539.x; float _3558 = max(_3539.y - (_3553 * _3553), 9.9999997473787516355514526367188e-06); float _3560 = _3543 - _3553; _5333 = (_3543 <= _3553) ? 1.0 : clamp(((_3558 / (_3558 + (_3560 * _3560))) - 0.20000000298023223876953125) * 1.25, 0.0, 1.0); _5333 = 1.0; float _5348; vec3 _5404; if (_5323 && (_5333 > 0.0)) float _5349; vec3 _5405; uint _3606 = (frameUniforms.fz >> 8u) & 255u; vec4 _3716 = frameUniforms.e * vec4(shading_position, 1.0); vec4 _3723 = frameUniforms.e * vec4(shading_position + (_3400 * frameUniforms.hz), 1.0); vec4 _3729 = _3716 + (frameUniforms.c * vec4(0.0, 0.0, frameUniforms.hz, 0.0)); vec3 _3735 = _3716.xyz * (1.0 / _3716.w); vec3 _3760 = (_3735 * 0.5) + vec3(0.5); vec3 _3765 = (((_3723.xyz * (1.0 / _3723.w)) * 0.5) + vec3(0.5)) - _3760; float _3616 = 1.0 / float(_3606); float _3625 = (abs((_3729.xyz * (1.0 / _3729.w)).z - _3735.z) * _3616) * 0.5; float _3637 = (_3616 * (fract(52.98291778564453125 * fract(dot(gl_FragCoord.xy, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5)) + _3616; vec3 _5337; _5337 = _5340; vec3 _3650; vec3 _5336; float _5343; uint _5334 = 0u; float _5335 = _3637; if (_5334 < _3606) _3650 = _3760 + (_3765 * _5335); if (abs(_3625 - (_3650.z - (1.0 - textureLod(light_structure, _3650.xy, 0.0).x))) < _3625) _5343 = 1.0; _5336 = _3650; _5335 += _3616; _5334++; _5337 = _3650; _5343 = 0.0; _5336 = _5337; vec2 _3686 = max((abs(_5336.xy - vec2(0.5)) * 12.0) - vec2(5.0), vec2(0.0)); _5405 = _5336; _5349 = _5333 * (1.0 - (_5343 * clamp(1.0 - dot(_3686, _3686), 0.0, 1.0))); _5405 = _5340; _5349 = _5333; _5404 = _5405; _5348 = _5349; _5404 = _5340; _5348 = _5333; _5403 = _5404; _5347 = _5348; _5403 = _5340; _5347 = 1.0; if (_3411 <= 0.0) _5365 = _5304; vec3 _3798 = normalize(shading_view + _3400); float _3801 = clamp(_3411, 0.0, 1.0); float _3805 = clamp(dot(shading_normal, _3798), 0.0, 1.0); float _3950 = (_3801 * sqrt(((shading_NoV - shading_NoV) * shading_NoV) + 1.0)) + (shading_NoV * sqrt(((_3801 - _3801) * _3801) + 1.0)); float _3970 = 1.0 - clamp(dot(_3400, _3798), 0.0, 1.0); float _3979 = _3970 * _3970; _5365 = _5304 + ((((_2852 * 0.3183098733425140380859375) + (((vec3(0.039999999105930328369140625) + (vec3(0.959999978542327880859375) * ((_3979 * _3979) * _3970))) * (0.15915493667125701904296875 / _3950)) * _2908)) * _5197.xyz) * (((_3467 * _5332) * _3801) * _5347)); fragColor = vec4(_5304, 1.0); bvec4 _4020 = greaterThan(frameUniforms.h, vec4(((frameUniforms.a[0] * shading_position.x) + ((frameUniforms.a[1] * shading_position.y) + ((frameUniforms.a[2] * shading_position.z) + frameUniforms.a[3]))).z)); uint param = clamp(uint(dot(vec4(_4020.x ? vec4(1.0).x : vec4(0.0).x, _4020.y ? vec4(1.0).y : vec4(0.0).y, _4020.z ? vec4(1.0).z : vec4(0.0).z, _4020.w ? vec4(1.0).w : vec4(0.0).w), vec4(1.0))), 0u, (frameUniforms.rz & 15u) - 1u); vec3 _2652 = fragColor.xyz * uintToColorDebug(param); fragColor = vec4(_2652.x, _2652.y, _2652.z, fragColor.w); vec3 _2658 = shading_position - frameUniforms.j; vec4 _5309; float _4085 = length(_2658); float _4088 = max(0.001000000047497451305389404296875, _2658.y); float _4098 = frameUniforms.nz * ((1.0 - exp((-frameUniforms.lz) * _4088)) / _4088); float _4114 = min(max(1.0 - exp2(-(_4098 * max(_4085 - frameUniforms.iz, 0.0))), 0.0), frameUniforms.jz); vec3 _5305; _5305 = frameUniforms.mz * (textureLod(light_iblSpecular, _2658, frameUniforms.cz).xyz * frameUniforms.x); _5305 = frameUniforms.mz; vec3 _4136 = _5305 * _4114; vec3 _5308; _5308 = _4136 + ((frameUniforms.l.xyz * frameUniforms.l.w) * (pow(max(dot(_2658, frameUniforms.p) / _4085, 0.0), frameUniforms.pz) * max(1.0 - exp2(-(_4098 * max(_4085 - frameUniforms.oz, 0.0))), 0.0))); _5308 = _4136; vec3 _4184 = (fragColor.xyz * (1.0 - _4114)) + _5308; _5309 = vec4(_4184.x, _4184.y, _4184.z, fragColor.w); _5309 = fragColor; fragColor = _5309; LSLG_TAM
L ( ¨ ì ´
Ø z ` ¸ ¸
¸ ¸
¨ ¨ ¸! ¸ Ø! !x# "¨% #¶' %P* &Ø- '1 Eú5 F9 Gà; P PN@ X ¸ eä@ fLD gVG u À
! " # $ % &