zoukankan      html  css  js  c++  java
  • Three.js学习2_场景相关

    场景参数设置

      部分内容展示:

        

      场景相关内容, 下文将一一解释

    1. 构造器Scene(),
    2. 属性:
      1. fog
      2. overrideMaterial
      3. autoUpdate
      4. background
    3. 方法
      1. toJSON
      2. dispose

    1. 构造器

      构造一个场景, let scene = new THREE.Scene()

    2. 属性

    2.1 fog

      该属性表示线性雾, 就和实际生活中类似, 距离越远, 可视度越低

    1     let scene = new THREE.Scene();
    2     let fog = new THREE.Fog(0xffffff, 1, 20);
    3     scene.fog = fog;

      效果如上图所示

    2.2 overrideMaterial

      用于覆盖场景中所有物体的材质, 关于材质在后续会讲到.

      这里简单讲解下物体, 每个物体由两部分组成, 一个是几何结构, 一个是用于展示的材质

      代码及效果如下:  

             

     1     let scene = new THREE.Scene();
     2 
     3     let material1 = new THREE.MeshBasicMaterial({
     4         // color: 0x00ff00,
     5         vertexColors: THREE.VertexColors,
     6         wireframe: true
     7     });
     8 
     9     // 覆盖所有材质
    10     scene.overrideMaterial=material1;
    11 
    12     let geometry = new THREE.BoxGeometry( 1, 1, 1 );
    13     let meterial2 = new THREE.MeshBasicMaterial( {
    14         vertexColors: THREE.VertexColors,
    15         // wireframe: true
    16     });
    17     let cube = new THREE.Mesh(
    18         geometry,
    19         meterial2
    20     );
    21     scene.add(cube);

      解释: 

      3-7行创建材质, 10行场景覆盖所有材质, 12行创建正方体, 13-16行创建材质, 创建带材质的正方体

      逻辑: 首先创建一个带有材质的正方体, 如上左图  ---->  10行语句直接将该正方体材质换成场景要求的, 如上右图

    2.3 autoUpdate

      默认值为true,若设置了这个值,则渲染器会检查每一帧是否需要更新场景及其中物体的矩阵。 当设为false时,你必须亲自手动维护场景中的矩阵。还未使用过

    2.4 background

      设置场景的背景, 可以是颜色, 照片, 或者是六个面组成的天空盒, 看起来就和真实环境十分类似

           

              更改背景颜色                          更改背景照片

    1     let scene = new THREE.Scene();
    2     // scene.background = new THREE.Color(0xfff0ff);
    3     scene.background = new THREE.TextureLoader().load( "../项目/images/brick_uneven_stones_basecolor.png" );

      解释: 

      2行, 更改背景颜色, 3行更改背景图片

    3. 方法

    3.1 toJSON

      返回目前流行的JSON数据

    console.log(scene.toJSON());

      返回结果

    3.2 dispose

      清除WebGLRenderer内部所缓存的场景相关的数据。

      

  • 相关阅读:
    【crontab】误删crontab及其恢复
    New Concept English there (7)
    New Concept English there (6)
    New Concept English there (5)
    New Concept English there (4)
    New Concept English there (3)
    New Concept English there (2)Typing speed exercise
    New Concept English there (1)Typing speed exercise
    New Concept English Two 34 game over
    New Concept English Two 33 94
  • 原文地址:https://www.cnblogs.com/xiaxiangx/p/13586561.html
Copyright © 2011-2022 走看看