webgl+canvas实现全屏彩色线条屏保动画效果代码

代码语言:html

所属分类:动画

代码描述:webgl+canvas实现全屏彩色线条屏保动画效果代码

代码标签: webgl canvas 全屏 彩色 线条 屏保 动画

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

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

<head>
  <meta charset="UTF-8">
  
  
  
  
<style>
html,
body {
  padding: 0;
  margin: 0;
  overflow: hidden;
  height: 100dvh;
  width: 100dvw;
  background: #1D1E22;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #7C808F;
}

canvas {
  height: 100dvh;
  width: 100dvw;
}

#gui-node {
  position: absolute;
  top: 0;
  right: 0;
}
</style>

  <script>
  window.console = window.console || function(t) {};
</script>

  
  
</head>

<body translate="no">
  <!--
  O       o  o---o      o    
 / \      |     /       |    
o---oo-o -o-  -O-  o  o O-o  
|   ||    |   /    |  | |  | 
o   oo    o  o---o o--o o-o  
-->

<!--
Canvas version
https://codepen.io/artzub/pen/emmwYPW
-->

<canvas id="webgl"></canvas>

<div id="#gui-node"></div>

<script id="vxShader" type="x-shader/x-vertex">
  attribute vec2 aPosition;
  void main() {
    gl_Position = vec4(aPosition, 0.0, 1.0);
  }
</script>

<script id="fragShader" type="x-shader/x-fragment">
  #ifdef GL_ES
  precision mediump float;
  #endif
  
  #define PI 3.14159265359
  #define PI2 2. * PI
  
  // HSL to RGB
  // take from https://github.com/Experience-Monks/glsl-hsl2rgb/blob/master/index.glsl
  float hue2rgb(float f1, float f2, float hue) {
    if (hue < 0.0)
        hue += 1.0;
    else if (hue > 1.0)
        hue -= 1.0;
    float res;
    if ((6.0 * hue) < 1.0)
        res = f1 + (f2 - f1) * 6.0 * hue;
    else if ((2.0 * hue) < 1.0)
        res = f2;
    else if ((3..........完整代码请登录后点击上方下载按钮下载查看

网友评论0