Shop

body{background:#1a1d20}@media(max-width:768px){#cnc-particle-canvas{opacity:0.4}}

(function(){
var c=document.getElementById(‘cnc-particle-canvas’);if(!c)return;
c.width=window.innerWidth;c.height=window.innerHeight;
var gl=c.getContext(‘webgl’,{alpha:!0})||c.getContext(‘experimental-webgl’,{alpha:!0});if(!gl)return;
var vs=gl.createShader(gl.VERTEX_SHADER);gl.shaderSource(vs,’attribute vec3 p;attribute float s;attribute vec3 c2;uniform mat4 m;uniform float t;varying vec3 vc;varying float vs;void main(){gl_Position=m*vec4(p,1.);gl_PointSize=s*(200./-gl_Position.z);vc=c2;vs=s;}’);gl.compileShader(vs);
var fs=gl.createShader(gl.FRAGMENT_SHADER);gl.shaderSource(fs,’precision highp float;varying vec3 vc;varying float vs;void main(){vec2 uv=gl_PointCoord-0.5;float d=length(uv);float a=smoothstep(0.5,0.1,d);gl_FragColor=vec4(vc,a*0.75);}’);gl.compileShader(fs);
var pr=gl.createProgram();gl.attachShader(pr,vs);gl.attachShader(pr,fs);gl.linkProgram(pr);gl.useProgram(pr);
var N=1500,pos=new Float32Array(N*3),sz=new Float32Array(N),col=new Float32Array(N*3);
var pal=[[0.902,0.376,0.0],[0.541,0.557,0.573],[0.133,0.137,0.145],[1.0,0.478,0.102],[0.75,0.8,0.85]];
for(var i=0;i<N;i++){var r=2+Math.random()*10,th=Math.random()*6.283,ph=Math.random()*1.2-0.6;pos[i*3]=Math.cos(th)*Math.cos(ph)*r;pos[i*3+1]=Math.sin(ph)*r+1;pos[i*3+2]=Math.sin(th)*Math.cos(ph)*r;sz[i]=1+Math.random()*3;var ci=Math.floor(Math.random()*pal.length);col[i*3]=pal[ci][0];col[i*3+1]=pal[ci][1];col[i*3+2]=pal[ci][2];}
var bf=function(t,a,n,s){var b=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,b);gl.bufferData(gl.ARRAY_BUFFER,t,gl.STATIC_DRAW);var l=gl.getAttribLocation(pr,a);gl.enableVertexAttribArray(l);gl.vertexAttribPointer(l,n,gl.FLOAT,!1,0,0);};
bf(pos,'p',3);bf(sz,'s',1);bf(col,'c2',3);
var ml=gl.getUniformLocation(pr,'m'),tl=gl.getUniformLocation(pr,'t');
gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);
var mx=0,my=0,st=Date.now();
window.addEventListener('mousemove',function(e){mx=(e.clientX/window.innerWidth-.5)*.2;my=(e.clientY/window.innerHeight-.5)*.2;});
window.addEventListener('resize',function(){c.width=window.innerWidth;c.height=window.innerHeight;});
function rn(){gl.viewport(0,0,c.width,c.height);gl.clear(gl.COLOR_BUFFER_BIT);var t=(Date.now()-st)*2e-4;gl.uniform1f(tl,t);
var rx=my+Math.sin(t*.4)*.12,ry=mx+Math.cos(t*.3)*.15;
var cs=Math.cos(rx),sn=Math.sin(rx),cy=Math.cos(ry),sy=Math.sin(ry);
var mw=[cy,0,-sy,0,sn*sy,cs,sn*cy,0,cs*sy,-sn,cs*cy,0,0,0,-7,1];
var prj=[c.width/c.height,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];
var mv=new Float32Array(16);for(var i=0;i<4;i++)for(var j=0;j<4;j++){mv[i+j*4]=0;for(var k=0;k<4;k++)mv[i+j*4]+=prj[i+k*4]*mw[k+j*4];}
gl.uniformMatrix4fv(ml,!1,mv);gl.drawArrays(gl.POINTS,0,N);requestAnimationFrame(rn);}
rn();})();

Showing 1–16 of 128 results

LINE สอบถามWhatsApp Inquiry