1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6696],{16696:function(e,n,r){r.r(n),r.d(n,{default:function(){return c}});var o=r(57437),i=r(2265),t=r(34673),a=r(80720),l=r(65238),s=r(97776);function c(e){let{position:n}=e,{nodes:r}=(0,t.L)("/models/Material_X.glb"),{viewport:c}=(0,l.A)(),v=(0,i.useRef)(null),[u,m]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=()=>{m(window.scrollY)};return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[]),(0,l.C)(()=>{v.current&&(v.current.rotation.y=.002*u)});let d=(0,i.useMemo)(()=>new s.ShaderMaterial({uniforms:{time:{value:0},baseColor:{value:new s.Color(16777215)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:"\n uniform float time;\n uniform vec3 baseColor;\n varying vec2 vUv;\n \n vec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n \n void main() {\n float hue = fract((vUv.x + vUv.y) * 0.5 + time * 0.05);\n vec3 rainbowColor = hsv2rgb(vec3(hue, 0.9, 0.9));\n vec3 blueColor = vec3(0.53, 0.8, 0.92);\n vec3 finalColor = mix(baseColor, rainbowColor, 0.8);\n finalColor = mix(finalColor, blueColor, 0.5);\n gl_FragColor = vec4(finalColor, 1.0);\n }\n ",transparent:!0}),[]);(0,l.C)(e=>{d.uniforms&&(d.uniforms.time.value=e.clock.getElapsedTime())});let f={thickness:.2,roughness:.2,transmission:1,ior:1.2,chromaticAberration:.02,backside:!0},h=Math.min(c.width,c.height)/4;return(0,o.jsx)("group",{scale:h,position:n,children:(0,o.jsx)("group",{ref:v,scale:10,position:[0,0,0],rotation:[-.5,-.5,-.5],children:(0,o.jsx)("group",{rotation:[0,0,0],children:Object.keys(r).map(e=>(0,o.jsxs)("mesh",{geometry:r[e].geometry,children:[(0,o.jsx)("shaderMaterial",{args:[d]}),(0,o.jsx)(a.z,{...f})]},e))})})})}t.L.preload("/models/Material_X.glb")}}]);
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.