Your IP : 3.137.200.226


Current Path : /usr/local/mgr5/skins/dragon/
Upload File :
Current File : //usr/local/mgr5/skins/dragon/chunk-VZSSTJY2.js

import{a as c,b as d,c as a,d as u,e as f,g as l,h as w,i as P,j as p,k as g,l as y,m as M,n as v,p as x,q as i,r as z,s as S}from"./chunk-QEZ4NZOC.js";import{a as m}from"./chunk-O3MRBEHJ.js";import{m as h}from"./chunk-ERDNNTNA.js";var R=`uniform float uProgress;
uniform sampler2D uSnowflakeTexture;
uniform vec3 uColor;
uniform float uOpacity;

void main() {
  float textureAlpha = texture(uSnowflakeTexture, gl_PointCoord).a;

  gl_FragColor = vec4(uColor, textureAlpha * uProgress * uOpacity);

  #include <colorspace_fragment>
}
`;var C=`#define PI 3.14159265359

attribute float aRandom;

uniform float uProgress;
uniform float uPointSize;
uniform float uTime;
uniform float uSpeed;

uniform vec2 uResolution;

uniform float uAmplitudeX;
uniform float uFrequencyX;

uniform vec2 uMousePosition;
uniform float uMouseRadius;
uniform float uMouseStrength;

void main() {
  vec3 newPosition = position;

  float progress = smoothstep(0.0, 1.0, uProgress);

  float distance = uTime * uSpeed;

  newPosition.y = fract((newPosition.y - distance) * aRandom) * 12.5 - 5.5;

  newPosition.x = fract(newPosition.x) * 10.5 - 5.0;
  newPosition.x += sin(newPosition.y * uFrequencyX + distance) * uAmplitudeX;

  newPosition.z = fract(newPosition.z) * 20.0 - 10.0;
  newPosition.z = newPosition.z + (1.0 - progress) * 20.0;

  float distanceToMouse = length(newPosition.xyz - vec3(uMousePosition, 0.0));
  vec3 directionToMouse = normalize(newPosition.xyz - vec3(uMousePosition, 0.0));

  newPosition.xyz += directionToMouse * uMouseStrength * progress * smoothstep(uMouseRadius, 0.0, distanceToMouse);

  vec4 modelPosition = modelMatrix * vec4(newPosition, 1.0);
  vec4 viewPosition = viewMatrix * modelPosition;
  vec4 projectedPosition = projectionMatrix * viewPosition;
  gl_Position = projectedPosition;

  gl_PointSize = uPointSize * (aRandom * 0.5 + 0.5);
  gl_PointSize *= progress;
  gl_PointSize *= max(uResolution.y, 850.0);
  gl_PointSize *= (1.0 / - viewPosition.z);

  // Fix for Windows OpenGL issue
  if(gl_PointSize < 1.0)
    gl_Position = vec4(9999.9);
}
`;var A=class extends S{get snowflakesColor(){return this.colorScheme===m.Light?new u(.24,.34,.56):new u(.12,.17,.28)}constructor(e,t,o){super(e,t,o),this.mousePosition=new d(100,100),this.mouseCoords=new a(1e4,1e4,1e4),this.raycaster=new z,this.positionPlane=new P(new y(10,10,1,1),new f({visible:!1}));let{width:n,height:r,pixelRatio:s}=this.sizes;this.renderer=new M({canvas:this.canvas,antialias:!0,alpha:!0}),this.renderer.setSize(n,r),this.renderer.setPixelRatio(s),this.scene=new v,this.camera=new g(35,n/r,.1,525),this.camera.position.set(0,0,12),this.camera.lookAt(new a(0,0,0)),this.init()}init(){return h(this,null,function*(){yield this.loadTextures({snowflake:"/manimg/dragon/default/snowflake.png"}),this.initGeometry(),this.initMaterial(),this.initMousePosition(),this.scene.add(new x(this.geometry,this.material)),this.animateProgress(e=>Math.sqrt(1-Math.pow(e-1,2))),this.playing?this.playAnimation():this.renderImage()})}initGeometry(){let t=new Float32Array(13e3),o=new Float32Array(13e3*3);for(let s=0;s<13e3;s++)t[s]=Math.random(),o[s*3+0]=Math.random()*20-10,o[s*3+1]=Math.random()*20-10,o[s*3+2]=Math.random()*20-10;this.geometry=new w;let n=new l(o,3),r=new l(t,1);this.geometry.setAttribute("position",n),this.geometry.setAttribute("aRandom",r)}initMaterial(){this.material=new p({transparent:!0,depthWrite:!1,blending:c,uniforms:{uTime:new i(0),uProgress:new i(0),uSnowflakeTexture:new i(this.textures.snowflake),uResolution:new i(this.sizes.resolution),uMousePosition:new i(this.mouseCoords),uPointSize:new i(.076),uColor:new i(this.snowflakesColor),uOpacity:new i(1),uSpeed:new i(.046),uAmplitudeX:new i(2.8),uFrequencyX:new i(.46),uMouseRadius:new i(25),uMouseStrength:new i(.5)},vertexShader:C,fragmentShader:R})}initMousePosition(){this.positionPlane.scale.setX(this.sizes.width/this.sizes.height),this.scene.add(this.positionPlane),document.body.addEventListener("pointermove",e=>{this.mousePosition.set(e.clientX/this.sizes.width*2-1,-(e.clientY/this.sizes.height)*2+1),this.raycaster.setFromCamera(this.mousePosition,this.camera);let t=this.raycaster.intersectObject(this.positionPlane);t.length>0&&this.mouseCoords.copy(t[0].point)})}resize(){let{width:e,height:t,pixelRatio:o}=this.sizes;this.positionPlane.scale.setX(e/t),this.camera.aspect=e/t,this.camera.updateProjectionMatrix(),this.renderer.setSize(e,t),this.renderer.setPixelRatio(o)}tick(e){this.material.uniforms.uTime.value=e,this.renderer.render(this.scene,this.camera)}progress(e){this.material.uniforms.uProgress.value=e}changeScheme(){this.material.uniforms.uColor.value.set(this.snowflakesColor)}};export{A as SnowflakesRenderer};