threejs 几何体阵列

参考: http://www.yanhuangxueyuan.com/Three.js_course/array.html

      //创建场景对象
      var scene = new THREE.Scene();
      //创建一个立方体几何对象
      var box = new THREE.BoxGeometry(10, 10, 10);
      //材质对象
      var material = new THREE.MeshLambertMaterial({
        color: 0x00ff00
      });
      box.translate(-120, -20, 0);
      // 直线阵列
      for (var x = 0; x < 10; x++) {
        //网格模型对象
        var mesh = new THREE.Mesh(box, material);
        //立方体间距15(阵列距离)
        mesh.position.set(x * 15, 0, 0);
        //网格模型添加到场景中
        scene.add(mesh);
      }

      //创建一个立方体几何对象
      var planeBox = new THREE.BoxGeometry(10, 10, 10);
      //材质对象
      var planeMaterial = new THREE.MeshLambertMaterial({
        color: 0x0000ff
      });
      //创建Object3D对象 
      var object = new THREE.Object3D();
      // 平面阵列
      for (var y = 0; y < 10; y++) {
        for (var x = 0; x < 10; x++) {
          //网格模型对象
          var mesh = new THREE.Mesh(planeBox, planeMaterial);
          //立方体间距15(阵列距离)
          mesh.position.set(x * 15, y * 15, 0);
          //网格模型添加到Object3D对象中
          object.add(mesh);
        }
      }
      // 平移所有网格模型
      object.translateX(-300);
      object.translateY(-200);
      scene.add(object);

      //创建一个立方体几何对象
      var dimBox = new THREE.BoxGeometry(10, 10, 10);
      //材质对象
      var dimMaterial = new THREE.MeshLambertMaterial({
        color: 0xff0000
      });
      //创建Object3D对象 
      var object2 = new THREE.Object3D();
      // 平面阵列
      for (var z = 0; z < 10; z++) {
        for (var y = 0; y < 10; y++) {
          for (var x = 0; x < 10; x++) {
            //网格模型对象
            var mesh = new THREE.Mesh(dimBox, dimMaterial);
            //立方体间距15(阵列距离)
            mesh.position.set(x * 15, y * 15, z * 15);
            //网格模型添加到Object3D对象中
            object2.add(mesh);
          }
        }
      }
      
      // 平移所有网格模型
      object2.translateX(200);
      object2.translateY(150);
      scene.add(object2);
      

      //点光源
      var point = new THREE.PointLight(0xffffff);
      //点光源位置
      point.position.set(400, 200, 300);
      //点光源添加到场景中
      scene.add(point);

      //环境光
      var ambient=new THREE.AmbientLight(0x444444);
      scene.add(ambient);

      var width = window.innerWidth;
      var height = window.innerHeight;
      //窗口宽高比
      var k = width / height;
      //三维场景缩放系数
      var s = 150;
      //创建相机对象
      var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
      //设置相机位置
      camera.position.set(200, 300, 200);
      //设置相机方向(指向的场景对象)
      camera.lookAt(scene.position);
      
      // 创建渲染器对象
      var renderer = new THREE.WebGLRenderer();
      renderer.setSize(width, height);
      //设置背景颜色
      renderer.setClearColor(0xb9d3ff, 1);
      document.body.appendChild(renderer.domElement);
      //执行渲染操作
      renderer.render(scene, camera);

猜你喜欢

转载自blog.csdn.net/tang05709/article/details/86592380