美文网首页three.js简易教程
three.js(2)-让物体动起来

three.js(2)-让物体动起来

作者: 姜治宇 | 来源:发表于2021-11-03 11:02 被阅读0次

    效果:

    demo.gif

    代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <script src="http://www.yanhuangxueyuan.com/versions/threejsR92/build/three.js"></script>
      <title>Document</title>
    </head>
    
    <body>
      <div id="webgl"></div>
    </body>
    
    </html>
    <script>
      var scene = new THREE.Scene();
      console.log(scene);
      //几何体
      var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry
      //材质
      var material = new THREE.MeshLambertMaterial({
        color: 0xffff00
      });
      //合成对象
      var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
      scene.add(mesh); //网格模型添加到场景中
    
      // 光源设置-点光源,
      // 如果不打光就是黑的,看不到物体
      var point = new THREE.PointLight(0xffffff);
      point.position.set(400, 200, 300); //点光源位置
    
      scene.add(point); //点光源添加到场景中
    
      //创建相机对象
      var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);
      camera.position.set(200, 300, 200); //设置相机位置
      camera.lookAt(scene.position); //设置相机方向(指向的场景对象)
    
      /**
       * 创建渲染器函数
       */
      var renderer = new THREE.WebGLRenderer();//画布
      renderer.setClearColor(0xb9d3ff, 1); //设置背景颜色
      //将渲染好的canvas追加到dom
      var cont = document.getElementById('webgl');
      cont.appendChild(renderer.domElement);
      render();
      function render() {
        renderer.render(scene, camera);//渲染必须有场景和相机两个对象
        mesh.rotateY(0.1);
    
        requestAnimationFrame(render);//递归调用
      }
    
    
    
    
    
    </script>
    

    相关文章

      网友评论

        本文标题:three.js(2)-让物体动起来

        本文链接:https://www.haomeiwen.com/subject/zniqzltx.html