webgl实现canvas光柱交叉波动模糊动画效果代码
代码语言:html
所属分类:动画
代码描述:webgl实现canvas光柱交叉波动模糊动画效果代码
代码标签: webgl canvas 光柱 交叉 波动 模糊 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
</head>
<body translate="no">
<script type="x-shader/x-fragment">#version 300 es
/*********
* made by Matthias Hurrle (@atzedent)
*/
precision highp float;
out vec4 O;
uniform vec2 resolution;
uniform float time;
#define FC gl_FragCoord.xy
#define R resolution
#define T time
#define MN min(R.x,R.y)
#define S smoothstep
#define beat(a) pow(S(.4,.6,sin(3.1415/a*T)*.5+.5),5.)
float rnd(vec2 p) {
p=fract(p*vec2(12.9898,78.233));
p+=dot(p,p+34.56);
return fract(p.x*p.y);
}
float spirals(vec2 uv) {
float c=.0, d=.0, k=.35;
for (float i=1.;i<8.;i++) {
c+=abs(sin(T/i)*.05)/length(vec2(uv.y,sin(uv.y+T*i)*k)-uv.yx);
vec2 p=uv;
p.x-=sin(p.y+T*i)*k;
p.y+=T*1.5;
p.y=mod(p.y,.5)-.25;
d+=.008/length(p);
}
c*=abs(d);
return c;
}
vec3 pattern(vec2 uv) {
float k=4./MN;
return sqrt(spirals(uv*.95)*vec3(
spirals(uv-k),
spirals(uv),
spirals(uv+k)
))*.25;
}
void main(){
vec3 col=vec3(0);
float
tt=beat(3.),
t =beat(6.),
m =S(1e-3,.5,1./(10.+90.*(1.-tt))),
n =S(1e.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0