canvas+webgl实现多彩粒子烟花绽放动画效果代码
代码语言:html
所属分类:粒子
代码描述:canvas+webgl实现多彩粒子烟花绽放动画效果代码
代码标签: canvas webgl 多彩 粒子 烟花 绽放 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html> <head> <style> canvas{position:absolute;top:0;left:0;background-color:#111;} </style> </head> <body> <canvas id=c></canvas> <script> var gl =c.getContext('webgl',{preserveDrawingBuffer:true }),w =c.width =window.innerWidth,h =c.height =window.innerHeight ,webgl ={},opts ={projectileAlpha:.8,projectileLineWidth:1.3,fireworkAngleSpan:.5,baseFireworkVel:3,addedFireworkVel:3,gravity:.03,lowVelBoundary:-.2,xFriction:.995,baseShardVel:1,addedShardVel:.2,fireworks:1000,baseShardsParFirework:10,addedShardsParFirework:10,shardFireworkVelMultiplier:.3,initHueMultiplier:1 / 360,runHueAdder:.1 / 360 } webgl.vertexShaderSource =` uniform int u_mode;uniform vec2 u_res;attribute vec4 a_data;varying vec4 v_color;vec3 h2rgb(float h ){return clamp(abs(mod(h *6. + vec3(0,4,2 ),6. ) - 3. ) -1.,0.,1. );} void clear(){gl_Position =vec4(a_data.xy,0,1 );v_color =vec4(0,0,0,a_data.w );} void draw(){gl_Position =vec4(vec2(1,-1 ) *((a_data.xy / u_res ) *2. - 1. ),0,1 );v_color =vec4(h2rgb(a_data.z ),a_data..........完整代码请登录后点击上方下载按钮下载查看
网友评论0