three实现三维多彩管子扭动动画效果代码

代码语言:html

所属分类:动画

代码描述:three实现三维多彩管子扭动动画效果代码

代码标签: three 三维 多彩 管子 扭动 动画

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

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

<head>

    <meta charset="UTF-8">


    <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Montserrat'>

    <style>
        html, body {
          margin: 0;
          padding: 0;
          width: 100%;
          height: 100%;
          color: #fff;
          font-family: 'Montserrat', sans-serif;
          text-shadow: 1px 1px 1px #000;
        }
        
        canvas {
          position: fixed;
          z-index: -1;
          width: 100%;
          height: 100%;
        }
        
        header {
          position: absolute;
          width: 100%;
          text-align: center;
        }
        
        header h1 {
          font-size: 2rem;
          margin: 0.5em 0 0.2em;
        }
        
        a {
          font-size: 0.9rem;
          color: #bbb;
          text-decoration: none;
          border-bottom: 0.15rem solid transparent;
          transition: all 0.4s;
        }
        a:hover {
          color: #fff;
          border-bottom-color: rgba(255, 255, 255, 0.7);
        }
    </style>




</head>

<body>
    <header>
        <h1>Strange Tubes #2</h1>
        <a href="" target="_blank">ThreeJS Collection</a>
    </header>

<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.108.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/simplex-noise.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/chroma.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/OrbitControls.min.js"></script>
    <script >
        const simplex = new SimplexNoise();
        
        function App(conf) {
          conf = {
            fov: 75,
            cameraZ: 150,
            background: 0x000000,
            tubeRadius: 3,
            resY: 10,
            resX: 4,
            noiseCoef: 50,
            timeCoef: 50,
            mouseCoef: 50,
            heightCoef: 20,
            ambientColor: 0xcccccc,
            lightIntensity: 1,
            light1Color: 0x24f59e,
            light2Color: 0xe15040,
            light3Color: 0x1b859e,
            light4Color: 0x4cb04b,
            ...conf };
        
        
          let renderer, scene, camera, cameraCtrl;
          let width, height, cx, cy, wWidth, wHeight;
          const TMath = THREE.Math;
        
          let light1, light2, light3, light4;
          let objects,noiseConf = {};
          let cscale;updateCScale(chroma('#d11f6c'));
        
          const mouse = new THREE.Vector2();
        
          init();
        
          function init() {
            renderer = new THREE.WebGLRenderer({ antialias: true });
            document.body.appendChild(renderer.domElement);
            camera = new THREE.PerspectiveCamera(conf.fov);
            camera.position.z = conf.cameraZ;
            cameraCtrl = new THREE.OrbitControls(camera);
        
            updateSize();
            window.addEventListener('resize', updateSize, false);
        
            document.addEventListener('mousemove', e => {
              mouse.x = e.clientX / width * 2 - 1;
              mouse.y = -(e.clientY / height) * 2 + 1;
            });
        
            initScene();
            initGui();
            animate();
          }
        
          function initGui() {
            // noiseInput.value = 101 - conf.xyCoef;
            // heightInput.value = (conf.zCoef * 100) / 25;
        
            // noiseInput.addEventListener('input', e => {
            //   conf.noiseCoef = 101 - noiseInput.value;
            // });
            // heightInput.addEventListener('input', e => {
            //   conf.zCoef = (heightInput.value * 25) / 100;
            // });
        
            document.body.addEventListener('click', e => {
              updateColors();
            });
          }
        
          function initScene() {
            scene = new THREE.Scene();
            if (conf.background) scene.background = new THREE.Color(conf.background);
            initLights();
            initObjects();
        
          .........完整代码请登录后点击上方下载按钮下载查看

网友评论0