TML5画布Three.js定向照明

来源:互联网 发布:java软件开发软件下载 编辑:程序博客网 时间:2024/05/29 17:50
创建环境照明 Three.js,我们可以实例化一个AmbientLight对象,然后将其添加到场景。AmbientLight需要定义一个颜色。周围的灯光照亮整个场景,可以用于软化位置灯等方向灯。
<!DOCTYPE HTML><html>  <head>    <style>      body {        margin: 0px;        padding: 0px;      }    </style>  </head>  <body>    <div id="container"></div>    <script src="http://www.html5canvastutorials.com/libraries/three.min.js"></script>    <script defer="defer">      // revolutions per second      var angularSpeed = 0.2;       var lastTime = 0;       // this function is executed on each animation frame      function animate(){        // update        var time = (new Date()).getTime();        var timeDiff = time - lastTime;        var angleChange = angularSpeed * timeDiff * 2 * Math.PI / 1000;        cube.rotation.y += angleChange;        lastTime = time;         // render        renderer.render(scene, camera);         // request new frame        requestAnimationFrame(function(){            animate();        });      }      // renderer      var renderer = new THREE.WebGLRenderer();      renderer.setSize(window.innerWidth, window.innerHeight);      document.body.appendChild(renderer.domElement);       // camera      var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);      camera.position.z = 500;       // scene      var scene = new THREE.Scene();                      // cube      var cube = new THREE.Mesh(new THREE.CubeGeometry(200, 200, 200), new THREE.MeshLambertMaterial({        color: 'blue'       }));      cube.overdraw = true;      cube.rotation.x = Math.PI * 0.1;      scene.add(cube);            var directionalLight = new THREE.DirectionalLight(0xffffff);      directionalLight.position.set(1, 1, 1).normalize();      scene.add(directionalLight);       // start animation      animate();    </script>  </body></html>

0 0