!function(){const e=document.createElement("canvas");if(!e)return void console.error("Не удалось создать canvas");e.width=window.innerWidth,e.height=window.innerHeight,e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.zIndex="9999",document.body.appendChild(e);const o=e.getContext("webgl");if(!o)return console.error("WebGL не поддерживается в этом браузере"),void document.body.removeChild(e);function r(e,o,r){const t=e.createShader(o);return t?(e.shaderSource(t,r),e.compileShader(t),e.getShaderParameter(t,e.COMPILE_STATUS)?t:(console.error("Ошибка компиляции шейдера:",e.getShaderInfoLog(t)),e.deleteShader(t),null)):(console.error("Не удалось создать шейдер"),null)}const t=r(o,o.VERTEX_SHADER,"\n attribute vec4 a_position;\n attribute vec3 a_color;\n varying vec3 v_color;\n uniform float u_time;\n void main() {\n vec4 pos = a_position;\n // Простая анимация: вращение и движение на GPU (для нагрузки)\n pos.x += sin(u_time + pos.y * 10.0) * 0.1;\n pos.y += cos(u_time + pos.x * 10.0) * 0.1;\n gl_Position = pos;\n gl_PointSize = 3.0 + sin(u_time) * 2.0; // Динамический размер\n v_color = a_color;\n }\n "),n=r(o,o.FRAGMENT_SHADER,"\n precision mediump float;\n varying vec3 v_color;\n void main() {\n float dist = distance(gl_PointCoord, vec2(0.5));\n if (dist > 0.5) discard; // Круглые частицы\n gl_FragColor = vec4(v_color * (1.0 - dist * 2.0), 1.0);\n }\n ");if(!t||!n)return console.error("Ошибка создания шейдеров"),void document.body.removeChild(e);const i=o.createProgram();if(!i)return void console.error("Не удалось создать программу");if(o.attachShader(i,t),o.attachShader(i,n),o.linkProgram(i),!o.getProgramParameter(i,o.LINK_STATUS))return void console.error("Ошибка линковки программы:",o.getProgramInfoLog(i));o.useProgram(i);const a=1e6,c=new Float32Array(4*a),d=new Float32Array(3*a);for(let e=0;e1.5&&(c[4*e]*=-1);o.bindBuffer(o.ARRAY_BUFFER,s),o.bufferSubData(o.ARRAY_BUFFER,0,c),o.drawArrays(o.POINTS,0,a),requestAnimationFrame(r)}(),console.log("GPU-лаг запущен! Закройте вкладку для остановки.")}();