three和噪点实现漫天雪花飞舞效果

代码语言:html

所属分类:动画

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/three.js"></script>
    <style>
        body {
            margin: 0;
            padding: 0;
        }

        #container {
            position: fixed;
            touch-action: none;
        }
    </style>

</head>
<body translate="no">

    <script id="vertexShader" type="x-shader/x-vertex">
        void main() {
            gl_Position = vec4(position, 1.0);
        }
    </script>
    <script id="fragmentShader" type="x-shader/x-fragment">
        uniform vec2 u_resolution;
        uniform vec2 u_mouse;
        uniform float u_time;
        uniform sampler2D u_noise;

        #define PI 3.141592653589793
        #define TAU 6.

        const float multiplier = 25.5;

        const float zoomSpeed = 10.;
        const int layers = 10;

        const int octaves = 5;

        vec2 hash2(vec2 p) {
            vec2 o = texture2D(u_noise, (p+0.5)/256.0, -100.0).xy;
            return o;
        }

        mat2 rotate2d(float _angle) {
            return mat2(cos(_angle), sin(_angle),
                -sin(_angle), cos(_angle));
        }

        vec3 hsb2rgb(in vec3 c) {
            vec3 rgb = clamp(abs(mod(c.x*6.0+vec3(0.0, 4.0, 2.0),
                6.0)-3.0)-1.0,
                0.0,
                1.0);
            rgb = rgb*rgb*(3.0-2.0*rgb);
            return c.z * mix(vec3(1.0), rgb, c.y);
        }

        float hash(vec2 p) {
            float o = texture2D(u_noise, (p+0.5)/256.0, -100.0).x;
            return o;
      .........完整代码请登录后点击上方下载按钮下载查看

网友评论0