PageSourceSearch

https://glopro.ru/_astro/Sphere.astro_astro_type_script_index_0_lang.BAmOIBpk.js

js glopro.ru collected 2026-10-01 23:53:36 UTC 12,887 bytes, 237 lines download raw bytes

1var e=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),t=function(e){return`/`+e},n={},r=await function(r,i,a){let o=Promise.resolve();if(i&&i.length>0){let r=document.getElementsByTagName(`link`),s=document.querySelector(`meta[property=csp-nonce]`),c=s?.nonce||s?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}o=l(i.map(i=>{if(i=t(i,a),i=u(i),i in n)return;n[i]=!0;let o=i.endsWith(`.css`);for(let e=r.length-1;e>=0;e--){let t=r[e];if(t.href===i&&(!o||t.rel===`stylesheet`))return}let s=document.createElement(`link`);if(s.rel=o?`stylesheet`:e,o||(s.as=`script`),s.crossOrigin=``,s.href=i,c&&s.setAttribute(`nonce`,c),document.head.appendChild(s),o)return new Promise((e,t)=>{s.addEventListener(`load`,e),s.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${i}`)))})}).filter(e=>e!==void 0))}function s(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(e=>{for(let t of e||[])t.status===`rejected`&&s(t.reason);return r().catch(s)})}(()=>import(`./three.module.CR-jQ73u.js`),[]),i={type:`ICOSAHEDRON`,radius:1,detail:4},a={maxPixelRatio:2,antialias:!0},o={targetFPS:60,lazyRender:!0,adaptiveFPS:!0,minFPS:30},s={time:{type:`f`,value:1},pointscale:{type:`f`,value:1},decay:{type:`f`,value:2},complex:{type:`f`,value:2},waves:{type:`f`,value:3},eqcolor:{type:`f`,value:3},fragment:{type:`i`,value:!1},dnoise:{type:`f`,value:0},qnoise:{type:`f`,value:4},r_color:{type:`f`,value:0},g_color:{type:`f`,value:0},b_color:{type:`f`,value:0}},c={perlin:{vel:.002,speed:1/1e4,perlins:1,decay:.31,complex:0,waves:10,eqcolor:3,fragment:!1,redhell:!0},rgb:{r_color:8.4,g_color:5,b_color:5.4}},l,u,d,f,p,m,h,g,_,v=0,y=!1,b=!0,x=null,S=o.targetFPS,C=[],w=0,T=2e3,E=!0;window.addEventListener(`load`,()=>{D()},{passive:!0,once:!0});function D(){if(x=document.getElementById(`sphere`),!x){console.error(`Container element with id "sphere" not found`);return}z(),O(),A(),M(),g=performance.now()-1e4,y=!0,x&&x.classList.add(`active`),N()}function O(){if(!x)return;let e=x.getBoundingClientRect();f=e.width,p=e.height,l=new r.Scene,l.background=new r.Color(0),u=new r.PerspectiveCamera(35,f/p,1,1e3),u.position.set(0,0,10),d=new r.WebGLRenderer({antialias:a.antialias,powerPreference:`high-performance`,stencil:!1,depth:!0}),d.setSize(f,p),d.setPixelRatio(Math.min(window.devicePixelRatio,a.maxPixelRatio)),d.sortObjects=!1,x.appendChild(d.domElement);let t;new ResizeObserver(()=>{clearTimeout(t),t=setTimeout(k,250)}).observe(x)}function k(){if(!y||!x)return;let e=x.getBoundingClientRect();f=e.width,p=e.height,u.aspect=f/p,u.updateProjectionMatrix(),d.setSize(f,p)}function A(){_=new r.HemisphereLight(16777215,0,1.4),l.add(_)}var j=class{constructor(){this.mesh=new r.Object3D;let e=new r.IcosahedronGeometry(i.radius,i.detail);m=new r.ShaderMaterial({wireframe:!1,uniforms:s,vertexShader:`precision mediump float;\r
2\r
3vec3 mod289(vec3 x)\r
4{\r
5  return x - floor(x * (1.0 / 289.0)) * 289.0;\r
6}\r
7\r
8vec4 mod289(vec4 x)\r
9{\r
10  return x - floor(x * (1.0 / 289.0)) * 289.0;\r
11}\r
12\r
13vec4 permute(vec4 x)\r
14{\r
15  return mod289(((x*34.0)+1.0)*x);\r
16}\r
17\r
18vec4 taylorInvSqrt(vec4 r)\r
19{\r
20  return 1.79284291400159 - 0.85373472095314 * r;\r
21}\r
22\r
23vec3 fade(vec3 t) {\r
24  return t*t*t*(t*(t*6.0-15.0)+10.0);\r
25}\r
26\r
27// Classic Perlin noise\r
28float cnoise(vec3 P)\r
29{\r
30  vec3 Pi0 = floor(P);\r
31  vec3 Pi1 = Pi0 + vec3(1.0);\r
32  Pi0 = mod289(Pi0);\r
33  Pi1 = mod289(Pi1);\r
34  vec3 Pf0 = fract(P);\r
35  vec3 Pf1 = Pf0 - vec3(1.0);\r
36  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\r
37  vec4 iy = vec4(Pi0.yy, Pi1.yy);\r
38  vec4 iz0 = Pi0.zzzz;\r
39  vec4 iz1 = Pi1.zzzz;\r
40\r
41  vec4 ixy = permute(permute(ix) + iy);\r
42  vec4 ixy0 = permute(ixy + iz0);\r
43  vec4 ixy1 = permute(ixy + iz1);\r
44\r
45  vec4 gx0 = ixy0 * (1.0 / 7.0);\r
46  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\r
47  gx0 = fract(gx0);\r
48  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\r
49  vec4 sz0 = step(gz0, vec4(0.0));\r
50  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\r
51  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\r
52\r
53  vec4 gx1 = ixy1 * (1.0 / 7.0);\r
54  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\r
55  gx1 = fract(gx1);\r
56  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\r
57  vec4 sz1 = step(gz1, vec4(0.0));\r
58  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\r
59  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\r
60\r
61  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\r
62  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\r
63  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\r
64  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\r
65  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\r
66  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\r
67  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\r
68  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\r
69\r
70  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\r
71  g000 *= norm0.x;\r
72  g010 *= norm0.y;\r
73  g100 *= norm0.z;\r
74  g110 *= norm0.w;\r
75  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\r
76  g001 *= norm1.x;\r
77  g011 *= norm1.y;\r
78  g101 *= norm1.z;\r
79  g111 *= norm1.w;\r
80\r
81  float n000 = dot(g000, Pf0);\r
82  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\r
83  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\r
84  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\r
85  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\r
86  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\r
87  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\r
88  float n111 = dot(g111, Pf1);\r
89\r
90  vec3 fade_xyz = fade(Pf0);\r
91  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\r
92  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\r
93  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\r
94  return 2.2 * n_xyz;\r
95}\r
96\r
97// Classic Perlin noise, periodic variant\r
98float pnoise(vec3 P, vec3 rep)\r
99{\r
100  vec3 Pi0 = mod(floor(P), rep);\r
101  vec3 Pi1 = mod(Pi0 + vec3(1.0), rep);\r
102  Pi0 = mod289(Pi0);\r
103  Pi1 = mod289(Pi1);\r
104  vec3 Pf0 = fract(P);\r
105  vec3 Pf1 = Pf0 - vec3(1.0);\r
106  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\r
107  vec4 iy = vec4(Pi0.yy, Pi1.yy);\r
108  vec4 iz0 = Pi0.zzzz;\r
109  vec4 iz1 = Pi1.zzzz;\r
110\r
111  vec4 ixy = permute(permute(ix) + iy);\r
112  vec4 ixy0 = permute(ixy + iz0);\r
113  vec4 ixy1 = permute(ixy + iz1);\r
114\r
115  vec4 gx0 = ixy0 * (1.0 / 7.0);\r
116  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\r
117  gx0 = fract(gx0);\r
118  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\r
119  vec4 sz0 = step(gz0, vec4(0.0));\r
120  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\r
121  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\r
122\r
123  vec4 gx1 = ixy1 * (1.0 / 7.0);\r
124  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\r
125  gx1 = fract(gx1);\r
126  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\r
127  vec4 sz1 = step(gz1, vec4(0.0));\r
128  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\r
129  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\r
130\r
131  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\r
132  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\r
133  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\r
134  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\r
135  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\r
136  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\r
137  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\r
138  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\r
139\r
140  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\r
141  g000 *= norm0.x;\r
142  g010 *= norm0.y;\r
143  g100 *= norm0.z;\r
144  g110 *= norm0.w;\r
145  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\r
146  g001 *= norm1.x;\r
147  g011 *= norm1.y;\r
148  g101 *= norm1.z;\r
149  g111 *= norm1.w;\r
150\r
151  float n000 = dot(g000, Pf0);\r
152  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\r
153  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\r
154  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\r
155  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\r
156  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\r
157  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\r
158  float n111 = dot(g111, Pf1);\r
159\r
160  vec3 fade_xyz = fade(Pf0);\r
161  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\r
162  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\r
163  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\r
164  return 1.5 * n_xyz;\r
165}\r
166\r
167// Turbulence By Jaume Sanchez => https://codepen.io/spite/\r
168varying vec2 vUv;\r
169varying float noise;\r
170varying float qnoise;\r
171varying float displacement;\r
172\r
173uniform float time;\r
174uniform float pointscale;\r
175uniform float decay;\r
176uniform float complex;\r
177uniform float waves;\r
178uniform float eqcolor;\r
179uniform bool fragment;\r
180\r
181float turbulence( vec3 p) {\r
182  float t = - 0.1;\r
183\r
184  t += abs(pnoise(p * 2.0, vec3(10.0)) / 2.0);\r
185  t += abs(pnoise(p * 4.0, vec3(10.0)) / 4.0);\r
186  // Октава 8.0 убрана: экономия 25% ALU на вершину, визуально почти незаметно\r
187\r
188  return t;\r
189}\r
190\r
191void main() {\r
192  vUv = uv;\r
193\r
194  // КЭШИРУЕМ ВЫЗОВ: считаем турбулентность один раз!\r
195  float turb = turbulence( decay * abs(normal + time) );\r
196\r
197  noise = (1.0 * - waves) * turb;\r
198  qnoise = (2.0 * - eqcolor) * turb;\r
199\r
200  float b = pnoise( complex * (position) + vec3( 1.0 * time ), vec3( 100.0 ) );\r
201\r
202  if (fragment == true) {\r
203    displacement = - sin(noise) + normalize(b * 0.5);\r
204  } else {\r
205    displacement = - sin(noise) + cos(b * 0.5);\r
206  }\r
207\r
208  vec3 newPosition = (position) + (normal * displacement);\r
209  gl_Position = (projectionMatrix * modelViewMatrix) * vec4( newPosition, 1.0 );\r
210  gl_PointSize = (pointscale);\r
211}\r
212`,fragmentShader:`precision mediump float;\r
213varying float qnoise;\r
214\r
215uniform float time;\r
216uniform bool redhell;\r
217uniform float r_color;\r
218uniform float g_color;\r
219uniform float b_color;\r
220\r
221void main() {\r
222  float r, g, b;\r
223\r
224  r = cos(qnoise + (r_color));\r
225  g = cos(qnoise + g_color);\r
226  b = cos(qnoise + (b_color));\r
227\r
228  gl_FragColor = vec4(r, g, b, 1.0);\r
229}\r
230`});let t=new r.Mesh(e,m);this.mesh.add(t)}};function M(){h=new j,h.mesh.scale.set(1,1,1),l.add(h.mesh)}function N(){if(requestAnimationFrame(N),!y||!b)return;let e=performance.now();P(e)&&(I(e),d.render(l,u),o.adaptiveFPS&&F(e),v=e)}function P(e){let t=e-v,n=1e3/S;return!(o.lazyRender&&t<n)}function F(e){let t=e-v;if(C.push(t),C.length>30&&C.shift(),e-w>T){w=e;let t=1e3/(C.reduce((e,t)=>
230e+t,0)/C.length);t<S*.8?(S=Math.max(o.minFPS,Math.floor(S*.9)),console.log(`Performance adjusted: Target FPS reduced to ${S}`)):t>S*1.2&&S<o.targetFPS&&(S=Math.min(o.targetFPS,Math.floor(S*1.1)),console.log(`Performance adjusted: Target FPS increased to ${S}`))}}function I(){h?.mesh&&(h.mesh.rotation.y+=.001),E&&L(),m?.uniforms&&(m.uniforms.time.value=c.perlin.speed*(performance.now()-g))}function L(){m?.uniforms&&(m.uniforms.pointscale.value=c.perlin.perlins,m.uniforms.decay.value=c.perlin.decay,m.uniforms.complex.value=c.perlin.complex,m.uniforms.waves.value=c.perlin.waves,m.uniforms.eqcolor.value=c.perlin.eqcolor,m.uniforms.fragment.value=c.perlin.fragment,m.uniforms.r_color.value=c.rgb.r_color,m.uniforms.g_color.value=c.rgb.g_color,m.uniforms.b_color.value=c.rgb.b_color,E=!1)}document.addEventListener(`visibilitychange`,()=>{b=!document.hidden,b&&(v=0)},{passive:!0});function R(e){switch(e){case`LOW`:i.detail=5,o.targetFPS=30,a.antialias=!1,a.maxPixelRatio=1,S=30;break;case`MEDIUM`:i.detail=5,o.targetFPS=45,a.antialias=!0,a.maxPixelRatio=1.5,S=45;break;default:i.detail=6,o.targetFPS=60,a.antialias=!0,S=60;let e=navigator.userAgent.toLowerCase().includes(`mac`),t=window.devicePixelRatio>=2;a.maxPixelRatio=e&&t?1.5:2}console.log(`Performance profile set to: ${e} (FPS: ${S})`)}function z(){let e=navigator.userAgent.toLowerCase(),t=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(e),n=/ipad|tablet|playbook|silk/i.test(e),r=/iphone|ipad|ipod/i.test(e),i=/android/i.test(e),a=/chrome/i.test(e),o=/firefox/i.test(e),s=/safari/i.test(e)&&!a,c=navigator.hardwareConcurrency||4,l=performance.memory?performance.memory.jsHeapSizeLimit:0,u=window.devicePixelRatio||1,d=`DESKTOP`;n?d=`TABLET`:t&&(d=`MOBILE`);let f=0;if(c>=8?f+=3:c>=6?f+=2:c>=4&&(f+=1),l>0&&(l>2e9?f+=3:l>1e9?f+=2:l>5e8&&(f+=1)),a?f+=2:(o||s)&&(f+=1),d===`DESKTOP`)f+=3;else if(d===`TABLET`)f+=2;else if(d===`MOBILE`){if(r){let t=/iphone (1[2-9]|[2-9][0-9])|iphone [89]|iphone x/i.test(e);f+=t?2:1}else f+=i&&c>=6?2:1}u>=3?f+=2:u>=2&&(f+=1);let p;p=f>=10?`HIGH`:f>=6?`MEDIUM`:`LOW`,console.log(`Performance detection: 
231        Device: ${d}
232        Cores: ${c}
233        Memory: ${l>0?(l/1e9).toFixed(1)+`GB`:`unknown`}
234        Browser: ${a?`Chrome`:o?`Firefox`:s?`Safari`:`Other`}
235        Pixel Ratio: ${u}
236        Performance Score: ${f}
237        Profile: ${p}`),R(p)}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.