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