wtc实现带阴影大小圈圈碰撞粒子流动动画效果代码

代码语言:html

所属分类:粒子

代码描述:wtc实现带阴影大小圈圈碰撞粒子流动动画效果代码

代码标签: wtc 粒子 圈圈 流动 动画 碰撞

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>

 
<meta charset="UTF-8">
 

 
 
 
<style>
body
{
 
background: #666;
 
margin: 0;
 
overflow: hidden;
}
canvas
{
 
height: 100vh;
 
width: 100vw;
 
touch-action: none;
}
.osc {
 
left: 0px;
 
position: fixed;
 
top: 0px;
}

.button {
 
position: fixed;
 
z-index: 10;
 
right: 0;
 
bottom: 0;
}
.controls {
 
position: fixed;
 
z-index: 10;
 
left: 0;
 
bottom: 0;
}
.playpause {
 
background: #AAB;
 
padding: 10px;
}
.playpause label {
 
display: block;
 
box-sizing: border-box;

 
width: 0;
 
height: 20px;

 
cursor: pointer;

 
border-color: transparent transparent transparent #202020;
 
transition: 100ms all ease;
 
will-change: border-width;

 
border-style: double;
 
border-width: 0px 0 0px 20px;
}
.playpause input[type='checkbox'] {
 
visibility: hidden;
}
.playpause.checked label {
 
border-style: double;
 
border-width: 0px 0 0px 20px;
}
.playpause label {
 
border-style: solid;
 
border-width: 10px 0 10px 20px;
}
/* } */
</style>

 


</head>

<body >
 
<script id="vertexShader_particle" type="x-shader/x-vertex">
  precision highp float;
  attribute vec2 reference;
  attribute vec2 position;
 
  uniform vec2 u_resolution;
  uniform vec2 u_screen;
 
  uniform sampler2D b_position;
 
  varying vec3 v_colour;
  varying float v_fogDepth;
  varying float pointsize;
 
  float rand(vec2 n) {
    return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453);
  }
 
  void main() {
    vec2 position = texture2D(b_position, reference).xy;
    gl_PointSize = 100. * rand(reference);
    pointsize = gl_PointSize;
    vec2 p = position/u_resolution;
    v_colour = vec3(1,1,1);
    vec4 pos = vec4(position / u_resolution * 2. - 1., 0., 1.);
    gl_Position = vec4(pos.xy,.........完整代码请登录后点击上方下载按钮下载查看

网友评论0