canvas+webgl实现曼陀罗式能量波扩散动画效果代码

代码语言:html

所属分类:动画

代码描述:canvas+webgl实现曼陀罗式能量波扩散动画效果代码

代码标签: canvas webgl 曼陀罗 能量波 扩散 动画

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

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

<head>
 
<meta charset="UTF-8">
 

 
 
<style>
* {
 
box-sizing: border-box;
}

html
, body {
 
margin: 0;
 
min-height: 100vh;
 
min-height: 100dvh;
 
overflow: hidden;
 
 
background:
  repeating-radial-gradient
(
  circle at center
,
   
#444 0 10%,
   
#111 10% 20%
 
);
 
 
touch-action: none;
}

canvas
{
 
width: 100%;
 
height: auto;
 
object-fit: contain;
}
</style>


 
 
</head>

<body>
 
<canvas id="canvas"></canvas>
 
     
<script  >
/*********
* made by Matthias Hurrle (@atzedent)
*/

/** @type {HTMLCanvasElement} */
const canvas = window.canvas;
const gl = canvas.getContext('webgl2');
const dpr = window.devicePixelRatio;

const vertexSource = `#version 300 es
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif

in vec2 position;

void main(void) {
    gl_Position = vec4(position, 0., 1.);
}
`;
const fragmentSource = `#version 300 es
/*********
* made by Matthias Hurrle (@atzedent)
*/

#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif

out vec4 fragColor;

uniform vec2 resolution;
uniform float time;

#define S smoothstep
#define T .112358+time

#define TAU 6.2831853

vec3 palette(float k) {
  vec3
  a = vec3(.5),
 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0