threeJs 入門

學習推薦

官網地址:https://threejs.org/;

推薦學習博客:http://www.yanhuangxueyuan.com/

 

下載資源,獲取到three.js

入門代碼:

/* 創建場景對象Scene */
    var scene = new THREE.Scene();

    /* 光源設置 */
    //點光源
    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 = 200; //三維場景顯示範圍控制係數,係數越大,顯示的範圍越大
    //創建相機對象
    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); //body元素中插入canvas對象

    // 添加模型
    this.setBoxs(scene);
    //執行渲染操作   指定場景、相機作爲參數
    renderer.render(scene, camera);
  };
  setBoxs = scene => {
    /* 創建網格模型 */
    // var geometry = new THREE.SphereGeometry(60, 40, 40); //創建一個球體幾何對象
    var geometry = new THREE.BoxGeometry(100, 100, 100); //創建一個立方體幾何對象Geometry
    var material = new THREE.MeshLambertMaterial({
      color: 0x0000ff
    }); //材質對象Material
    var mesh = new THREE.Mesh(geometry, material); //網格模型對象Mesh
    scene.add(mesh); //網格模型添加到場景中
  };

演示地址 :https://gf0uv.csb.app/

GridHelper 定義網格

        function setGridPaper() {
            var size = 200;
            var divisions = 200;
            var gridHelper = new THREE.GridHelper(size, divisions);
            scene.add(gridHelper);
        }

GridHelper(size:number,divisions:Number,colorCenterLine:Color,colorGrid:Color

size-網格的大小。默認值爲10。
分區-網格中的分區數。默認值爲
10。colorCenterLine-中心線的顏色。這可以是Color,十六進制值和CSS-Color名稱。默認值爲0x444444
colorGrid-網格線的顏色。這可以是Color,十六進制值和CSS-Color名稱。默認值爲0x888888

定義 XYZ

var axes = new THREE.AxisHelper(200);
scene.add(axes);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章